题意

传送门

给定 \(2n\) 个数 \(1,2,\dots,2n\),A 和 B 进行交互,如下规则:

  • A 需要将元素分成 \(n\) 组 \(\texttt{pair}\);
  • B 从每组 \(\texttt{pair}\) 中选择一个元素,如果权值和是 \(2n\) 的倍数则 B 胜,否则 A 胜。

你需要选择 AB 中的一者扮演角色,并取得胜利。

\(1\le n\le 5\times 10^5\)。

题解

构造题是一点都不会……如果省选的试场上出现一道较简单的构造,那真是亏大了。接下来多做点 CF 的构造吧。

若为 A,我们希望 B 的权值和在模 \(2n\) 意义下变化少一些。于是尝试这样的构造:\(i\) 与 \(i+n\)。那么权值和为 \(\frac{n(n+1)}{2}+kn=n(\frac{n+1}{2}+k)\)。则 \(n\) 为偶数时一定可以。接下来考虑 \(n\) 为奇数。

若为 B,若我们取的数在模 \(n\) 意义下为 \(0,1,\dots,n-1\),则和为 \(\frac{n(n-1)}{2}+kn=n(\frac{n-1}{2}+k)\)。若后部为偶数,则得解;否则每组取另一个,和为 \(n(2n+1-\frac{n-1}{2}-k)\),也得解。接下来考虑如何取数。

依次考虑 \(i\) 与 \(i+n\)。先取 \(i\),若 \(i\) 与 \(i+n\) 同组,则变为一个子问题。否则不妨设 \(j\le n\) 与 \(i\) 同组,则 \(j\) 不取,\(j+n\) 必须取。类似匈牙利算法找增广路的过程,可以保证找到一组解。

CF1404D 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. json提取器和beanshell处理器组合,将提取的所有id以数组返回

    1.添加json提取器 2.添加beanshell处理器,并编写脚本 String str1 = vars.get("buildid_ALL"); log.info(str1); ...

  2. APICloud平台使用融云模块实现音视频通话实践经验总结分享

    需求概要:实现视频拨打.接听.挂断.视频界面大小窗口.点击小窗口实现大小窗口互换. 实现思路:一方拨打后,另一方要能收到相应事件,然后接听.接通后,渲染对方视频画面.那么己方视频画面什么时候渲染呢?对 ...

  3. [深度学习] tf.keras入门4-过拟合和欠拟合

    过拟合和欠拟合 简单来说过拟合就是模型训练集精度高,测试集训练精度低:欠拟合则是模型训练集和测试集训练精度都低. 官方文档地址为 https://tensorflow.google.cn/tutori ...

  4. 1_ios系统httpstatus状态为0

    这两天在开发中遇到了一个很奇怪的问题,我有一个上传文件的接口,在安卓系统运行完全没问题,但是一使用苹果系统运行就报错,看了下控制台和Network,发现HTTPStatus的状态为0 从来没见过状态返 ...

  5. 基于云基础设施快速部署 RocketMQ 5.0 集群

    本文作者:蔡高扬,Apache RocketMQ Committer, 阿里云智能技术专家. 背景 上图左侧为 RocketMQ 4.x版本集群,属于非切换架构.NameServer 作为无状态节点可 ...

  6. AtCoder Beginner Contest 282 G - Similar Permutation

    套路题 题意 求有多少个 \(1\) 到 \(n\) 的排列满足恰有 \(k\) 对在排列中相邻的数满足前小于后 \(2 \leq n \leq 500, 0 \leq k \leq (n - 1)\ ...

  7. python3进行3des的加密解密

    #秘钥长度正常24位,16位补齐第一个八位 import pyDes import base64 print('=======key1=======') keys='1234567890123456' ...

  8. 推荐一款在浏览器编辑`Blazor`的`IDE`

    不知道是否有Blazor用户羡慕过React或者Vue用户,在一些组件库中,它们就提供了在当前的组件预览对于组件的实时编辑并且预览? 比如semi-design的这种 在比如codepen这种 由于B ...

  9. 【OpenWRT】增加第三方开源库 - 二维码开源库 zbar

    序言 第一次开始写博客,在日常学习和工作当中 CSDN 给我帮助很大,因此我也在 CSDN 奉献自己的经验,借此回馈 CSDN 对我的帮助,希望自己的经验可以帮助需要的人,也方便自己后续复习之用,同时 ...

  10. 前端知识点(js部分)

    目录 一.JS简介 简介 ECMAScript的历史 二.JS基础 1.注释语法 2.引入js的多种方式 3.结束符号 三.变量与常量 编写和运行js代码的两种方式 变量声明 四.基本数据类型 1.数 ...