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

一堆结论:

  1. 不考虑除\(\gcd\),如果开场有奇数个偶数是先手必胜,否则先手必败
  2. 必胜/必败态只和奇偶有关所以不必考虑\(\gcd\)是奇数的情况
  3. \(\gcd=1\)可推出至少一个奇数
  4. 如果一开始至少有一个\(a_i=1\)那么可以根据1直接确定答案了
  5. 如果有奇数个偶数的话可以操作一个偶数,然后会剩下\(2\)个奇数,之后先手可以一直操作保证\(\gcd\)为奇,根据2和3先手必胜
  6. 如果有至少\(2\)个奇数和偶数个偶数那么先手操作完之后转到5,先手必败
  7. 否则只可能只有\(1\)个奇数,和偶数个偶数,先手操作偶数会转到5,所以先手只能追逐梦想操作那个奇数,操作完后所有数至少除以\(2\),所以可以直接暴力递归下去

E

zbl*2

显然先建一个图,不互质的数之间连边,先手选完序列后边会定向(当然无环),后手只能按照这个拓扑排序

yyb:先手肯定想要拉一条字典序最长的链,所以dfs一遍就行了

我觉得很有道理。

F

zbl*3

枚举每个点,如果以它作为根,最优方法走到它时只会走到\(A\)比它小的节点,因为如果你这样走,对面可以直接移回来你就很尴尬。

所以到了一个点就不能回父亲(走过来就是因为这个点\(A\)更小)

然后都是抄yyb的我也不知道为什么。

AGC010的更多相关文章

  1. 【AtCoder】AGC010

    AGC010 A - Addition 如果所有数加起来是偶数那么一定可以,否则不行 #include <bits/stdc++.h> #define fi first #define s ...

  2. AGC010 - D: Decrementing

    原题链接 题意简述 给出一个个数的序列,足够聪明的AB两人轮流进行以下操作: 令一个大于1的数减1,然后所有数除以. 如果一个人不能操作了,那么他就输了. 输入保证所有数都是正整数并且. 分析 这是一 ...

  3. AGC010 - C: Cleaning

    原题链接 题意简述 给出一棵个节点的树,每个点有点权.每次可以选择两个叶节点并将连接它们的路径上的节点的点权-1(包括叶节点).求能否将所有节点的点权都变为0. 分析 先考虑最简单的情况.在这种情况下 ...

  4. AGC010 - B: Boxes

    原题链接 题意简述 给出一个由个数构成的环,每次可以选择一个位置并从这个数起顺时针依次对每个数-1,-2,-3,-,-n.问能否将所有数全变为0. 分析 考虑一次操作对环带来了什么影响. (在后加一个 ...

  5. AGC010 - A: Addition

    原题链接 题意简述 给出一个个数的数列,每次选出两个奇偶性相同的数合成一个数,问最终能否只剩下一个数. 分析 非常简单的一道题. 两个偶数可以合成一个偶数,两个奇数也能合成一个偶数.所以合并偶数时偶数 ...

  6. 【AGC010 C】Cleaning

    题意 有一棵 \(n\) 个点的树,第 \(i\) 个节点有 \(a_i\) 个石子. 每次都可以选择一对不同的叶子节点,这对叶子节点路径上的所有点都必须要有石子.然后去掉这两个叶子节点路径上的每个节 ...

  7. AtCoder Grand Contest 1~10 做题小记

    原文链接https://www.cnblogs.com/zhouzhendong/p/AtCoder-Grand-Contest-from-1-to-10.html 考虑到博客内容较多,编辑不方便的情 ...

  8. Atcoder Grand Contest 010 C - Cleaning 树贪心(伪)

    C - Cleaning 题目连接: http://agc010.contest.atcoder.jp/tasks/agc010_c Description There is a tree with ...

  9. Atcoder Grand Contest 010 B - Boxes 差分

    B - Boxes 题目连接: http://agc010.contest.atcoder.jp/tasks/agc010_b Description There are N boxes arrang ...

随机推荐

  1. vim:spell语法

    先说结论,在vim配置文件加入: setlocal spell spelllang=en_us,cjk 1.spell指开启检查模式. 2.spelllang用于指定检查的种类. 3.cjk,指中国, ...

  2. Android 代码混淆、Android Proguard(混淆)

    Android Proguard(混淆)   混淆(Proguard)用法 最近项目中遇到一些混淆相关的问题,由于之前对proguard了解不多,所以每次都是面向Stackoverflow的编程.co ...

  3. Centos7安装Tomcat7,并上传JavaWeb项目

    一.需要的工具(其他连接工具也行) 1.Xshell 2.XFTP 1.1首先将Tomcat7的压缩文件利用XFTP上传到Centos7系统上的 /etc/local/tomcat中 1.2 解压文件 ...

  4. 【Java并发编程】24、Synchronized实现原理解析

    一.概述 我们知道在JDK1.5之前synchronized是一个重量级锁,相对于j.u.c.Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它. 不过,随着后续Java版本更新对 ...

  5. 【恢复】Redo日志文件丢失的恢复

    第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...

  6. Oracle ERP 库存管理(业务流程 核心流程)

    库存核心业务 库存管理的核心是对货物本身的管理,是对货物的数量与相关属性的管理,目的是为销售与采购服务,确保合理的库存保有量,处理库存分类帐目与进出流水帐,以单据的形式基本涵盖仓库的各种进出库业务. ...

  7. Android Ant Build 遇到的问题

    Ant的具体使用这里就不详细说明了,这里记录下自己使用Ant批量打包apk的时候遇到的问题. 1. build 出现 crunch等字样的错误 <span style="color: ...

  8. PHP实现Redis单据锁,防止并发重复写入

    一.写在前面 在整个供应链系统中,会有很多种单据(采购单.入库单.到货单.运单等等),在涉及写单据数据的接口时(增删改操作),即使前端做了相关限制,还是有可能因为网络或异常操作产生并发重复调用的情况, ...

  9. PHP fsockopen 异步写入文件

    b.php <?php $url = 'http://fsc.com/a.php'; $param = array( 'name'=>'fdipzone', 'gender'=>'m ...

  10. Vue-cli3 中 通过在index.html添加的script js文件 如何在组件内使用不会 xxx is not defined错误

    以jQuery 为例 第一种方法 更改webpack配置信息 1.在vue.config.js中(如果没有 请在根目录新建)配置如下信息 // const webpack = require('web ...