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\rceil\) 位暴力跑,然后后 \(\lfloor \frac n2\rfloor\) 位进位次数不多,可以暴力做。复杂度暂时不会证。

*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\) 的子序列合并为一个。这样用不超过 \(L\lceil \log(A)\rceil-A+1\) 次询问即可合并,总的询问次数最多为 \(L\lceil \log(A)\rceil+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-1\choose 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

题解

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

posted @ 2020-10-31 14:30  Owen_codeisking  阅读(261)  评论(0)    收藏  举报