AGC010
AGC010
A
【过水已隐藏】
B
这题推完了还是不会/kk真的毒瘤
考虑每次会减少的总和是\(n(n+1)/2\),用原来的和除以这个可以得到操作次数\(m\)(不是整数无解)
再考虑相邻两个数\(a_i,a_{i+1}\),考虑它们的差,设为\(d=a_i-a_{i+1}\)。
一次操作有两种情况,一是\(\Delta a_i=-j,\Delta a_{i+1}=-j-1\),会让\(d\)增加1。
二是\(\Delta a_i=-n,\Delta a_{i+1}=-1\),会让\(d\)增加\(1-n\)。
考虑任意两个相邻数,有一个初始的\(d_0\),然后操作\(m\)次若有\(a\)个操作二会让\(d_0\)增加\(m-na\),为了让最终\(d_0\)恰好为\(0\)算出\(a=\frac{m+d_0}{n}\),不是整数或\(<0\)无解
还有一个限制就是\(\sum a\)应该是\(m\),不过这个肯定可以满足不用判
C
以每个点为LCA的点对可以根据已知信息算出(判无解),现在只需要在每个点判断是否能在这个点按要求配对救星了
就是有数组\(a\),\(m\)次选两个不同的\(i,j\),让\(a_i--,a_j--\),最终\(a\)非负
这个很好判,按照最大值和其它的和比较一下就能知道最多能配出多少对
D
后面全提姆博弈题= =zbl
一堆结论:
- 不考虑除\(\gcd\),如果开场有奇数个偶数是先手必胜,否则先手必败
- 必胜/必败态只和奇偶有关所以不必考虑\(\gcd\)是奇数的情况
- \(\gcd=1\)可推出至少一个奇数
- 如果一开始至少有一个\(a_i=1\)那么可以根据1直接确定答案了
- 如果有奇数个偶数的话可以操作一个偶数,然后会剩下\(2\)个奇数,之后先手可以一直操作保证\(\gcd\)为奇,根据2和3先手必胜
- 如果有至少\(2\)个奇数和偶数个偶数那么先手操作完之后转到5,先手必败
- 否则只可能只有\(1\)个奇数,和偶数个偶数,先手操作偶数会转到5,所以先手只能追逐梦想操作那个奇数,操作完后所有数至少除以\(2\),所以可以直接暴力递归下去
E
zbl*2
显然先建一个图,不互质的数之间连边,先手选完序列后边会定向(当然无环),后手只能按照这个拓扑排序
yyb:先手肯定想要拉一条字典序最长的链,所以dfs一遍就行了
我觉得很有道理。
F
zbl*3
枚举每个点,如果以它作为根,最优方法走到它时只会走到\(A\)比它小的节点,因为如果你这样走,对面可以直接移回来你就很尴尬。
所以到了一个点就不能回父亲(走过来就是因为这个点\(A\)更小)
然后都是抄yyb的我也不知道为什么。
AGC010的更多相关文章
- 【AtCoder】AGC010
AGC010 A - Addition 如果所有数加起来是偶数那么一定可以,否则不行 #include <bits/stdc++.h> #define fi first #define s ...
- AGC010 - D: Decrementing
原题链接 题意简述 给出一个个数的序列,足够聪明的AB两人轮流进行以下操作: 令一个大于1的数减1,然后所有数除以. 如果一个人不能操作了,那么他就输了. 输入保证所有数都是正整数并且. 分析 这是一 ...
- AGC010 - C: Cleaning
原题链接 题意简述 给出一棵个节点的树,每个点有点权.每次可以选择两个叶节点并将连接它们的路径上的节点的点权-1(包括叶节点).求能否将所有节点的点权都变为0. 分析 先考虑最简单的情况.在这种情况下 ...
- AGC010 - B: Boxes
原题链接 题意简述 给出一个由个数构成的环,每次可以选择一个位置并从这个数起顺时针依次对每个数-1,-2,-3,-,-n.问能否将所有数全变为0. 分析 考虑一次操作对环带来了什么影响. (在后加一个 ...
- AGC010 - A: Addition
原题链接 题意简述 给出一个个数的数列,每次选出两个奇偶性相同的数合成一个数,问最终能否只剩下一个数. 分析 非常简单的一道题. 两个偶数可以合成一个偶数,两个奇数也能合成一个偶数.所以合并偶数时偶数 ...
- 【AGC010 C】Cleaning
题意 有一棵 \(n\) 个点的树,第 \(i\) 个节点有 \(a_i\) 个石子. 每次都可以选择一对不同的叶子节点,这对叶子节点路径上的所有点都必须要有石子.然后去掉这两个叶子节点路径上的每个节 ...
- AtCoder Grand Contest 1~10 做题小记
原文链接https://www.cnblogs.com/zhouzhendong/p/AtCoder-Grand-Contest-from-1-to-10.html 考虑到博客内容较多,编辑不方便的情 ...
- Atcoder Grand Contest 010 C - Cleaning 树贪心(伪)
C - Cleaning 题目连接: http://agc010.contest.atcoder.jp/tasks/agc010_c Description There is a tree with ...
- Atcoder Grand Contest 010 B - Boxes 差分
B - Boxes 题目连接: http://agc010.contest.atcoder.jp/tasks/agc010_b Description There are N boxes arrang ...
随机推荐
- Java的jdk环境变量配置
方法/步骤 1.安装JDK 选择安装目录 安装过程中会出现两次 安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中.(不能都安装在java ...
- SQL Server的外键必须引用的是主键或者唯一键(转载)
问: In SQL Server , I got this error -> "There are no primary or candidate keys in the refere ...
- SQL Server中如何把 科学记数法字符串 变为 数字字符串
当我们将Excel的数据导入SQL Server时,如果用SQL Server的字符串类型(VARCHAR和NVARCHAR等)来存储从Excel导入的数字,有时候这些数字会变成科学记数法字符串(例如 ...
- centos lnmp一键安装
安装 系统需求: 需要2 GB硬盘剩余空间 128M以上内存,OpenVZ的建议192MB以上(小内存请勿使用64位系统) Linux下区分大小写,输入命令时请注意! 安装步骤: 1.使用putty或 ...
- DotnetSpider爬虫简单示例 net core
文章地址 https://blog.csdn.net/sD7O95O/article/details/78097556 安装爬虫框架 NUGET 安装DotnetSpider 创建HTTP协议数据包 ...
- c# Windows服务管理
.NET Framework中提供的类库可以很方便的实现对windows服务的安装.卸载.启动.停止.获取运行状态等功能.这些类都在System.ServiceProcess命名空间下. 所以,在开始 ...
- springboot使用 @Transactional 注解配置事务管理
介绍 springboot对数据库事务的使用非常的方便,只需要在方法上添加@Transactional注解即可.Spring 为事务管理提供了丰富的功能支持.Spring 事务管理分为编程式和声明式的 ...
- FineReport连接SSAS多维数据库
1.服务器——定义数据连接,如下图: 2.配置SSAS服务器地址及登录名密码: 注意这里的用户名.密码是指的服务器的登录名和登录密码,也就是你远程桌面的登录用户名和密码,不是数据库的登录用户名密码. ...
- IntelliJ Cannot find declaration to goto----解决方案
系统中已经有了该类库,还是找不到类提示 close the project in intellij. close intellij. go to the project folder and dele ...
- rabbitmq:配置rabbitmq-management插件
rabbitmq提供了一个图形的管理界面,用于管理.监控rabbitmq的运行情况,它是以插件的形式提供的,如果要启用需要启用插件 一.启用插件 rabbitmq-plugins enable rab ...