zoukankan      html  css  js  c++  java
  • ARC的F 做题记录

    貌似一个世纪没有更博了(。

    自从集训队作业被我咕咕后 就开始到处打比赛被爆锤
    补完题以后真的没大有时间做题了啊TAT

    攒了几道辣鸡题(全是ARC的F)一起发出来吧

    ARC060

    发现答案要么是全部相同的时候是1 要么是划分成两个串 两个串用fail数组判断一下就好了
    代码:咕了

    ARC061

    这个看题解了QAQ
    我们根据每次拿出的牌计算 由于A结束 我们钦定最后一张牌是A
    然后拿出来的牌数A是(n)张 B是(i)张((i<m))C是(j)张((j<k)
    然后我们可以写出答案柿子
    (Ans=sum_{i+j=0}^{m+k-1} C_{n-1+i+j}^{n-1} 3^{m+k-i} sum_{i<m,j<k} C_{i+j}^i)
    部分分就有了 优化就是考虑当i+j变化的时候快速转移后面的那个sum
    分别讨论一下(i)(m,k)之间的位置就好了
    代码:咕了

    ARC062

    神仙题诶 Polya定理题
    结论是一个边双如果只是一个简单环的话直接polya计数 如果边数>点数的话是可以任意轮换的(手玩一下就知道了 可以固定一个把别的移好)如果是桥单独*k就可以了
    代码:戳我

    ARC063

    因为至少空出一行or一列 所以一定会经过中线
    枚举上边界 对于每一个下边界维护左端右端就可以啦 单调栈+线段树维护就ok了
    代码:戳我

    ARC064

    直接考虑n的因数 (f(x))表示循环节长度是(x)每次 枚举所有比它小的减掉就OK了
    代码:戳我

    ARC065

    只要对于每个(l_i)求出最远的(r_i)(f[i][j])表示1~i-1已经确定了 还有j个1是可动的
    代码:戳我

    ARC066

    考虑分治维护 就是动态图的那种分治就ok
    分治区间内部用斜率优化dp就可以了
    代码:咕了

    ARC067

    垃圾题 直接单调栈+矩阵差分就好了
    代码:咕了

    ARC068

    考虑以1为顶点建立一个V型结构(双端队列)
    只用考虑前k-1个怎么取 后面的一定是个单调队列(2^{N-K-1})就好了
    考虑dp (f_{i,j})表示已经取了(i)个取了的最小值是(j)可以选择取一个更小的值或者取剩下的最大值
    直接(n^2)dp就好了
    代码:戳我

    ARC069

    模板题= = 二分答案+2-SAT+线段树优化建图一气呵成
    代码:戳我

    ARC070

    一道古早的交互经典题 每次遇到一个说别人是假的就两个人都删掉就好了 如果Unkind>=Honest就无解
    代码:咕了

    ARC071

    每次要么是一个(k)(k>1))后面跟若干个1 要么就是两个大于1的数结束
    后缀和一下 讨论一下三种转移就ok
    代码:戳我

    ARC072

    考虑维护单调栈 每次新加进来超了就弹队首 如果当前水温比队尾少就混到一起(显然这样比只弹队首优)
    代码:戳我

  • 相关阅读:
    C语言 · 阶乘计算 · 基础练习
    C语言 · 查找整数 · 基础练习
    UML课程复习重点
    运维参考
    mysql语法总结
    Python杂篇
    Python练习题
    Python参考
    k8s中ipvs和iptables选择
    安装cni网络插件-非必须
  • 原文地址:https://www.cnblogs.com/hanyuweining/p/12767422.html
Copyright © 2011-2022 走看看