zoukankan      html  css  js  c++  java
  • Atcoder Grand Contest 选做

    Atcoder Grand Contest 选做

    (A) (B) (C) (D) (E) (F)
    (1) *
    (2) *
    (3) * * *
    (4) * *
    (5)
    (6) * *
    (7) * * *
    (8) *
    (9) *
    (10) * *
    (11) * * *
    (12) * * * *
    (13) * *
    (14) * *
    (15) * * *
    (16) * * *
    (17)
    (18) *
    (19) *
    (20)
    (21) * *
    (22) *
    (23) *
    (24)
    (25)
    (26)
    (27) * *
    (28) * * * *
    (29)
    (30) *
    (31)
    (32) *
    (33) * *
    (34) * * * *
    (35)
    (36) *
    (37)
    (38)
    (39)
    (40) * *
    (41)
    (42)
    (43) * *
    (44) * *
    (45)
    (46)
    (47) * *
    (48) * *

    (11.08)

    之前的题都写在 好题胡扯 里了,以后大概会把 agc 和其他的题分开更。

    AGC044C Strange Dance

    我居然会

    考虑先取 (lceil frac n2 ceil) 位暴力跑,然后后 (lfloor frac n2 floor) 位进位次数不多,可以暴力做。复杂度暂时不会证。

    *AGC044D Guess the Password

    出题人 nb!

    (A=|alphabet|=62),发现可以先用 (A) 次询问得到每个字母的出现次数。

    Key Observation: 若 (|T|le |S|),删除的次数为 (|S|-|T|),那么 (|T|)(|S|) 的子序列。

    由性质可以用 (|f(A)|+|f(B)|-1) 合并 (A,B),将两个 (S) 的子序列合并为一个。这样用不超过 (Llceil log(A) ceil-A+1) 次询问即可合并,总的询问次数最多为 (Llceil log(A) ceil+1=769) 次。

    *AGC044E Random Pawn

    先找到最大值,破环为链。

    算了复读题解没啥意义,不写了

    题解

    然后就变成凸包面积求和了。

    (11.09)

    *AGC013E Placing Squares

    恭喜你发现了一个组合意义都想出来了没想到矩阵快速幂的 sb......

    总结:

    (n) 个位置的划分方案数,有两种形式:

    • 求所有划分的方案数
    • 求划分 (m) 次的方案数

    前者因为没有划分的限制,所以考虑快速算,而不是先枚举分多少段,不然会多个 (n)。。。

    后者和前者相反,通常可以从全局入手,用组合数算,不行再考虑枚举几段。

    (11.12)

    AGC043B 123 Triangle

    Fading 大爷推给我的题,成功找规律找了快 40 分钟,总算会了。

    这个 B 怎么这么难啊,我要自闭了

    先将序列差分一次,此时序列只有 (0,1,2)

    理性分析一下,发现答案是 (2) 的时候原序列没有 (1),所以我们只用考虑存在 (0)(2) 的序列。

    其他情况只和答案的奇偶性有关,那么用卢卡斯定理算一算 (n-1choose i-1) 的奇偶性即可。

    答案是 (2) 的情况用类似奇偶性的方法算一算即可。

    (11.16)

    *AGC036D Negative Cycle

    转差分约束模型,找性质。

    (11.22)

    化身鸽子.jpg

    *AGC003F Fraction of Fractal

    先讨论上下边界的连通情况。

    都连通答案是 (1),都不连通答案是 (cnt^{k-1}),只有一边连通可以矩阵快速幂。

    我才不会告诉你我没看到所有黑格四连通

    (11.25)

    AGC009D Uninity

    好题!

    要求点分树最大深度最小,即所有点有一个权值,使得 (=k) 的权值路径中一定一个点权值 (>k)。(这里的权值指点分树子树的最大深度)

    可以贪心,用位运算优化。说的太麻烦了,看代码吧。

    void dfs(int u,int ff)
    {
    	int lim=0;
    	for(auto v:g[u])
    		if(v!=ff)
    			dfs(v,u),lim|=bit[u]&bit[v],bit[u]|=bit[v];
    	int mx=30;
    	while(mx>=0 && !(lim&(1<<mx))) mx--;
    	mx++;
    	while(bit[u]&(1<<mx)) mx++;
    	ans=max(ans,mx),bit[u]|=(1<<mx),bit[u]=(bit[u]>>mx)<<mx;
    }
    

    AGC009E Eternal Average

    前几天做的。

    将选的过程抽象成一棵操作树,将进位转成判断数位和的大小和模 (k-1) 的余数。

    看 litble 的题解好了,懒得讲了

    *AGC004F Namori

    题解

    树是结论,奇环是调整出合法解,偶环是中位数。

  • 相关阅读:
    mysql的备份与恢复(windows、Linux并拷贝至备机)
    eclipse导出可执行jar
    ORCLE中两张表对比更新合入(MERGE INTO)
    js中事件冒泡的问题
    Spring事务传播行为详解
    Java中的锁分类与使用
    用某浏览器全屏延时启动应用
    Springboot整合WebSocket的交互实例(点对点、点对面)
    Windows程序设计------字体不等宽引出的问题及其细节知识
    关于VS2013使用constexpr报错问题
  • 原文地址:https://www.cnblogs.com/owencodeisking/p/13906170.html
Copyright © 2011-2022 走看看