zoukankan      html  css  js  c++  java
  • [AtCoder]Regular Contest 103

    为啥三道构造题啊!!!

    C ////

    题意:给定一个序列,问至少改变多少个数可以让这个序列奇数项相同,偶数项相同,且奇偶项不同。

    分奇偶记录出现次数最多的和次多的。如果最多的不同,那就是这两个,如果相同,那就是最多和次多的其中一种组合。

    D Robot Arms

    题意:给定(n)个点,问能不能构造出m条有序的边,使得这些边起点为((0,0)),首尾相连能让终点在各个点上,边必须水平或竖直。

    对于确定的一组边,终点的坐标的横纵坐标和的奇偶确定。所以,如果这些点奇偶不同,那就gg了。考虑全是奇数的情况(如果是偶数,加一条长度为1的边就行了),一条边({1})可以到达((1,0),(0,1),(-1,0),(0,-1))。两条边({1,2})可以到达的点是以((3,0),(0,3),(0,-3),(-3,0))为顶点的正方形内所有的“奇点”,同理,(k)条边({1,2,4,..2^{k-1}})可以到达的点是和(2^k-1)有关的。
    因此,我们从大到小的确定每条边的方向:这条边的起点必须落在剩下的边组成的正方形中(由于边的长度是偶数,所以不用担心落在“偶点”上)。

    E Tr/ee

    题意:给定一个长度为(n)的字符串(S),问能否构造出这样的树:(n)个点,如果(S_i=1)则可以有删掉一条边后大小为(i)的联通块,否则就不可以有。

    无解很好判。
    一种图:毛毛虫可以满足条件,设有(k)个合法的联通块的大小分别为(x_1, x_2..x_k),我们构造一只“毛毛虫”,它的“身体”长度为(k+1),然后把({x_i})差分一下,放到每个节点上就行了。

    F Distance Sums

    题意:给定(n)个整数(A),问能否构造出这样的树:(n)个点,(sum_j dis(i,j) = A_i)

    还是那个思路,从点(i)到儿子(j)的时候,路径和变成了(A_i + n - 2size(j)),反之亦然。根据直觉,我们发现,叶子的(A)值比较大,所以,按(A)值从大到小处理,每次找出(A)值最大的点的父亲。最后在dfs一遍生成的树看看是否真的合法就行了。

  • 相关阅读:
    Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别
    用foreach遍历 datagridView 指定列所有的内容
    treeView1.SelectedNode.Level
    YES NO 上一个 下一个
    正则 单词全字匹配查找 reg 边界查找 精确匹配 只匹配字符 不含连续的字符
    抓取2个字符串中间的字符串
    sqlite 60000行 插入到数据库只用不到2秒
    将多行文本以单行的格式保存起来 读和写 ini
    将秒转换成时间格式
    richtextbox Ctrl+V只粘贴纯文本格式
  • 原文地址:https://www.cnblogs.com/wyxwyx/p/arc103.html
Copyright © 2011-2022 走看看