
ACM暑假训练 多校
文章平均质量分 80
SeeYouAlways
practice make perfect
展开
-
多校第四场 Hdu 4635 强连通分量
题意:对于一个有向图,最多能加几条边依然使得图不变为强联通,如果原来就是强联通,输出-1,否则,输出最多能增加的边数思路:最优解就是一个完全图删边的过程,删到有且只有一个点入度为0或者初度为0,所能增加的边s=n*(n-1)-(n-1) ,若图里存在强联通分量,那么就必须先缩点,把一个强联通分量看成一个点,重新构图,找到一点符合只有入度为0或者初度为0的“点”,这些点内练成完全图1,把剩下的不原创 2013-08-02 15:31:38 · 700 阅读 · 2 评论 -
多校十 Hdu 4699
终于AC了。。今天赛场上一直看这题,一直坚信用树状数组做,然后写了一发,一直TLE,没办法,确实没法优化。。只好放弃赛后看解题报告,栈A, B维护光标之前(之后)的序列I x A.push(x)D A.pop()L B.push(A.pop())R A.push(B.pop())▶ 对于栈A 中的每个元素,额外维护前缀和,以及前缀和的最大值然后很信任的开了两原创 2013-08-22 20:48:30 · 758 阅读 · 0 评论 -
多校十Hdu 4704 Sum
刚开始对于这题我一直弄不明白题意,我以为那个s(k)是(x1,x2,x3,....,xk)是中的一个,原来不是,题目说s(k)就是(x1,x2,x3,...xk)满足题目中的两个条件的个数,最重要的一个条件是x1+x2+x3+...+xk=N ,有了这个,就相当于把N个点分成K个部分,即把k-1个个板插到N-1个空位中有S(k) =C(n-1,k-1) 所以S(1)+s(2)+....+s(n)就原创 2013-08-22 21:49:53 · 690 阅读 · 0 评论 -
多校第四场 Hdu 4638 树状数组
题意:一段区间里怎样分组才能是的value最大,组内人员编号必须是连续的,刚一看这个题目我就确定是用树状数组做,但是怎么想也想不到树状数组怎么分组。。无语了。我用笔推了一下,要是各组value值最大,必须尽量每一组的人数足够大,组数尽量小,如4个人,value=4*4,这时值最大,两组时3、1,value=3^2+1^1也比2^2+2^2大............因此,可以得出结论,使组内的人尽量原创 2013-08-01 22:42:52 · 500 阅读 · 0 评论 -
多校九 hdu 4690 EBCDIC
直接打表。。把相应字符转换成ASC||这题今晚做的可纠结了。。光初始化就很伤眼睛,A之后眼睛应该定格了吧,代码:#include#include#include#include#include#include#include#include#includeusing namespace std;string tb[20][20];char a[5555555];原创 2013-08-20 20:45:32 · 497 阅读 · 0 评论 -
多校一总结
前面因为没有在场上A题,赛后A后也渐渐地没写,今天来写一发,重温一下可爱的多校Hdu 4602 Partition 1003题意:对整数n进行无序拆分,求数k在拆分中出现了多少次正解:把整数n一个无序拆分可以看成把n个点(每个点代表1)排成一列,在点与点之间插若干个空,数k就相当于k个连续的点。分两种情况考虑:1) n=k+......或者n=......+k,那原创 2013-08-21 19:21:05 · 551 阅读 · 0 评论 -
多校第三场总结
第三场Hdu4627第三场Hdu4630第三场Hdu4631感觉最近真的被虐惨了,从第一场到现在自己也没当场做出一道题,真的。。。还需要多加努力。。。原创 2013-07-31 21:16:35 · 648 阅读 · 0 评论 -
多校第八场 Hdu 4681 String
看了解题报告才明白,但是解题报告用的是LCS算法,这个算法我不熟悉,所以先暴力一下左子序列和右子序列。。题意:给出三个序列A,B,C,求一个最长序列D使得:D是A、B的子序列,C是D的子串,输出D的长度思路:用数组pA[num1][0],pA[num1][1]分别记录C序列在A序列的起始位置和最近的终点位置 用数组pB[num1][0],pB[num1][1]分别记原创 2013-08-15 21:42:08 · 494 阅读 · 0 评论 -
多校总结 2013年
多校就到目前为止就差一场了,在这么多场的比赛中,自己接触到了以前自己很少接触到的一些算法,不过学的过程是有点吃力,每次一拿到多校的题,我首先去看1006,因为之前分配题目就是这么分的,但每次都没能做出来,死活僵那里硬要攻它,最后不行就放下去做别的题。这几场下来,也没什么很大的突破,有点伤感。。不过我还能努力,继续加油。。前几场我发现每一场都有线段树或者树状数组,后面几场都跟什么序列,要数学思想较多原创 2013-08-21 19:38:11 · 562 阅读 · 0 评论 -
多校二总结
赛后就A了两题,第一题也做了,不过不太明白,暂时留着第一题 Hdu 4612 题意:给出n个点和m条边的图,存在重边,问加一条边以后,剩下的桥的数量最少为多少没想到这样的解法:先用tarjan缩点变成一棵树,然后求树的直径,显然,用一条边将直径的两个端点连起来可以让剩余的桥数量最少。要注意会有重边,在tarjan里面要判一下。。由于会有重边所以要缩点求直径代码:#pr原创 2013-08-21 18:34:15 · 526 阅读 · 0 评论 -
多校十 Hdu 4696 Answers
由于c[i]只能取1或者2,所以就像1、2元人民币可以凑成任意你想要的面值一样。由于一定会有环,只要有C[i] == 1 就可以造成任何数。没1时得到那个数肯定是偶数 好坑人。。。。代码:#include //Hdu 4696 Answers#include #include #include #include #include #include #include #in原创 2013-08-22 22:33:25 · 981 阅读 · 0 评论