2013暑期集训
文章平均质量分 77
沉溺
这个作者很懒,什么都没留下…
展开
-
2013 多校第三场 hdu 4630 No Pain No Game(线段树)
hdu 4630题目:http://acm.hdu.edu.cn/showproblem.php?pid=4630题目大意:1~n,总共个数,任意顺序排列,然后给你m个询问,每个询问有a、b,问你区间a~b的数里面任意两个数最大gcd是多少。思路:由于它问的是gcd,那么我们可以先枚举约数,即1~n,对于每个约数去画区间,我们要求的是对于每个区间长度要尽可能的小,比如约数是1的区间,那原创 2013-07-31 19:02:59 · 771 阅读 · 0 评论 -
2013 多校第六场 hdu 4665 Unshuffle
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4665题目大意:两个相同的序列搞在一起,给你他们搞起来的总的序列,每个元素最多只可能重复出现4次,现在要把他们两个拆开,问你一种可行方案,分别用0、1标记。思路:比赛的时候一直想不出它这个4到底有什么用处,又想不出什么好的解法,听到别人说暴力可以过,我们也直接上暴力了,最后30分钟开始敲,还剩最后1原创 2013-08-10 11:23:56 · 870 阅读 · 0 评论 -
2013 多校第六场 hdu 4655 Cut Pieces
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4655题目大意:给你一个序列ai,每个点可以涂ai种颜色,颜色一样的算同一块,ai可以任意排列,问你所有方案的块数和最大为多少?思路:直接来解题报告吧如果不考虑相邻块的重复,那么总数就为n*S(S为TTai),现在考虑相邻两个ai的重复,就要剪掉,依次考虑过去,如果ai和a(i+1)相同,那原创 2013-08-10 11:07:59 · 811 阅读 · 0 评论 -
2013 多校第九场 hdu 4705 Y(枚举 + 树上的计数)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4705题目大意:给你一棵树,让你求出不在同一条简单链的三个点的个数。思路:枚举这三个点的中点,我们默认让1号节点做树根,设以某个节点u的子节点为根节点的子树大小为 v1、v2、v3。。,则另外的点有 (n - size[ u ]),然后把依次过来把这些点乘一下就好了。这道题目我竟然写了2个小时,原创 2013-08-22 18:06:07 · 745 阅读 · 0 评论 -
2013 多校第九场 hdu 4691 Front compression(暴力 + 剪枝 OR 后缀数组)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4691题目大意:输入一组字符串,对于输入的每一个字符串,输出一个数字加一个空格加一个字符串加一个回车,数字为它和上一个输入的字符串的公共前缀的长度,字符串为未匹配的字符串,空串的话长度也为1,最后输出两个数,分别是输入的所有的长度和和输出的长度和,空格和回车都算一个。思路:暴力枚举前缀,然后TLE,原创 2013-08-20 20:28:22 · 814 阅读 · 0 评论 -
2013 多校第六场 hdu 4662 MU Puzzle
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4662题目大意:三种字符‘M’、'U'、'I',有三种变换,M后面的字符都可以加倍,三个连续的‘I’可以变成一个‘U’,可以删掉连续的两个‘U’,给你一个字符串,问你能不能由“MI”经过变换得到。思路:所有合法串都是肯定是由‘M’开始的,后面的不可能有‘M’。所有合法串中的M+3I %6 都为2或者原创 2013-08-08 20:10:36 · 920 阅读 · 0 评论 -
2013 多校第九场 hdu 4690 EBCDIC(打表)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4690题目大意:两个表里的坐标转换,给你一个偶数个长度的序列,两个两个表示某个字符再第一个表里的坐标,然后让你转化成第二个表里的坐标,然后输出就好了。思路:打表。。。 = =先是我比赛时侯的代码,先开始有的用 for 做,i 直接从 ‘0’ 循环到 ‘A’ ,但是这两个的 ASCII 不是连着的原创 2013-08-20 19:56:33 · 826 阅读 · 0 评论 -
2013 多校第九场 hdu 4686 Arc of Dream(矩阵乘法或者直接推公式)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4686题目大意:就是让你算这个式子:告诉你A0、B0、AX、AY、BX、BYa0 = A0,ai = ai-1*AX+AYb0 = B0bi = bi-1*BX+BY。思路:构造矩阵 [sn ,f(n+1),an,bn,1],再构造一个右乘矩阵:[1,0,0,0,0][1原创 2013-08-20 18:56:38 · 811 阅读 · 0 评论 -
2013 多校第五场 hdu 4649 Professor Tian
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4649题目大意:给你n+1个数,有n个运算符,第i和i+1个数消失的概率为p[ i ],问你最后这个数的数学期望。思路:因为只有20位,而且&,|,^都不会进位,那么一位一位地看,每一位不是0就是1,这样求出每一位是1的概率,再乘以该位的十进制数,累加,就得到了总体的期望。用d[ i ][ j ][原创 2013-08-06 21:22:45 · 765 阅读 · 0 评论 -
2013 多校第五场 hdu 4647 Another Graph Game
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4647题目大意:给你一个无向图,n个点,m条边,点上和边上都有权值,Alice和Bob从Alice开始轮流取点,不能取取过的点,取了某个点,就得到该点的值,如果某条边都被同一个人取了,那他就得到这条边的权值,每个人得决策都是最优,希望与对手之间的分差越大越好,然后输出最后Alice - Bob。思路原创 2013-08-06 20:30:07 · 733 阅读 · 0 评论 -
2013 多校第五场 hdu 4651 Partition
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4671题目大意:将一个数n进行拆分成几个数相加,问有多少种方案?思路:参见五边形定理。。 http://en.wikipedia.org/wiki/Partition_(number_theory)n 的上限是10^5,普通二维的公式时间空间都不行。。后来问了一下,原来做出来的都是直接上原创 2013-08-06 19:02:35 · 1413 阅读 · 0 评论 -
2013 多校第五场 hdu 4648 Magic Pen 6
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4648题目大意:就是给你一个n个数的序列,让你求能被m整除的连续的一段数的最大长度。思路:用sum[ i ]表示前i项和,那么连续的一段[ i , j ]就可以表示为sum[ j ] - sum[ i - 1 ],也就是sum[ j ]%m - sum[ i - 1 ]%m ==0 最大,那么我们对原创 2013-08-06 19:48:49 · 924 阅读 · 0 评论 -
2013 多校第六场 hdu 4664 Triangulation(SG问题)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4664题目大意:N个平面,每个平面有ni个点,组成凸多边形,两个人玩游戏,划线,他们可以划任意一个平面的两个点,有以下要求:两个人划得线不能交叉,不要划已经划过的线,如果一个平面被划了一个空心的三角形,那么这个平面就不能继续划线了。Carol先来,两个人轮着画,谁没线划了就输了,问你最后谁赢。思路:原创 2013-08-10 17:01:52 · 721 阅读 · 0 评论 -
2013 多校第六场 hdu 4658 Integer Partition(五边形数定理,整数划分)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4658题目大意:给你两个个数n,k,要求你算出把n拆分,且每个数的个数都不超过k的种数。思路:五边形定理。。 具体可以看看我转的那篇文章,写得挺详细的。。再贴一个在别人博客看到的一个关键的东西:首先我们可以写出本题的母函数 Σf(n)xˆn=(1+x+x^2+..+x^(k-1)原创 2013-08-11 15:41:19 · 1215 阅读 · 0 评论 -
2013 多校第二场 hdu 4614 Vases and Flowers(线段树)
hdu 4614题目:http://acm.hdu.edu.cn/showproblem.php?pid=4614题目大意:n个花瓶,m个操作,k=1 时是从 a 开始插花,如果已经有花,那么跳过,能插多少插多少。k=2,把区间[ a , b ] 内的有的花都清理掉。思路:裸线段树。就是找区间的时候比较麻烦,其实写两个二分先判断出左右边界就好了。。 时间是 2s ,再乘个 logn 应原创 2013-07-26 11:04:24 · 1015 阅读 · 0 评论 -
2013 多校第一场 hdu 4609 3-idiots(FFT)
hdu 4609题目:http://acm.hdu.edu.cn/showproblem.php?pid=4609题目大意:给你 n 条边,问你任意三条边能组成三角形的概率。思路:设 Ai 记录长度为 i 的边的个数,让它对自己本身做FFT,求出任意两条边能得到的和的数量。然后枚举第三条边,两边之和大于第三条边,第三条边指的是三条边中最长的边,所以还要 - (比它大的两条边的组合+一大原创 2013-07-25 11:04:17 · 1011 阅读 · 0 评论 -
2013 多校第七场 hdu 4669 Mutiples on a circle(DP,环)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4669题目大意:给你n个数字,顺时针的,即n个数字成环,然后在给你一个k,问你在这个环中选取一段数字,拼起来时mod k ==0 的方案数。思路:很明显是DP,如果不考虑成环,那么也很容易想到状态量及状态转移方程,设d[ i ][ j ] 表示以第i个数字为结尾,余数为k的方案数,状态转移方程为 d原创 2013-08-17 13:38:50 · 626 阅读 · 0 评论 -
2013 多校第七场 hdu 4670 Cube number on a tree(树上点的分治)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4670题目大意:给你一棵有n个顶点的树,每个节点有一个权值,给你k个prime,每个权值都可以由这k个prime的幂次方的和组成,问你在树上有多少条路径,使这条路径上的点的权值积是一个立方数。思路:一个数是立方数,当且只当它的拆分成的所有质因子都是幂都是3的倍数,而质因子的4、7次幂和1次幂一样,5原创 2013-08-17 18:57:42 · 857 阅读 · 0 评论 -
2013 多校第七场 hdu 4666 Hyperspace(最远曼哈顿距离)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4666题目大意:n个操作,d个维度,0表示加点,1表示删点,每次操作都要输出当前存在点的最长曼哈顿距离。思路:贴一段别人博客上的一段话,比赛的时候就是看了这段话才A的,写的很好~~求最远曼哈顿距离,对于一个n维的空间,其中两点的曼哈顿距离为:|x1-y1|+|x2-y2|+|x3-y3|原创 2013-08-13 19:42:06 · 1706 阅读 · 0 评论 -
2013 多校第九场 hdu 4699 Editor(vector OR splay tree)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4699题目大意:一个文件编译器,有一个指针,五种操作:(1)在指针前面插入一个数(2)把指针前的数删除(3)指针往左移一位(4)指针往右移一位(5)询问前k个数的最大前缀和(其中 k 思路:以指针为分界线,分别建两个栈,前面为 a,后面为b,由于kI x a.push(x)D a.pop()原创 2013-08-24 15:54:16 · 1055 阅读 · 0 评论 -
2013 多校第七场 hdu 4667 Building Fence(计算几何、凸包)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4667题目大意:给你n个圆,m个三角形,两两不重叠,问你把他们全都围起来的最短的篱笆的长度。思路:我的做法是暴力,三角形不用处理,因为就三个点,圆的话,直接枚举角度,把它拆成点,然后上凸包,飘时限和精度。。。经过不懈的努力之后,终于用G++ 900ms+ 飘过了,补充一句,C++TLE。。 =原创 2013-08-13 19:19:33 · 1453 阅读 · 2 评论 -
2013 多校第九场 hdu 4704 Sum(2的幂次方取模)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4704题目大意:整数划分,问你一个整数能划分成几种组合。思路:答案就是 2^(n - 1),然后n很大,都高精了。然后就是找规律,去找循环节,一个 for 下去,发现 2^500000003 = 1 = 2^0,所以就是n = (n - 1) % 500000003, - 1之后再处理,n是高精,原创 2013-08-22 18:30:39 · 873 阅读 · 0 评论 -
2013 多校第九场 hdu 4696 Answers(纯YY )
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4696题目大意:给你一个图,每个点的出度都为1,每个点的权值为1或2,然后问你能不能找到一条路径的权值和为 M。思路:图中必定有环,那么 如果C中有1,那么就能构成任何数,如果不存在1,那么只能构成偶数。想不到这样就好了,太坑了。。代码如下:#include#include#incl原创 2013-08-24 16:35:37 · 736 阅读 · 0 评论 -
【转载】五边形数定理、分拆数
原文博客:http://blog.csdn.net/zhoufenqin/article/details/9821617分拆数在将分拆数之前先介绍一点五边形数http://en.wikipedia.org/wiki/Pentagonal_number 1. 五边形数是能排成五边形的多边形数。 第n个五边形数公式转载 2013-08-11 12:38:36 · 4973 阅读 · 0 评论 -
2013 多校第六场 hdu 4661 Message Passing(树形DP+拓展欧几里得)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4661题目大意:n个人的关系形成了一棵树,人为根节点,每个人都有一个独特的消息,每个人可以通过一步操作将一个消息传给和他连接的一个人,现在要求把所有的消息传遍所有人需要的最少步数的方案数。思路:好吧,表示先开始不会逆元,也不知道逆元是什么,只知道是个很神奇的东西。。 为了做这道题目,特意学了原创 2013-08-10 21:16:18 · 1013 阅读 · 0 评论 -
URAL 1903 Unidentified Ships
题目:http://acm.timus.ru/problem.aspx?space=1&num=1903题目大意:组合数,给你n个数,从中要选t个数,排成非递减序列,第k个数一定要选,且它在选出来的序列中处在第x个位置,问你有多少种选法?思路:思路应该是比较简单的,就是比他小的、大的,相等的统计出来,然后就是组合数了,枚举一下,小的里面取i个,大的取j个,那么相等的就是t-i-j了,然后三原创 2013-08-04 16:12:38 · 913 阅读 · 0 评论 -
2013 多校第一场 hdu 4610 Cards
hdu 4610题目:http://acm.hdu.edu.cn/showproblem.php?pid=4610题目大意:从n中牌里选正好k张,每张牌都有一个值,有四个条件:(1)它自己是素数(2)它的因子个数是素数(3)它的因子和市素数(4)它的因子的积是素数。他满足几个条件就是几分。如果所有选取的牌中都没有满足某个条件,那个会获得这个条件的额外加分,有可能是负数。思路:因为要判断原创 2013-07-28 20:08:44 · 735 阅读 · 0 评论 -
2013 多校第一场 hdu 4605 Magic Ball Game
hdu 4605题目:http://acm.hdu.edu.cn/showproblem.php?pid=4605题目大意:给你一棵二叉树,每个节点有一个w值,现在有一颗小球,值为x,从根节点往下掉,如果w==x,那么它就会停止;如果w>x,那么它往左、右儿子的概率都是1、2;如果w思路:比赛的时候,我们都是跟着榜走的,都卡在那道Deque上了,根本没有看这题。昨天晚上自己看了一下,其原创 2013-07-28 11:15:35 · 893 阅读 · 0 评论 -
2013 多校第一场 hdu 4602 Partition
hdu 4602题目:http://acm.hdu.edu.cn/showproblem.php?pid=4602题目大意:将一个数 n 拆分,问所有的拆分组合中 K 出现了几次。思路:我们可以特判出n代码如下:#include#include#includeusing namespace std;const int MOD = 1e9+7;typedef __原创 2013-07-23 21:02:18 · 822 阅读 · 0 评论 -
2013 多校第一场 hdu 4607 Park Visit
hdu 4607题目:http://acm.hdu.edu.cn/showproblem.php?pid=4607思路:今天下午这道题想了很久,其他队伍都出了好久了,我们还没想到,最先开始想到的是三维的树形DP,但是时间、空间都伤不起。最后还是问了下别人才知道的,原来只要求树上的最长链就好了,看来 YY 能力不行啊。。代码如下:#include#include#include原创 2013-07-23 19:27:49 · 966 阅读 · 0 评论 -
【转载】树链剖分
原文地址:http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。 树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。 记siz[v]表示以v为根的子树的节转载 2013-07-21 13:52:24 · 765 阅读 · 0 评论 -
spoj 2666 (树链的分治)
spoj 2668题目:http://www.spoj.com/problems/QTREE4/题目大意:给你一棵有N个点的树,每个点有颜色,每条树枝有权值。先开始所有的点都是白色的。A 表示询问两个端点都为白色的最大距离,C a 表示将a点的颜色取反。思路:漆子超论文中路径剖分与树的分治的联系的第一道例题,路径剖分的本质是基于链的分治算法,具体解题思路参看他的论文。这道题写了一天原创 2013-07-23 10:25:40 · 1447 阅读 · 0 评论 -
spoj 375 (树链剖分)
spoj 375题目:http://www.spoj.com/problems/QTREE/题目大意:给你一棵有N个结点的树,执行两种操作:(1)CHANGE a b,把某一条树枝上的权值改为b。(2)QUERY a b,询问a到b的路径上最大的权值是多少。思路:继上一道 Free tour 之后漆子超论文里的第三道例题,上两道是点,这次是用的是树链剖分,具体解题思想,可以看漆子超的论原创 2013-07-21 14:14:23 · 946 阅读 · 0 评论 -
spoj 1825 (树的分治)
spoj 1825题目:http://www.spoj.com/problems/FTOUR2/题目大意:给你一棵节点数为 N 的树,每条树枝有权值,点有黑白两色,问你找一条路径使其进过的黑色的节点数不超过 K 且权值和最大,然后输出这个权值。思路:继上题的 Tree 之后,漆子超论文的下一道题目,表示看论文、题解和别人代码做了很久。。 = =用G[ i ][ j ] 表示根节点原创 2013-07-20 23:42:09 · 1367 阅读 · 1 评论 -
poj 1741 (树的分治)
poi 1741题目:http://poj.org/problem?id=1741题意:给你一棵最多 10^4 个点组成的树,每根树枝的长度最多为 10^3 ,问你两个点之间的距离思路:楼教男人八题之一。。 显然,O(N^2) 找点对的方法是不行的,而 O(NK) (khttp://wenku.baidu.com/view/e087065f804d2b160b4ec0b5.htm原创 2013-07-20 14:30:14 · 834 阅读 · 0 评论 -
hdu 1561(树形DP)
hdu 1561题目:http://acm.hdu.edu.cn/showproblem.php?pid=1561先开始建图,发现可能成环,要先把所有的环都去掉,新建一个节点0,把a==0的点全都连到0上,然后就是root = 0 的一棵树。对每一个节点的所有儿子节点进行背包。后来看了网上的代码,发现都没考虑成环的情况,不知道是我想多了,本来就不需要考虑,还是很多人都没注意到。后来我也写了原创 2013-07-19 09:39:00 · 936 阅读 · 0 评论 -
poj 1155 (树形DP)
poj 1155题目:http://poj.org/problem?id=1155树形DP。d [ u ][ i ]表示以u为根节点,用户数为i 的最大收益。状态转移方程:d[ u ][ i ] = max( d[ u ][ j ] + d[ v ][ i - j ] - cost ,d[ u ][ i ]),i>j;注意边界条件。先开始直接将每个节点的 i 都循环成 1~m TLE了一原创 2013-07-19 11:07:09 · 800 阅读 · 0 评论 -
hdu 1011(树形DP)
hdu 1011题目:http://acm.hdu.edu.cn/showproblem.php?pid=1011题目大意:一棵树,有n个节点,根节点编号为1,即入口,每个节点有一些Bugs及Brains,现在有m个士兵,一个士兵能打20个Bugs,让你用这些士兵去攻打这个Cave,最多能获得多少Brains。思路:好吧,我承认我做了很久。状态方程还是比较简单的,d[ u ][ i ]原创 2013-07-19 14:48:04 · 893 阅读 · 0 评论 -
poj 1947 (树形DP)
poj 1947题目:http://poj.org/problem?id=1947题意:找到一棵节点数为P的子树,使切断的边最少。思路:树形DP,状态转移方程为: d[ u ][ i ] = min(d[ u ][ i ]+1 , min( d[ v ][ j ]+d[ u ][ i-j ])) , j<i 。d[ u ][ i ]表示以u为根节点的节点数为 i 的所需切断的最少边数。原创 2013-07-19 16:41:04 · 845 阅读 · 0 评论 -
2013 多校第三场 hdu 4628 Pieces
hdu 4628题目:http://acm.hdu.edu.cn/showproblem.php?pid=4628思路:状压一下,然后写个check函数判断是否回文就好。这道题目我真心无语。。 下午先开始我们想贪心,然后我直接敲,WA了,后来找到一个数据,推翻了贪心的想法,然后,马上开始了状态压缩DP,第一遍写了个记忆化,TLE,马上剪枝优化,一交,还是TLE,又把贪心的那个答案拿来剪原创 2013-07-30 19:42:15 · 1066 阅读 · 0 评论