zoukankan      html  css  js  c++  java
  • CF1404D

    CF1404D - Game of Pairs

    题目大意

    两个人Van游戏,

    第一个人对于(1,2,cdots,2n)分成(n)

    第二个人尝试从每组中选一个数,使得选出数的和是(2n)的倍数

    你选一个人Van,然后赢了交互器


    分析

    考虑从一个(mathbb{Naive})的构造开始:

    分成(n)组,每组都是((i,n+i))

    为什么这么构造?因为每组两个数(mod n)都相同

    那么最终选出的和(Summod n=frac{n(n+1)}{2})

    观察到,在(n)为偶数时,(Sum mod n=frac{n}{2} e 0),此时必然无解

    然后我没过脑子随机化艹出了n为奇数的方案,但是没事下面有确定解法

    (n)为奇数时,我们只需要类似找到一组(mod n=0,1,2,cdots ,n-1)的方案

    此时必然满足(Summod n=0)

    这只需要对于给出的每组((a_i,b_i)),对于(a_imod n,b_imod n)连一条边

    然后在最终的置换环上进行决策即可


    然而我们需要(Summod 2n=0)

    (frac{(2n+1)2n}{2}=n(2n+1)mod 2n=n),故如果找到的(Summod 2n=n),取当前方案的补集即可

  • 相关阅读:
    洛谷【P1109 学生分组】 题解
    卡特兰数
    并查集
    深度优先搜索DFS;递归
    【71】序列模型和注意力机制
    c/c++ 常用的几个安全函数
    win32 Ui 编程 收集
    vc获取特殊路径(SpecialFolder)
    std::map 自定义排序
    16-----BBS论坛
  • 原文地址:https://www.cnblogs.com/chasedeath/p/14819616.html
Copyright © 2011-2022 走看看