[搬运]一些构造题题解

(这是easy分类里的8道题.其余题的以后补上)

 

AGC030C

瞎猜一下k=n时的构造,可以循环错位

再猜一下k=2n时的构造,可以在k=n的基础上把一些行换成+n的数字

考虑n<k<2n,猜测可以在k=2n的基础上把一些数字改回来,然后发现是对的(?)

于是就构造出来了,对于一个k找到合适的n即可,比较迷

 

ARC013D

先考虑奇偶性,如果全是奇就比较好做,第i节的长度为2^(m-i)

这样坐标绝对值的和在2^m以内的点都能达到,可以用数学归纳法证明,其实类似一个倍增的过程?

如果不同,第一节长度变为1,可以用来改变奇偶性

 

CF1227G

需要灵感,,,

把操作看成一个01矩阵,只要没有相同的行且列求和得到的数字集合和给定相同即可

排个序,然后强制第i列的数字从第i行开始向上填充,由于n+1行一定足够填完1

然后不会有相同的行,讨论ij两行其中i=1,(i,1)必定是0,则(j,1)必定是0,由于不降,(i,2)也必定是0,

这样总有一列使得矛盾

如果i>1,第 i 行和第 j 行不可能都是全 1,选择一 个 0 的位置,同理可证。

 

 

CF1157G

特判n=1,否则要么第一行全0要么最后一行全1

两种情况都做一遍,可以由一个确定的行得到哪些列需要翻转

然后由于一切都是确定的,直接check是否合法即可

 

 

CF1311E

两种思路,先构造出d最大的树然后慢慢向小调整,或这先构造d最小的树然后慢慢向大调整

设d[i]为第i层的节点数,只要d[i]<=2*d[i-1]就一定能构造出来

那么每次找到一个合法的i,从(i-1)层拿到第i层一个点,每次度数+1所以只要在范围内都可以得到

 

CF1305E

先找到最大的情况然后向小调整

最大即是ai=i

然后找到一个k,满足前k个形成的不足cnt而前k+1个形成的超过cnt

前k个ai=i

第k+1个设d=cnt-sum(k),a[k+1]=a[k]+a[k-2d+1]

第k+2个及以后d=infty

就搞完了

 

AGC027D

考虑黑白染色,黑色小白色大

考虑余数为1,则白格=lcm(黑格)+1

考虑给每个黑格斜线分配一个素数,格子权值=两条线乘积

算出来不超1e15

 

AGC035C

考虑n为奇数,除了1之外可以配对xy满足x^1^y=0

所以连成若干个x---y---1---x+n---y+n这样的链,组成菊花一样的东西

n为偶数,为2的次幂时无解

否则仍然配对,配对法则变为x^y^1^n=0

posted @ 2020-04-19 12:05  Yxsplayxs  阅读(141)  评论(0编辑  收藏  举报