A*G#C001
AGC001
A BBQ Easy
贪心。
https://agc001.contest.atcoder.jp/submissions/7856034
B Mysterious Light
很nb这个题
不好做,设\(f(a,b)\)表示边长为\(a,b\),一个角为\(60\)度的平行四边形从\(120\)度的角平分线处出发能走的路程,转移是一个递归,复杂度证明类似\(\gcd\)。
https://agc001.contest.atcoder.jp/submissions/7856746
C Shorten Diameter
每条边新建一个虚点,从每个点(虚实兜星)出发搜不超过\(D\)层(枚举直径中点),能保证真正的直径不超过\(D\),最大的大小即是答案。
https://agc001.contest.atcoder.jp/submissions/7864577
D Arrays and Palindrome
翻题解\(\sqrt{}\)
先说结论,如果\(a\)中奇数不超过\(2\)个,就把它们安排到序列两端,然后输出\(a_1-1,a_2,a_3,\ldots,a_{n-1},a_n+1\)。(此时只有\(a_1\)和\(a_n\)可能是奇数)
可行性画一画就知道了,至于为什么只有这个对,考虑连的边至少要\(n-1\)条,如果一个序列尽量放偶数可以连出\(\lfloor\frac n2\rfloor\)
如果一边有超过\(2\)个奇数那就会少一些边,对\(n\)分奇偶讨论可以得到不可行。
https://agc001.contest.atcoder.jp/submissions/7871320
E BBQ Hard
很久以前写过的顺便写写= =
求一大堆组合数之和,可以化为对每对\(i,j\in[1,n]\)求\((-a_i,-b_i)\)到\((a_j,b_j)\)的方案数
因为对每一对都要做所以直接dp就好了。
https://agc001.contest.atcoder.jp/submissions/3466674
F Wide Swap
最小化\(A\)的字典序相当于最小化\(p_A\)的字典序。(反正对的,关于证明弃疗了
那么从\(p\)上看就是可以交换相邻两个差\(\ge K\)的数
如果有两个数\(i<j,|p_i-p_j|<K\)那么最后\(i\)肯定在\(j\)前面
可以用拓扑序解决,然而边数太多了
每个点\(i\)只要向右边第一个\(a_j>a_i,|a_i-a_j|<K\)的和\(a_j<a_i,|a_i-a_j|<K\)的\(j\)连边即可,可用数归证明后面的边一定会被这两个点连到。
本博客中博文均为原创,未经博主允许请勿随意转载,谢谢。