10 2017 档案
摘要:题目链接:hdu 5002 Tree 题意: 给你一棵树,每个节点有个权值。 现在有四种操作 1. 删一条边加一条边,保证操作后还是一棵树。 2. 将一条链的节点的权值设为x. 3. 将一条链的节点的权值加上x. 4. 询问一条链的第二大权值,并且输出有多少个。 题解: 很裸的LCT,维护一下就行了
阅读全文
摘要:题目链接:Wannafly挑战赛1 C MMSet2 题意: 中文不解释。 题解: 比赛的时候是用的lca+贪心。 今天学了学虚树,这题实际就是求一个虚树的直径。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=(a);i<=(b);++
阅读全文
摘要:题目链接:hdu 5398 GCD Tree 题意: 给你一个n,让你输出一个最大生成树的价值。 有n个点,任意两点有条边,边权为gcd(u,v)。 题解: 由于题意要让你输出所有的1e5内所有的n,所以只能动态维护最大生成树。(LCT可以做到) 显然可能有用的边只能是x向x的因子连的边。 LCT如
阅读全文
摘要:题目链接:hdu 5967 小R与手机 题意: 有n个手机,每个手机有一个呼叫转移。如果形成了环就不能接通。 现在有两个操作: 1 询问打电话x,最终接到的是那个电话,如果有环,输出-1 2 将x的呼叫转移改为y 题解: 用LCT来维护这个森林的关系。 显然要形成环的话,肯定是树跟连向了该树内的点。
阅读全文
摘要:题目链接:BZOJ 2243: [SDOI2011]染色 题意: 给你一棵树,每个点有个颜色,有两个操作。 1 询问一条路径有多少段颜色。 2 将一条路径全部染成一个颜色。 题解: 这题可以用树剖+线段树维护。 但是LCT超级好写。 要注意的就是rev那里要把左右颜色也要换一换。 1 #includ
阅读全文
摘要:题目链接:SPOJ - OTOCI 题意: 给你n个点,有三种操作。 1 将 x y 连接 如果已经连接了,就输出no,否则输出yes 2 将x的权值改为y 3 输出x到y的路径经过的所有点的权值。 题解: LCT的题,很裸。 1 #include<bits/stdc++.h> 2 #define
阅读全文
摘要:题目链接:BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 题意: 有n个节点,每个节点有个弹力系数xi,表示第i个节点可以弹到i+xi,如果超过了n就弹飞。 现在有两个操作: 1 x 询问从x开始要弹几次才能弹飞。 2 x y 将x的弹力系数更改为y。 题解: 这题可以分块可以LC
阅读全文
摘要:题目链接:BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 题意: 三个操作. 1 链接x y 2 断开x y 3 询问x y是否连通 题解: LCT裸题 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++)
阅读全文
摘要:题目链接:hdu 4010 Query on The Trees 题意: 给你一棵树,有4种操作。 1 连接x,y. 2 断开x,y. 3 将x到y这条路径加上一个值w. 4 询问x到y这条路径的最大值. 题解: LCT必做题,全是LCT操作。 1 #include<bits/stdc++.h> 2
阅读全文
摘要:题目链接:hdu 6203 ping ping ping 题意: 给你一棵n+1个节点树,现在有q条路径不通,问你最少有多少个节点坏掉了。 题解: 考虑贪心,对这q条路径求一下lca,按照lca的深度从大到小排序。 然后for每条路径,看看x或者y是否在已经被禁止的子树里面,如果都不在,那么ans+
阅读全文
摘要:题目链接:hdu 6200 mustedge mustedge mustedge 题意: 一开始给你一个有n个节点m条无向边的图,现在定义mustedge为u->v的路径上必须经过的边。 现在有q个操作: 1 x y x->y加条无向边 2 x y 查询x->y上有多少条mustedge。 题解:
阅读全文
摘要:题目链接:hdu 4511 小明系列故事——女友的考验 题意: 中文不解释。 题解: 考虑将那些限制的条件插进AC自动机里面,然后在AC自动机上dp一下最短路就行了。 考虑dp[i][j]表示当前在第i个点上,在AC自动机的第j个点上的最短路。 然后dp转移看代码。 1 #include<bits/
阅读全文
摘要:题目链接:hdu 5129 Yong Zheng's Death 题意: 给你n个串,每个串串长30,现在让你构造串,使得该串能分成uv,u和v都是给出串中的前缀。 问能构造出多少这样的串。 题解: 这题主要是在如何去重。 如果不考虑重复,显然就是不同前缀串的数量的平方。 但是这里有算重,这里要求,
阅读全文
摘要:题目链接:poj 1991 Turning in Homework 题意: Bessie要交作业,现在知道每个教师的位置,假设都位于X轴上,每份作业都有一个最早交的时间,知道公交车站位于坐标B的对面,假设他每走一个单位耗费时间是1,求他交完作业到达公交车站那最少的时间是什么? 题解: 思想比较好,下
阅读全文
摘要:题目链接:hdu 4776 Ants 题意: 给你一棵有n个节点的树,每条边有一个权值ai,现在定义两点直接的距离为路径上经过的边的异或和。 现在有m个询问,每次询问你第k长的路径是多少。 题解: 一开始我想二分+树分治+trie,发现只能做一个询问。- -!。 这里有一个优秀的做法,可以预处理出前
阅读全文
摘要:题目链接:hdu 4775 Infinite Go 题意: 给你n步下黑白子棋的过程,问你最后黑棋剩多少,白棋剩多少(围棋规则) 题解: 并查集模拟一下,用并查集记录一下链以及周围空白棋子的个数。 注意棋盘边上的旗子可能被围死。 1 #include<bits/stdc++.h> 2 #define
阅读全文
摘要:题目链接:hdu 5972 Regular Number 题意: 给你一个字符串,现在让你输出该字符串所有的合法子串。 合法子串定义为:对应位置的字符合法。 对应位置的合法字符会给你。 题解: 据说这是一个名字叫做Shift-And算法。其实就是一个bitset优化的字符串匹配。 这里我将它写成板子
阅读全文
摘要:题目链接:Russian Code Cup 2017 - Finals B. Similar Words 题意: 给你n个字符串,现在让你构造一个集合X。 1.使得X的每个元素都是这n个字符串中的前缀。 2.X中任意两个元素都不相似(即一个字符串去掉第一个字符后不是另一个字符串) 题解: 我们将所有
阅读全文
摘要:题目链接:2016-2017 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2016) C Castle 题意: 初始长为 N 的串 S,以及一个空集合 T。下列有 E 个操作: 1 c :在 S 串尾添加字符
阅读全文
摘要:题目链接:hdu 5117 Fluorescent 题意: 有n个灯,m个开关,每个开关能控制一些灯的状态,即关闭的打开,打开的关闭。一开始灯全部是关闭的。 现在有个人去操作这些开关,显然会有2^m次组合。 现在问这个人操作完这些开关后,亮着的灯的期望E(x) 但是题目要求输出的是E(x^3)*2^
阅读全文
摘要:题目链接:hdu 4444 Walk 题意: 有n个矩形,现在biaoge要从一个点走到另外一个点上,不能穿过矩形,但可以沿着边走。 问最少需要多少次转弯才能到达。 题解: 由于数据很大,需要离散化一下,然后就是一个bfs,用三维的vis来记录最好的状态。 细节比较多,需要考虑延边走时的拐角方向。
阅读全文
摘要:题目链接:hdu 4778 Gems Fight! 题意: 有B个袋子,每个袋子里有一些小球,每个小球有一个颜色,现在Alice和Bob轮流选袋子。 每次选一个袋子,并将袋子里的小球放进锅里,如果锅里的相同颜色的小球个数大于等于S,那么当前选袋子的人 就会得到一个由这S个融合而成的魔法宝石(每次可以
阅读全文
摘要:题目链接:hdu 5115 Dire Wolf 题意: 有n只狼,每个狼有一个攻击力ai,每只狼能给相邻的狼增加攻击力bi,如果这只狼死了就不能给周围的狼增加攻击力了。 问如何打狼,使得受到的伤害最小。 题解: 考虑区间dp,dp[i][j]表示打死i~j之间的狼的最小伤害。 然后转移方程看代码。
阅读全文
摘要:题目链接:hdu 5113 Black And White 题意: 给你n*m的格子,现在有k种颜色,每种颜色要填c[i]个格子,让你输出一种合法的填涂方案,相邻格子颜色不能相同。 题解: 暴搜+剪枝。 对于当前剩下的格子数,考虑剩下的c[i],如果剩下的c[i]>(剩下的格子数+1)/2,那么就不
阅读全文
摘要:题目链接:hdu 4055 Number String 题意: 给你一个长度为n的指定的升降序列,问有多少种排列,符合这样的序列。 题解: 训练赛的时候没想出来,大概这种排列的dp需要转换一下思维吧。 考虑dp[i][j]表示前i个数只用1~i,结尾为j。 然后就有 如果s[i - 1]是' I '
阅读全文