
AGC好题(思维题)
文章平均质量分 59
Bubble_age
这个作者很懒,什么都没留下…
展开
-
[AGC003E Sequential operations on Sequence] [思路题:逆推与分治]
[题目大意] 给出一个长度为N的序列A,其中A[i]=i。然后对它依次进行M次操作:每一次操作用一个整数q[i]描述,表示构造一个无穷长的序列B=AAAAAA...,然后令A=B[1..q[i]]。M次操作全部结束后,对每一个i∈[1,N]询问:A中有多少项等于i。[思路]这题有毒!!(话说AGC系列哪个没毒??)首先画几个序列观察一下吧:n=3,m=2,q={8,21}...原创 2018-11-23 20:58:21 · 299 阅读 · 0 评论 -
agc012_d Colorful Balls (连通块 贪心 结论 排列组合)
这题乍一看没有什么头绪,有点凌乱。不妨建一个更加明晰的问题模型:有n个球,分成k堆,第 i 堆球的颜色都是c[i],每个球 j 都有一个重量w[j],且标有一个1~n的数字(代表它在序列中的位置)。每次你能做的操作就是交换某两个球的数字,并且同一堆的两个球能够交换数字,当且仅当重量和<=X;不同堆的两个球能够交换数字,当且仅当重量和<=Y。问最后有多少种本质...原创 2018-12-17 21:46:54 · 476 阅读 · 0 评论 -
[AGC009E Eternal Average] [建模 K进制 同余 简单DP]
先把问题转化成更形象的版本:你可以任意建一棵k叉树,并且需要满足恰有n+m叶子,其中有n个权值为1(黑点),m个权值为0(白点),其余节点的权值等于儿子节点的均值。问根节点有多少种可能的取值。这棵树形象地模拟了合并的过程,并且我们可以看到:对于每一个黑色叶子结点i,记其深度为,那么它对根的贡献就是。由于这些贡献都是k的幂的形式,所以这启发我们在k进制下去想问题。我们安排一下每个黑点的深度,这就...原创 2018-12-11 20:55:28 · 377 阅读 · 0 评论 -
agc012_c Tautonym Puzzle (构造)
这题的构造技巧在于尽量简化操作,让贡献便于计算。最简单的情况就是每一个数字只有两个了。记一个长度为n的排列为,我们考虑构造这样一个序列(,1,2,...,n)。容易发现,一个复读子序列要想出现在这里面,肯定是前一份在里面,后一份在(1,2,...,n)里面。这就要求本身是一个递增序列。因此这样一个序列的贡献实质就等于的上升子序列个数。这样问题就简单了(虽然暂时我们也并不知道...原创 2018-12-17 20:47:36 · 380 阅读 · 0 评论 -
agc011_f Train Service Planning (数学分析 取模技巧 线段树优化DP)
这题好难啊!!!有一篇博客已经写得很详细也很清晰了,安利一下:传送门我再加几句,是我自己理解过程中遇到的困难:(1)逆行的车用(N−S(a,i−1)−S(q,i),N−S(a,i)−S(q,i))表示,为什么N可以调整为K的倍数。解释:因为所有火车同时推迟t个单位时间本质上和原来一样,所以我们可以通过推迟的方法让N变为K的倍数。(2)为什么最后答案不是S(p,n)+S(q,n)+2...原创 2018-12-17 14:18:06 · 324 阅读 · 0 评论 -
[AGC009D Uninity] [建模+贪心]
这题好神啊,就是没想到还可以这样做……问题就是将树进行点分治,最小深度是多少。显然答案的上界是logn,但是具体是多少呢?尝试了若干贪心策略,什么直径啦,什么点数啦……好像都有反例,或者根本不知道对不对。结果看了题解才知道可以换成另一种问题去做:实际上就是给树填入数字(数字就是题目中的那个等级),需要保证两个相同数字的节点间的路径上至少存在一个比它们更大的数字,问最大的数字最小是多少。...原创 2018-12-10 21:52:36 · 317 阅读 · 1 评论 -
[AGC009C Division into Two] [DP好题]
这题真的挺不错的。首先观察发现:任意两元素相差>=A,只要满足排序后相邻两元素相差>=A,B同理,所以我们考虑从小到大依此决定每个元素应该扔到哪个集合,这样就只要维护两个集合中此时最大的元素即可。得到朴素的动态规划方法:f[i][j]表示放完了前max(i,j)个元素,且A集合中最大的元素是i,B集合中最大的元素是j,有多少种方案。转移也很方便,直接枚举下一个元素放到哪个集...原创 2018-12-10 15:32:08 · 320 阅读 · 0 评论 -
AGC011_E Increasing Numbers (玄学贪心 或者 数学分析)
题意定义:一个数是增长数,当且仅当它的每一位数字都不比左边一位数字小。给出一个n位数Number,问最少用几个增长数才能表示出它(即把它拆成几个增长数的和的形式)。算法1 玄学贪心这是本蒟蒻莫名其妙yy出来的做法,感觉很有道理就去写了一下,没想到居然AC了??不过到现在还不能证明其正确性。只是在这里说下策略:大胆猜想:每次减去最大的增长数可以保证次数最少。试了几个样例,...原创 2018-12-15 17:03:24 · 452 阅读 · 0 评论 -
[AGC009B Tournament] [建模+贪心]
[题目大意] n个人参加锦标赛,比赛有若干场,每场都是两个幸存者比试,淘汰失败方。现在不清楚具体怎么比的,只知道1号为最终冠军,其余每个人,i号是被a[i]打败的,让你在所有可能的比赛流程树中找出深度最小的那个,输出深度。[思路] 考虑建一个新树,其中i的父亲是a[i],这个时候我们发现,i的子树中只有i幸存下来,接下来的比赛和i的后代没有任何关系,即没有后效性,所以我们显...原创 2018-12-10 08:26:03 · 293 阅读 · 0 评论 -
[AGC008F Black Radius] [特征法统计+树形DP]
这题真的神啊……[思路] 先画一画样例,在脑海里形成一个比较形象的认识。比如这里先约定一些名词: [中心] 就是我们选中的那个点 [步长] 就是我们染色时确定的范围d [边缘] 可以看到,从中心往外扩散,有些路径扩散到了叶子结点,还有些没到尽头就停止了,我们把没到尽头的路径末端结点称为边缘。 [子树T(x,y)] 以x为树根时,以y为根的子树...原创 2018-12-09 21:53:14 · 320 阅读 · 0 评论 -
agc011_d Half Reflector (找规律)
这题好有趣啊,玩了好一会儿才得出比较简洁的做法。记A状态为1(黑),B状态为0(白)。发现几个比较有用的规律:(1)一个球通过一段长度为L的黑块时,会把前L-1个黑块都变成白块。 特殊情况:这段黑块在最左边,那么球只会把第一个黑块取反,然后从左端飞回去;(2)一个球通过一段长度为L的白块时,会把前L-1个白块都变成黑块; 特殊情况:这段白块在最右边...原创 2018-12-15 09:32:58 · 295 阅读 · 0 评论 -
agc011_c Squared Graph
题意描述定义图的乘法:A×B生成一个新图C,其中任意a∈A,b∈B,都对应C图中一个新点(a,b),C图中任意两点(a,b)、(a',b')之间存在边,当且仅当A、B中存在边(a,a')、(b,b')。给出一个图G,求G×G中有多少个连通块。思路这道题目好啊,一开始以为是不可做题系列……关键就是要充分理解题意,建立形象化的问题模型。新图上的点(a,b)和点(c,d)之间有一...原创 2018-12-14 19:57:39 · 305 阅读 · 0 评论 -
agc010_e Rearranging (图论建模 贪心 拓扑序)
最后做法挺简单的,但确实不容易想到这么多大胆的步骤。首先第一眼就能发现Takahashi的序列中如果存在,那么和的相对位置永远不会改变,也就相当于永远在后面出现。思维比较发散的人可能已经想到了拓扑——连一条边,这样就形成了一个DAG,Aoki肯定会按最大字典序来访问这个拓扑图。所以我们其实是给一个无向图( 就给i和j连边)确定方向,变成有向图,使得最后最大拓扑序最小(我们称之为“最优序列”)...原创 2018-12-13 11:13:21 · 365 阅读 · 0 评论 -
[agc010d] Decrementing - 博弈 结论题 -
这题真的不会,不知道正解是怎么想出的 (首先容易想到当出现一个1的时候,以后的gcd就全是1了,所以后面的操作就只有减1,没有除法。这个时候,如果轮到i走,还剩奇数轮,他就胜了,反之他就败了。更具体地,还剩奇数轮等于说是还剩奇数个偶数,所以我们来关注一波奇偶性(偶数的个数记为cnt[0],奇数的个数记为cnt[1])。由于题目保证一开始g=1,所以黑板上至少混入了一个奇数。至于...原创 2018-12-12 16:52:15 · 263 阅读 · 0 评论 -
[AGC004_f Namori] [问题转化+贪心]
[题目大意]有一个连通图,由N个顶点和M条边构成,没有重边和自环,且N-1<=M<=N,点依次标为1..N号,第i条边连接点ai和bi。起初所有顶点都是白色。你每次操作可以将两个相邻的同色点的颜色取反(白->黑,黑->白)。问最少多少次可以将点都变成黑色,如果无解,输出-1。[思路]这题真是神题啊,给跪了……首先,每次操作都要改两个点,看起来就很麻烦,所...原创 2018-11-26 09:46:37 · 284 阅读 · 0 评论 -
[AGC005C Tree Restoring] [贪心构造]
[题目大意]青木君很喜欢数列和树。一天,高桥君给了他一个长度为N的数列a1, a2, …, aN,这让青木有了构造一棵树的冲动。他想要构造一棵树,其中i号点与其它点的树上距离的最大值恰好等于ai(假设树边长度均为1)。请问是否存在这样一棵树符合要求。[想法]这种题目可以从极端情况入手,而这里的极端就是树的直径。(1)因为任何树都存在至少一条直径,所以一定存在一对相等且最...原创 2018-11-26 09:05:16 · 225 阅读 · 0 评论 -
[agc010_c] Cleaning (递推+结论构造)
这题很妙啊,日常智商不在线的博主居然自己想出来了,成就感爆炸有木有!!!--------------------------------------------------------------------------思路&解法--------------------------------------------------------------------当成有根树做。先从...原创 2018-12-12 11:21:53 · 421 阅读 · 0 评论