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一遍生成的树看看是否真的合法就行了。

  • 相关阅读:
    11月20日
    11月19日
    11月26日
    11月25日
    生活有感(一)
    c# word 删除指定内容
    mysql insert语句
    c# 删除word文档中某一页
    mysql 相同表结构拷贝数据
    调试再次出错
  • 原文地址:https://www.cnblogs.com/wyxwyx/p/arc103.html
Copyright © 2011-2022 走看看