zoukankan      html  css  js  c++  java
  • [搬运]一些构造题题解

    (这是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

  • 相关阅读:
    我们的CPU遭到攻击[LOJ558]
    历史[ZJOI2018]
    字符串[LOJ6517]
    奥运公交[LOJ3255]
    BLO-Blockade[POI2008]
    压力[BJOI2013]
    Earthquake[USACO01OPEN]
    暴力写挂[CTSC2018]
    极简教程:数据结构与算法(二)
    DllRegisterServer的调用失败的问题解决方法
  • 原文地址:https://www.cnblogs.com/yxsplayxs/p/12730913.html
Copyright © 2011-2022 走看看