ACM•Hdu
文章平均质量分 83
kksleric
这个作者很懒,什么都没留下…
展开
-
HDU3397 Sequence operation(线段树)
点击打开题目链接,还有一个类似的题,只进行01翻转操作和最大连续查询,HDU3911 Black And White对一个数列进行如下操作:Change operations:0 a b change all characters into '0's in [a , b]1 a b change all characters into '1's in [a , b]2原创 2012-03-30 16:30:10 · 545 阅读 · 0 评论 -
hdu 4297 One and One Story(维护森林中的LCA)
题意:有n个房间,每个房间有且只有一条出边指向另一个房间,现给出两个人在两个房间,问让他俩汇合要走的最少的路径数解法:观察图的形态,由于n个点n条边,且每个点出度为1,因此可以认为是一个森林,森林里每棵树都加了一条边形成了一个环,且环是根节点(可以认为缩点后没有出边,即没有父节点)。显然两点属于不同树的时候不可达;因为图的特殊性,因此没有用强连通做,而是用了并查集判环,也便于给环上每个点标原创 2012-09-16 19:05:17 · 2344 阅读 · 0 评论 -
HDU 3441 Rotation(Polya计数)
题意:将一个由A*A个方格组成的方块,分成k个B*B的方块和1个小方格后连乘一个由k+1个物体组成的环形物,如图,A=3时有两种分法。用C种颜色为每个方格染色,旋转得到的两种方案记为相同方案,问一共有多少种不同方案。解法:如果将B*B的小正多边形看做一个整体,则B*B的方案数即外围“长度为k的项链”的颜色数,因此此题要嵌套两个polya分别对B*B和K+1个物体的方案数分别计算。1.由原创 2012-07-25 19:48:18 · 895 阅读 · 0 评论 -
hdu 4358 Boring counting
题意:给出一棵树,每个点有一个点权,问一x为根的子树中有多少种权重恰好出现了k次。懒了,直接贴题解,况且本来也不是自己写出来的#include #include #include #include#includeusing namespace std;const int maxn = 100010;struct node { int be, ne; void原创 2012-09-02 19:52:20 · 1002 阅读 · 0 评论 -
平面图ST最小割(hdu 3870)
对于平面图有如下性质:1.(欧拉公式)如果一个连通的平面图有n个点,m条边和f个面,那么f=m-n+22. 每个平面图G都有一个与其对偶的平面图G*3. G*中的每个点对应G中的一个面4.对于G中的每条边e,e属于两个面f1、f2,加入边(f1*,f2*)。如果e只属于一个面f,加入回边(f*,f*)。平面图G与其对偶图G*之间 关系:1. G的面数等于G*的点数,原创 2012-08-14 09:58:37 · 1891 阅读 · 0 评论 -
hdu 3873 Invade the Mars(自写堆优化Dijkstra)
题意:以城市1为出发点,城市n为目的地,有若干条限制:要首先攻占城市a才能攻占城市b,问攻占城市n所需的最短时间。从源点到任意一点的最短路受两个条件的限制:一是源点到自己的最短路,而是源点到限制点的最短路,即限制点最短路f[c] = Math.max(f[c], d[a]);最短路d[c] = Math.max(d[c], f[c]);因此要确定所有限制点的最短路后才能使用该点松弛其它顶点原创 2012-08-14 10:12:14 · 741 阅读 · 0 评论 -
hdu 4391 Paint The Wall(根N分段哈希)
将整个区间分为sqrt(n)段小区间,每个段长度为sqrt(n),并维护每一段的统计量,这样可以在sqrt(n)时间内完成一次区间查询或更新。平衡查询和更新之间矛盾是数据结构设计时的重要考虑因素,而这种做法是经典的平衡做法,早就了解,但以前没有遇到过只能用“分段”解决的题目,因此总觉着这是迫不得已的“赖招”,也从来没有写过,昨天第一次写,小细节没注意,结果悲剧的写成每次查询O(n)了。总结一下错误原创 2012-08-24 14:43:32 · 1591 阅读 · 0 评论 -
hdu 3225 Flowers Placement(字典序第k小的完美匹配)
题意:用n个元素填满一个m行n列的矩阵,使得每行和每列中每个元素仅出现一次,现要再添加一行,使得矩阵仍满足上述限制,问字典序第k大的方案是什么.解法:错误的解法是填k次,每次填最小的,若仍存在解则第k次的填充方案就是字典序第k小的,例如原有1234,第一次填2143第二次填3412不死后第二小的。朴素的做法的dfs全排列然后验证,这样显然复杂度太高,于是考虑利用二分匹配剪枝:当递归到第i层原创 2012-09-05 11:56:25 · 922 阅读 · 0 评论 -
hdu 4262 Juggler(树状数组)
题意:某人手上有一串珠子,顺时针编号1--n,每次可进行三种操作:顺时针旋转一个珠子,逆时针旋转一个珠子,将手中的珠子移去(移去后顺时针方向下一个珠子进入手中),问按标号12345顺序将所有珠子逐一移去,最少需要多少次操作。分析:假设当前要移除的珠子为x,x左边的珠子用A代表,右边的珠子用B代表即AxB,则无论左移还是右移都会得到xBA,即移去某个珠子对后面的珠子无影响,每次只需单独考虑A和B原创 2012-08-26 20:52:21 · 732 阅读 · 0 评论 -
Hdu3947 流量等式建图
此题是以《NOI2008志愿者招募》为背景的,预做此题需要先体会《志愿者招募》的思想只不过由线性结构变为树形结构,但是问题的本质没有变,都是一个元素影响连续的若干个位置,构图的本质都是使每个变量x出现分别以+和-的形式出现在两个恒等式中,由此可以看做x变量从+式流入-式流出。设药品为x,为每条河建立一个等式,则x出现在了u的父边到v的父边路径上的所有等式中,因此用每个点的父边减去所有孩子的边(原创 2012-08-08 21:55:25 · 2453 阅读 · 0 评论 -
HDU 4048 Zhuge Liang's Stone Sentinel Maze
题意:给出m种不同重量的石子, 每一种石子的个数无穷多。从中选出N个石子,排成一个环,使得环上的石子重量的最大公约数为1. 旋转同构视为相同方案。解法:问题转化为从m种数中找出n(循环节个数)个最大公约数为1的数字的排列数,于是想到找补集:满足最大公约数为2的充分必要条件是所选的数都能被2整除,满足最大公约数为3的充分必要条件是所选的数都能被3整除,满足最大公约数为6的方案被重复计算了,于是要原创 2012-08-02 10:47:25 · 983 阅读 · 0 评论