zoukankan      html  css  js  c++  java
  • 辣鸡咯..

    noip打的是真的菜.. 退役选手可能要失去各种wc的机会了..

    哎争取多一次wc的机会吧(flag)


    来看看做了多少?

    56/150

    Codeforces Round #443 (Div. 1)

    B. Teams Formation

    依次缩去$m-1$个间隔中的相同的东西,最后剩下的再搞就行了

    *C. Tournament

    假如A能赢B,就在图中建立A->B的边,那么一个人要是能谁都赢,就是它能到达所有其他点

    现在就是要动态维护这个强连通分量

    发现这个图不会存在大于等于三且中间没有边的环,也就是对于一个点对一定会存在边

    然后发现缩完强连通分量之后可以拉成一条链

    每次加入一个点,找出最小的能战胜它的和最大的战胜不了它的,把中间全部合起来

    这样就很棒了

    *D. Magic Breeding

    想象如果这个题只存在$1$和$0$,最多只有$2^k$种不同的特征,这个问题就可以用bitset很好的做出来了

    现在把每一列拆成$k$个点,表示他是否大于等于该列第$i$个数,然后就相当于上面的题了

    可能复杂度比较大,但是就是能过,毕竟$O(frac{q2^kk}{32})$

    [2017.11.21]

    发现自己不用退役真的很开心啊..

    没想到有人已经自大到这种地步了啊..

    4291: [PA2015]Kieszonkowe

    扫一遍就好了

    4236: JOIOJI

    扫一遍用map维护$(s1-s0,s2-s1)$的最迟出现位置来dp

    [2017.11.22]

    4260: Codechef REBXOR

    用trie找异或起来最大的

    4247: 挂饰

    发现只跟钩子个数有关,然后就很好dp了

    [2017.11.25]

    4237: 稻草人

    cdq再维护两个单调栈即可

    4245: [ONTAK2015]OR-XOR

    考虑最后答案在二进制的第$i$位,如果要让它为$0$,那么就需要断某些点

    从大到小考虑这个用bitset维护一下就好了

    4241: 历史研究

    分块sb题

    [2017.11.28]

    真的是越来越辣鸡了.. 线性基都不会了..

    4292: [PA2015]Równanie

    枚举$f(n)$即可

    4276: [ONTAK2015]Bajtman i Okrągły Robin

    可以线段树优化建图跑费用流

    也可以贪心来跑匈牙利

    跟yyl学到了一种$O(n^2)$的做法:

    定义$f_x$表示选$x$的人最远的右端点在哪

    *4269: 再见Xor

    做出线性基就可以求出最大值

    然后次大值就看哪一位选的和最大值不一样就好了

    [2017.11.29]

    今天状态还好吧..

    4216: Pig

    把它$20$个分一块就行了

    4278: [ONTAK2015]Tasowanie

    一开始太想当然,后来仔细想想就是个后缀数组裸题..

    %%%王队长 其实可以贪心

    只要一段是单调不升的,就可以整段拿出来

    [2017.11.30-12.1]

    昨天忘记写了..

    天天犯sb错误,inf又没开大

    4238: 电压

    跟4424差不多

    4289: PA2012 Tax

    把边看成点,然后连到同一个点的按照边权排序

    大的往小的连$0$,小的往大的连边权差

    4282: 慎二的随机数列

    类似于普通的最长上升子序列

    4293: [PA2015]Siano

    容易发现相对大小不会改变

    就可以用线段树维护了

    [2017.12.3]

    4205: 卡牌配对

    把原问题转成找至少两个不互质的

    然后就增加$3 imes 46 imes 46$个节点就可以跑网络流的

    dinic奇快无比??

    *4239: 巴士走读

    把边看成点跑类似最短路的东西

    md怎么这么多没有用的边..

    [2017.12.4]

    4264: 小C找朋友

    hash一下就好了

    4275: [ONTAK2015]Badania naukowe

    找出$a$、$b$串中所有$c$出现的位置

    dp一个前缀和后缀就行了

    *4204: 取球游戏

    很容易想到$O(n^3log inf)$的做法

    然后发现那个矩阵比较特殊每一行都是前一行右移一位

    所以只维护第一行就行了

    4281: [ONTAK2015]Związek Harcerstwa Bajtockiego

    很水啊..

    [2017.12.5]

    今天效率并不高..

    4296: [PA2015]Mistrzostwa

    从度数小的点开始删,删剩下的就是联通块的大小了

    4231: 回忆树

    把询问拆成三块,中间那块可以暴力搞

    剩下的维护ac自动机的fail树,询问就是统计子树和

    *4298: [ONTAK2015]Bajtocja

    启发式合并,hash维护每个点每层所属联通快

    4294: [PA2015]Fibonacci

    找规律发现$60$、$300$、$1500$、$15000cdots$

    然后宽搜一下

    不知道为什么wa了啊..

    [2017.12.6]

    效率是真的低.. 但是还是先治病吧..

    3261: 最大异或和

    可持久化trie裸题

    4212: 神牛的养成计划

    一直在想怎么排序字符串

    想到后面发现要用到trie就不如直接在trie上排序

    排序后对于询问的前缀就是一段区间

    再找后缀就是可持久化trie的裸题了

    4285: 使者

    cdq裸题??

    [2017.12.7]

    *4206: 最大团

    最大团是npc hard的啊..

    过每个点做切线,每个点相当于覆盖一条弧

    不满足条件当且仅当覆盖的区间相离或者包含

    现在要选若干个点使得两两互相有交集

    又发现一个点取它在弧上的补集是不会影响答案的

    把覆盖掉$(r,0)$的点取补集

    就可以把问题转化成选取若干条线段使得

    $$l_1<l_2<l_3<cdots<l_k<r_1<r_2<r_3<cdots<r_k$$

    把它按照左端点排序,就可以通过做最长上升子序列来计算答案了

    但是这样做难免会选到包含的

    于是我们枚举一个让它必须选,然后剔除掉被它包含的所有线段再做就没事了

    这样复杂度是$O(n^2logn)$的

    4660: Crazy Rabbit

    三倍经验

    3663: Crazy Rabbit

    三倍经验

    cf575 A. Fibonotci

    $n$个$n$个做,修改的用线段树维护

    cf575 B. Bribes

    开$nlogn$个节点维护答案

    *cf575 G. Run for beer

    最短路,然后反着维护..

    不得不说细节是真的多

    [2017.12.8-9]

    *4230: 倒计时

    设$f_{i,j,k}$和$g_{i,j,k}$分别表示$****9999x$这个数有连续$i$个$9$,前面最大的数是$j$,个位是$k$使得前面退位的步数和退完后的个位是啥

    然后再从原数利用dp数组减就行了

    4209: 西瓜王

    主席树裸题

    4297: [PA2015]Rozstaw szyn

    dp,然后可以得到每个孩子节点取值的范围

    然后扫一遍即可

    4262: Sum

    线段树裸题

    [2017.12.10]

    惨了现在没有数据都不会查错了..

    晚上做了一场atcoder.. md均摊$O(n)$的都没发现..

    4246: 两个人的星座

    发现一对三角形有且仅有两条公切线

    然后就枚举一个点,剩下的点按照极角排序扫一遍就行了

    凭什么把重载运算符放在结构体内就快这么多啊..

    4277: [ONTAK2015]Cięcie

    挺容易想到的dp吧

    [2017.12.11-12]

    做题极其不顺,很难受

    *4233: [Cerc2013]Captain Obvious and the Rabbit-Man

    消元找规律,发现消出$a_i$的系数刚好是$(x-f[1])(x-f[2])(x-f[3])cdots(x-f[i-1])$的系数

    然后我就被卡常了

    然后想想发现每次减去前一行乘上$f_{i-1}$也是可以消的..

    *4248: AAQQZ

    真尼玛难做

    枚举一个最长回文串然后两边展开就行了

    细节真的多

    4280: [ONTAK2015]Stumilowy sad

    线段树裸题??

    *4207: Can

    分治然后两边展开

    3721: PA2014 Final Bazarek

    4209弱化版

    4250: [PA2014]Bazarek

    同上

    [2017.12.13-14]

    磨出了一道题真的棒..

    *3716: [PA2014]Muzeum

    把它坐标拉伸使得每个警卫看到的是一个九十度的角

    然后再把整个图旋转九十度

    根据最小割模型连边,发现就是警卫连到手办的最大流

    然后就用按$x$坐标排序,用set维护$y$坐标进行贪心就好了

    4251: [PA2014]Muzeum

    同上

    *4271: chemistry 化学

    先放一个kpm的链接以表尊敬

    里面有一句超有道理的话

    假如两棵无根树同构,那么以各自的重心作为根的有根树也同构

    一开始还打算枚举最长链然后burnside一下的..

    然后发现这样做是$O(n^3)$,用fft优化可以做到$O(n^2logn)$

    但是要高精度,这样的做法就会T掉

    然后看到kpm这句话感觉很有道理,就从重心开始dp,每个节点最多只有$3$个孩子,再让根的子树都小于等于$dfrac{n}{2}$就好了

    但是还有一种情况是有两个重心的..

    这种情况发现可以加一个点在两个重心之间就没问题了..

    然后再套上高精度就perfect了..

    [2017.12.15-17]

    很棒搞出了Voronoi图和Delaunay三角剖分

    *4219: 跑得比谁都快

    上述

    3007: 拯救小云公主

    上题弱化版,可以$O(n^2)$做..

    5091: 摘苹果

    发现无论多少次在某个点的概率都一样..

    就随便搞搞行了..

    [2017.12.18-22]

    不知不觉又拖更了..

    然后发现自己啥都没做天天颓..

    2393: Cirno的完美算数教室

    xjb爆搜.. 从大到小枚举会快

    *3622: 已经没有什么好害怕的了

    把两边排序

    $f_{i,j}$表示前$i$个至少有$j$对左边大于右边的方案数

    $g_i$表示恰好有$i$对左边大于右边的方案数

    $g_i=sumlimits_{k=i}^nC_k^if_{n,k}$

    然后就行了

    2916: [Poi1997]Monochromatic Triangles

    所有-不合法的就行了

    *4361: isn

    $f_i$表示长度为$i$不降子序列的个数

    那么答案就是$sumlimits_{i=1}^n(f_i imes(n-i)!-f_{i+1} imes(n-i-1)! imes(i+1))$

    5083: 普及

    用单调栈可以求出以每个位置为开头、结尾最远的点

    然后就用线段树搞搞就行了

    有另一种做法,$O(n)$RMQ可以把复杂度优化到$O(n)$,可惜我不会qaq

    *5097: 实时导航

    询问的时候跑最短路,用bitset维护堆操作来优化就可以做到$O(qdfrac{n^2}{32})$了

    具体来说就是开$4$个bitset,维护已经出堆的点和在堆内的点的最短距离的点集

    5004: 开锁魔法II

    发现这个图是个基环内向树,他的叶子节点是全都要选的

    然后$f_{i,j}$表是前$i$个联通块选$j$个节点最后全部搞定的方案数就没了

    没想到double存$300$的组合数都可以啊..

    5003: 与链

    每一位分开看就是个多重背包..

    *5005: 乒乓游戏

    线段树维护覆盖某个区间的所有点

    每次新来一个就看左右端点被哪些区间覆盖

    用并查集合并下就行了

    *5011: [Jx2017]颜色

    很像之前做的一道coci的题目..

    就是找把一个圆拆成两半且同一种颜色都在一边的方案数

    hash一下..

    hash值相同的就可以断开了..

    Codeforces Round #453 (Div. 1)

    A. Hashing Trees

    连续两个大于$1$就不合法了啊..

    C. Bipartite Segments

    出现一个奇环就说明包含某个区间的区间都是不可取的..

    维护每个点最远到达的点

    离线询问

    按询问右端点排序即可..

    *D. Weighting a Tree

    建出生成树,发现偶环不影响

    对于一个奇环,选任意一个点做根,发现根多出来$s$,那么环边就两端同时减去$s/2$

    再来做即可

    对于$s$为偶数的证明:

    因为度数和点权奇偶性相同,总度数和总点权奇偶性也相同

    也就是总点权为偶数,那么多出来的$s$也为偶数

  • 相关阅读:
    IBatisNet不常用到的配置(Dao.config ConnectionTimeout),居然不起作用(前辈留给我们的坑)
    随机数 字母 数字
    证书文件(pfx)读取时报 “指定的网络密码不正确”
    SQL多结果集导出Excel
    Uva514
    PAT乙级1012
    栈-41
    位运算-89
    PAT乙级1028
    PAT乙级1029
  • 原文地址:https://www.cnblogs.com/darklove/p/7856933.html
Copyright © 2011-2022 走看看