CF1404D 题解
题意
给定 \(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 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- JS 过滤数组中 对象的某个属性
var newArray = [{name: "aaa",value: 0, height: 1},{name: "bbb",value: 1, height: ...
- 【机器学习】李宏毅——Adversarial Attack(对抗攻击)
研究这个方向的动机,是因为在将神经网络模型应用于实际场景时,它仅仅拥有较高的正确率是不够的,例如在异常检测中.垃圾邮件分类等等场景,那些负类样本也会想尽办法来"欺骗"模型,使模型无 ...
- 图计算引擎分析——Gemini
前言 Gemini 是目前 state-of-art 的分布式内存图计算引擎,由清华陈文光团队的朱晓伟博士于 2016 年发表的分布式静态数据分析引擎.Gemini 使用以计算为中心的共享内存图分布式 ...
- C++11(列表初始化+变量类型推导+类型转换+左右值概念、引用+完美转发和万能应用+定位new+可变参数模板+emplace接口)
列表初始化 用法 在C++98中,{}只能够对数组元素进行统一的列表初始化,但是对应自定义类型,无法使用{}进行初始化,如下所示: // 数组类型 int arr1[] = { 1,2,3,4 }; ...
- 《深度探索C++对象模型》第四章 Function语意学
member function相对于nonmember function之间不存在效率之间的差别,因为编译器内部已经将"member 函数实体"转化为对等的"nonmem ...
- Linux c 检测当前网卡是否已经启动
思路: 1.socket 建立一个数据报套接字. 2.定义一个struct ifreq ifr 结构体.将网络名称如"eth0" 赋值给ifr结构体的ifr.ifr_name. 3 ...
- VUE Angular通用动态列表组件-亦可为自动轮播组件-02-根据数据量自动横向滚动,鼠标划入停止滚动
本文为横向轮播,纵向轮播/动态列表组件请戳---- 代码是angular的,稍微改改就可以放入Vue项目里,差别不大哟 以下代码可以根据实际情况自行调整 父组件html <app-scroll- ...
- SpringCloud————>了解什么是微服务技术
SpringCloud是Spring为微服务架构思想做的一个一站式实现.从某种程度是可以简单的理解为,微服务是一个概念.一个项目开发的架构思想.SpringCloud是微服务架构的一种java实现. ...
- python处理apiDoc转swagger
python处理apiDoc转swagger 需要转换的接口 现在我需要转换的接口全是nodejs写的数据,而且均为post传输的json格式接口 apiDoc格式 apiDoc代码中的格式如下: / ...
- Java入门与进阶P-5.3+P-5.4
数组的元素 有效的下标 最小的下标是0,最大的下标是数组的元素个数-1 可是编译器不会检查看你是否用了有效的下标 但是如果运行的时候出现了无效的下标,可能会导致程序终止 定义数组变量 元素个数必须是整 ...