AGC002E题解
简要题意
桌上有 \(n\) 堆糖果,第 \(i\) 堆糖果有 \(a_i\) 个糖。两人在玩游戏,轮流进行,每次进行下列两个操作中的一个:
将当前最大的那堆糖果全部吃完;
将每堆糖果吃掉一个;
吃完的人输,假设两人足够聪明,问谁有必胜策略?
数据范围:\(1\leq n\leq10^5,1\le a_i\le10^9\) 。
思路
首先对于最大的一堆糖,如果两个人不去操作它那么他就会一直是最大的,而如果有人选择干掉它,那么剩下的最大值会顶替它。所以我们首先可以将 \(a_i\) 从大到小排序。但是对于第二种操作每次我们都要将全局减一不方便,但是每个数的相对大小不变,所以我们可以看成有一条线去截一些数,每次向上挪动。同样的,对于第一种操作我们也可以用相同的方法表示。所以我们可以将数列下标与数值看成一个有序二元组,由它们组成边界,把题目转化成在平面直角坐标系中有一个在 \((1,1)\) 的石子,现在两个人轮流移动,不能移动者获胜。于是就可以递推出每个格子的情况,但是数据范围不允许我们算出全部格子,所以需要稍微找一下规律。我们发现对角线上的格子的情况是一样的,所以可以暴力找到最远的对角线上的点,然后看它的上面与右边的获胜情况推出它自己是否获胜。
代码
bool cmp(int a, int b){return a > b;}
signed main(){
n = rd();
for(int i = 1; i <= n; ++i)a[i] = rd();
sort(a + 1, a + 1 + n, cmp); int pos;
for(pos = 1; pos <= n and a[pos] >= pos; ++pos); --pos;
bool o = (a[pos] - pos) & 1;
if(! o){
int i; for(i = pos + 1; a[i] == pos; ++i); --i;
o = (i - pos) & 1;
}
puts(o ? "First" : "Second");
return 0;
}
AGC002E题解的更多相关文章
- 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 ...
随机推荐
- sort算法的使用
sort算法的使用 望文生义,sort是STL内置的一个排序算法,其底层是由多个排序算法的配合的使用. 需要包含的头文件 #include<algorithm> 使用 sort(参数1,参 ...
- OpenLens 6.3.0 无法查案日志和进入 Pod Shell 解决方法
原因 OpenLens 6.3.0开始移除了Pod的查看日志和进入Pod Shell按钮,无法查看日志和进入Pod操作. 解决办法 OpenLens 6.3.0开始这两个功能以插件形式提供,需下载op ...
- Java保留两位小数的几种写法总结
转载 本文列举了几个方法: 1. 使用java.math.BigDecimal 2. 使用java.text.DecimalFormat 3. 使用java.text.NumberFormat 4. ...
- Qt编写地图综合应用1-闪烁点图
一.前言 Qt作为一个超大型的一站式GUI超市开发集成环境,不仅集成了大量的可视化UI组件,还提供了网络库.数据库操作.文件操作等类库,封装的还是相当精彩一步到位,根据个人身边的一些程序员朋友了解,自 ...
- Python 安装package 问题汇总
1. pip 命令使用国内源安装 pip install torch==1.8.1 -i https://mirrors.aliyun.com/pypi/simple/腾讯云: https://mir ...
- Bolt.new 30秒做了一个网站,还能自动部署,难道要吊打 Cursor?
大家好,我是汤师爷~ 这篇聊聊 Bolt.new 和 Cursor 的对比. Bolt.new 是一款基于 SaaS 的 AI 编码平台.它由 LLM 驱动的智能体作为底层,并结合 WebContai ...
- 分布式数据库NoSQL简介
NoSQL第一部分 一.什么是NoSQL? 问题:12306在开始诞生的前几年,每到重大节假日,经常"瘫痪",直接原因就是集中超负荷的访问量.技术原因是它在此期间所采用的国际著 ...
- 直播预览层(AVCaptureVideoPreviewLayer)底层实现
分析sampleBuffer(帧数据) 通过设置AVCaptureVideoDataOutput的代理,就能获取捕获到一帧一帧数据 [videoOutput setSampleBufferDelega ...
- Django环境的Linux安装(使用put方法将本地安装包导入到Linux)
1.建立Sftp链接 2.使用put命令将本地的安装包拉取到指定目录. 3.使用tar xzvf 命令将安装包解压到创建好的目录. 4.cd Django-* 5.执行安装命令:sudo python ...
- RocketMQ原理—2.源码设计简单分析上
大纲 1.NameServer的启动脚本 2.NameServer启动时会解析哪些配置 3.NameServer如何初始化Netty网络服务器 4.NameServer如何启动Netty网络服务器 5 ...