
Contests
文章平均质量分 60
haha593572013
这个作者很懒,什么都没留下…
展开
-
MemSQL start[c]up Round 1
妥妥的滚组了。。。A题:很久没做CF导致想了一个比较烦的方法,还sb的WA一次。。B题:可以发现答案是2^p * q的形式,q是奇数,然后就是暴力枚举p,求q,求q的时候需要二分一下,一开始WA了两次,最后还是fst了,原因是二分的上界取的不对,右边是2*n,那右边最大就是2*10^18,所以二分的上界取到10^9的时候就太小了。。。太伤了。。。。C:坑D:坑E:坑原创 2013-07-14 11:44:08 · 1366 阅读 · 0 评论 -
SRM 584
250pt: 给一幅图的每个点都赋值,使得相邻两个点的权值之差不超过d,最后问最大权与最小权之差是多少。 显然,任意两个点的差距不会超过他们的最短距离 * d。500pt: 一个诡异的DP,需要枚举D,然后如果要凸显这个D是上界,必须要取到D+1为止。枚举D后每次用dp统计就好了 #include #include #include #原创 2013-07-14 11:36:49 · 1008 阅读 · 0 评论 -
The 2006 Benelux Algorithm Programming Contest 解题报告
这段时间水水poj。。一场场做或者一个专题一个专题做题目链接poj 3053 : 贪心吧,两种情况,每次都用最接近的分数来对抗当前分数poj 3055: 水题,模拟过去就好了poj 3056: DP,如果i,j能连上了,那么i+1,j-1就是一个递归的子结构,好像是n^3的算法,。。。。反正暴力出奇迹。。。poj 3057::挺好的题,,,一开始建图建错了,搞了半天,要把某个时原创 2013-06-06 19:38:36 · 1444 阅读 · 0 评论 -
Codeforces Round #187 DIV 1
题目链接B题:事实证明是sb题,而且证明自己比题目还傻。。C题:设dp[i]表示当前以数字i结尾的所有合法子序列乘积的总和(非递减),那么新插进来一个数K的时候,我们要更新dp[K],dp[K] =( dp[0] + dp[1] + dp[2] +... + dp[K] ) * K - dp[K]; 所以要用到个东东动态统计前缀和比如1 2 3 3插入最后一个3的原创 2013-06-11 10:23:33 · 1193 阅读 · 0 评论 -
Codeforces Round #186 (Div. 2)
题目链接E题:大概能想到贪心,但细想不下去,最后问了别人,好像也没有什么严谨的证明。。。首先,尽可能凑出大的数字,m-1,m-2,,,,,,,话说是因为如果上下两个数字互为最优的匹配,那么必选这个匹配,因为如果不选这个会使得总答案变小然后每次就根据这个原则去选取就好了。。。看下那些AC的代码就知道了,这题主要是考想法,,,怎么证明。然后根据上面那个结论,可以用一个奇葩的用平衡树来做原创 2013-06-01 10:43:11 · 1411 阅读 · 0 评论 -
2013 通化邀请赛小记
经过了四天三夜,终于回杭州了!千里迢迢跨越半个中国来到吉林,为的竟然是能在现场被虐一虐。。呵呵。。头一次看见邀请赛有奖金,更是头一次有邀请赛把奖金设在了热省赛,,汗,,,话说热身赛的题目有够坑的,,,不能多说,,,要不以后热身赛不做题了。。。免得影响心情正赛:::我先看的A,发现是个水题,不过总结了以前的教训,并不急于交,,看见WA的人比较多,果断仔细再仔细。。然后22min原创 2013-05-28 03:01:25 · 1981 阅读 · 0 评论 -
第十届浙江省程序设计竞赛 && 南京全国邀请赛总结
省赛先说省赛,这次省赛作为耀哥的谢幕战,总算也拿了块金牌作为送别耀哥的礼物,不过由于要赶去参加邀请赛没能参加颁奖典礼实在是可惜啊,因为每年的颁奖总是最欢乐的一部分,下面进入正题。热身赛:rank 1,感觉会损RP的。。。正赛: 开场我看了A B ,题目都挺长,看完后看了看board,发现有人AC,于是开始跟着board做题,先敲了一发J,提交,CE,少打了个头文件,我了个去。。。我原创 2013-05-14 00:09:51 · 2173 阅读 · 10 评论 -
Croc Champ 2013 - Finals (online version, Div. 1)
题目链接比赛时就搞了个C,赛后补了A BA : 给你一个环形的跑道,长度为了,有n个人站在跑道上,当跑步开始时,每个人会以相同的速度顺时针或者逆时针(等概率)行进,当两个人相撞后,他们会继续原来的方向前进。现在问你,t 时间后,相撞次数的期望是多少。如果两个人往同一个方向前进的话,肯定就无法碰到了,只要是相反方向就肯定会碰到(只要时间足够),可以看出,两个人碰到后,就开始一圈圈重复了,原创 2013-05-19 17:38:14 · 1205 阅读 · 0 评论 -
Codeforces Round #181 (Div. 2)
题目链接A ,B虽然是水题,但要是没想清楚就容易掉进某个坑里。。C:预处理出所有可能的和,然后每个每个和分给a b两个数D:比赛的时候题目没看懂,题意就是说在一个n*n的正方形网格中分割k次有几种分法,每次分完后剩下的四个子矩形必须为正方形。考虑到最后可以分割log级别的次数,而且每分割一次,又出现了四个空白的子正方形,自然就可以想到dp,很明显的子结构啊。我们不妨从小到大构造,每多一原创 2013-04-30 14:56:53 · 1144 阅读 · 1 评论 -
2013, VI Samara Regional Intercollegiate Programming Contest
题目链接呵呵五一不做比赛,就总结比赛了。做完了。。。其实就C题和I题比较有价值。。。。那就讲讲这两个题吧C: 给你N个数,N个区间,要求判断是否存在一个唯一的匹配。思路: 先随便求出一个匹配 , 然后判断这个匹配是否唯一。。。求出一个匹配的话,可以先把区间按右端点排序,维护一个set,表示当前还没有匹配的点,每次在点集中找最小的但是大于等于当前区间左端点原创 2013-04-30 16:46:18 · 2195 阅读 · 0 评论 -
Codeforces Round #180 (Div. 1)(完全)
题目链接ps:这场的题解非常nice啊,还提供了各种插图,在理解的过程中感受了出题人思维的强大啊官方题解非常非常非常非常非常难的比赛,反正还是由于我太弱了。。。 A:略B:略C : 构造题,看到下面这张图片就懂了。。。。深蓝色的部分是unique的,大红色的部分也是unique的,各占据了三分之二。。。。。D:构造题如果k=1,那么就是无原创 2013-04-22 02:34:53 · 1448 阅读 · 0 评论 -
Croc Champ 2013 - Round 2 题解
题目链接:擒贼先擒王,每次赛后总结CF的题,我都喜欢先搞E题,而且E题一般是我最爱的数据结构题,搞起来特爽E题:给你一棵树,求满足距离之和类似的题目:http://poj.org/problem?id=1741 方法是点的分治,具体参考漆子超的论文,分治算法在树的路径中的应用,论文里面已经讲了很详细了会了poj 1741的话,其实这道题就是多了一个限制,还是排序,扫描,不过在求原创 2013-04-24 03:08:09 · 1706 阅读 · 0 评论 -
Codeforces Round #179 (Div. 1)(完全)
raiting 又掉了,明天早上爬起来继续搞,heheA题:好像用数组打标记的方法更简单,反正我直接套了两个树状数组。。。。http://codeforces.com/contest/295/submission/3507289B题:本场比赛的败笔,在更新最短路的时候姿势不够正确,然后交了几遍才过。。做法就是倒着搞,如果更新了某点对的最短路,就要减去相应的差值。http:/原创 2013-04-12 17:16:42 · 1789 阅读 · 1 评论 -
Codeforces Round #169 (Div. 2)(完全)
B题题目看错导致晕了老半天D题:从左往右 找到 l 和 r的二进制表示中的第一对 0 1, http://codeforces.com/contest/276/submission/3190755 。。。011111。。。100000。。。111111省略号表示的数位都相同,容易看出不会有其他答案比这个值更大,如果有,则前面还有上面1 与 下面 0配对,那么l肯定大于r了。原创 2013-02-25 11:59:14 · 899 阅读 · 0 评论 -
Codeforces Round #171 (Div. 2)(完全)
D:状态DP,DP[S]表示到达S状态需要的最少的箱子数,有一个关键的条件是,A序列中的数是一个一个一次产生的,所以怎么转移就知道了int dfs(int flag) { if(dp[flag]!=-1) return dp[flag]; if(flag == 1) return dp[flag] = 1; int ans = inf; int bits =原创 2013-03-08 21:27:43 · 1250 阅读 · 0 评论 -
Codeforces Round #174 (Div. 1)(完全)
比赛地址A:直接贴了个模板,我有罪。。。。B:dp[i][2],表示从i出发的结果(要么走到挂,要么循环),记忆化搜索就好了,每次要注意判环C:问你有多少种组合满足Q个条件,每个条件的形式是硬币a出现的次数 大于 硬币b出现的次数 ,先类似于传递闭包搞一下,判掉自己大于自己的情况,然后再用背包来做,每次放进来一个硬币就相当于把出现次数比这个硬币多的硬币都放进来了,由此知道了物品的体积原创 2013-03-18 03:20:36 · 1430 阅读 · 0 评论 -
SRM 585
250 :递推,从左下角到右下角走一条,剩下的都是子结构const int mod = 1000000007;long long dp[1000010] , s[1000010];class TrafficCongestion{ public : int theMinCars(int n) { long long ans = 0; d原创 2013-07-20 13:01:26 · 1273 阅读 · 0 评论 -
2012-2013 ACM-ICPC, NEERC, Southern Subregional Contest 解题报告
题目链接就推荐几个有营养的题好了H - Sultan's Pearls由于最终状态悬挂在桌面以下的长度始终是不变的,因此可以枚举最终哪个端点悬挂在最下面,然后二分找到能去掉的最多的开头的部分K - Tree Queries Online(SGU 550)给你一棵树,每条边都有一个标号,然后给你一个删边的顺序,每删除一条边,就要输出这条边的边权,然后数一下当前块两边各有多少个点,原创 2013-07-21 10:28:41 · 2657 阅读 · 0 评论 -
Codeforces Round #219 (Div. 1)(完全)
戳我看题目A:给你n个数,要求尽可能多的找出匹配,如果两个数匹配,则ai*2 排序,从中间切断,分成相等的两半后,对于较大的那一半,从大到小遍历,对于每个数在左边那组找到最大的满足条件的数配对用一个变量移动一下就好了。这样的配对数量肯定就是最多的。因为1:如果左边那一半数量取少一点,比如取a1 a2 a3...ak (k 那实际上ak+1 ak+2 .. a n/2 这些数原创 2013-12-18 20:05:01 · 1444 阅读 · 0 评论 -
Codeforces Round #209 (Div. 2)
A:一次搞定不可能,如果有边界上的点可以两次搞定,没有的话每一次就只能搞定一个角落了,所以答案不是2就是3B: for(int i = 1; i n; i++) { if(k) printf("%d %d ",i*2,i*2-1),--k; else printf("%d %d ",i*2-1,i*2); }n+k - (n-原创 2013-11-03 03:00:51 · 1785 阅读 · 0 评论 -
2013 ACM/ICPC Asia Regional Hangzhou Online(解题报告) 正在更新
hdu 4745 Two Rabbits 求一个环形序列的最长双回文子序列,可以先在后面补一段来破环,但仔细观察可以发现这个题并不需要破环,比如 cdedcba fff ab ,可以将ba fff ab组合,然后前面剩下的还是回文的。hdu 4747 Mex 此题太神,找了份代码研究了一下,边看又边思考,发现了单调性,然后果断涨姿势。 首先可以发现mex原创 2013-09-16 03:44:24 · 2590 阅读 · 0 评论 -
Codeforces Round #199 (Div. 2)
C: 可以避免用浮点D:推荐逐格递推法,想学的话去http://blog.youkuaiyun.com/crazy_ac/article/details/9819191E:Qtree 5的弱化版,顺便问一句。。。CF真是没题出了么??这个题由于是弱化版,没有向qtree 5那样对某个点的颜色取反,所以有一种简易的lct写法,我是跟小水大神学的。。学会了lct,我的splay写法也可以改观很多了原创 2013-09-10 18:28:00 · 1668 阅读 · 0 评论 -
Codeforces Round #198 (Div. 1)
E:给你n个数,每次可以拿出两个数,a b假设a然后问你这n个数能否变成只有两个数>0的序列。组合数学里面一开始就讲了一段话,先从小的case着手,然后归纳出问题的一般特性.这个题的话我们先考虑三个数的情况,如果三个数能够成功的将一个数变成0,那么n个数自然就可以了。事实上我们肯定可以将三个>0的数a b c转换成A B C,满足a既然一次转换能够将最小值变小,那么经过若干原创 2013-09-05 22:20:43 · 1266 阅读 · 0 评论 -
ABBYY Cup 3.0 - Finals(总结)
题目链接D题真的有点难写,,,不过写完后发现,也还行(我冒着可能万劫不复的心态研究了下tourist的代码),尽管如此,写的时候还是感觉各种不顺,还好1A了,不过肯定得重写,。这种题非常锻炼代码能力。这场比赛如果参加的话能暴涨啊。虚拟比赛的时候很快就做完了A B C ,然后D题不会做,暴力懒得写,写了的话估计还能涨点。A题:题意:给你一个序列,让你挑出一个子序列,子序列的两端必原创 2013-08-22 21:58:07 · 1918 阅读 · 2 评论 -
SRM 449 div1 (practice)
250pt: 暴力枚举所有的可能的情况就好了,求面积的时候我是用梯形的面积减去两个三角形的面积。。550pt:题意:给你一个蜂窝形状的特殊图形,有一些格子已经被占据了,问你将剩下的格子用1*2的砖块尽可能的铺满的总方案数,见下图。此题想了半天,隐约感觉可以dp,但是无从D起,,,膜拜了下rng_58的超短代码(大部分人选择dfs转移),但是rng_58将图转换成网原创 2013-08-08 08:40:36 · 1238 阅读 · 0 评论 -
SRM 450 div1(practice)
250pt: 对普通nim游戏的改编,取石子的时候只能从前往后取,每次取非空的石子,不能取者为输。 我是从后往前推的,注意当前数字如果>1,不管后面是必胜态还是必败态,肯定能调节成必胜态,如果=1,就身不由己了。。500pt 一开始,你有n个工厂,k个专家,每工作一轮,能获得n*k的gold,购买一个工厂或者一个专家需要price的gold,你想要获得的gold原创 2013-08-06 12:02:12 · 1128 阅读 · 0 评论 -
SRM 451 div1 (practice)
250pt: 1234+ 12340+ 123400+ 1234000+ 12340000+ 123400000+ 1234000000------------ 1371110974一个数的magic source是最小的一个正整数x,满足sigma(x*10^i) [i=0~n] =原创 2013-08-05 16:51:53 · 1105 阅读 · 0 评论 -
2013 Multi-University Training Contest 1 (hdu 4601 hdu 4603)
hdu 4600 Harvest Moon 戳这里hdu 4601 Letter Tree题意:给一棵树,每条边是一个字符,有M个询问,询问某个点往下一定步数经过的字符组成的字符串中字典序最大的哈希值。比赛的时候就大概想到了做法,不过我这么弱,这种细节题还是需要有人帮我验证 = =大致做法就是先确定每个节点的相对字典序(因为有可能一个点有好几条出边都是同一个字符,所以不原创 2013-07-27 00:35:14 · 1802 阅读 · 2 评论 -
Codeforces Round #177 (Div. 1)(完全)
这场略水,不然我是来不及打开第四题的,不过最后也没做出来。。。。。小小的涨了108分D:求一棵树中有多少对不相交的路径,正着搞比较难,反着搞就简单多了,c(n,2)*c(n,2)减去非法的对于每个子树,分为在子树内部相交 和 外部的点延伸到子树内部两类,都剪掉就好了#include#include#includeusing namespace std;i原创 2013-04-03 16:14:19 · 1478 阅读 · 0 评论 -
Codeforces Round #178 (Div. 2)(完全)
比赛地址:http://codeforces.com/contest/294C题:蛮有意思的,给你m个位置,现在要从这m个位置往位置的两边扩展,问你把所有的数都扩展到总共有多少种方法。在两个位置中间的那些数的可能的排列数应该是2^(k-1),因为每次都有两种选择,要么左端点,要么右端点。然后从所有的间隔中各取出一种排列,a1 a2 a3 b1 b2 b3 c1 c2 c3,现在就是原创 2013-04-08 03:19:40 · 1887 阅读 · 3 评论 -
codeforces 150 div1
一直想先AK了再写题解,然后发现这样会一拖再拖,所以即使没做完也先把做了的先贴出来,做出一个再补一个,尽力吧!A题:问一个最长为100000的序列有多少个不同的 区间“或”值,以当前数结尾的区间的或值最多只有20个,因为任何以当前数结尾的区间都要或上当前这个数,利用或的特性可知最坏情况是当前数为0,才可能有20个数。所以有点dp的思想,由上一个数结尾的所有的区间或值(最多20个) 推到当前数原创 2012-11-24 20:25:48 · 1227 阅读 · 0 评论 -
ZOJ Monthly, November 2012 慎入
zoj 3675 :http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4918bfs即可,指甲的每个状态都是一个节点,状态数最多为2^20每次搜的方向可以枚举指甲钳放的位置#include#include#include#include#include#includeusing namespace std;原创 2012-11-27 16:08:18 · 1097 阅读 · 0 评论 -
codeforces 148 div1
A : 假设已经有了i个数了,而且没有一段连续的区间异或值为0,那么我们考虑加入第i+1个数有几种方法,显然,第 i+1个数不能等于以i结尾的所有连续区间的异或值,这样的话第i+1 个数就有2^m-(i+1)中取值,注意,0不能选,所以依次相乘即可B: 将一个数列划分成两个数列,要求一个最大的f(i,j) - 最小的f(i,j)的最小值,f(i,j)是这样定义的:如果i j两个数在同一个数原创 2012-11-05 03:16:27 · 1450 阅读 · 4 评论 -
hdu 4441 splay tree 2012天津 K题
·http://acm.hdu.edu.cn/showproblem.php?pid=4441代码写了两个小时,可是AC却在两天后最近犯的错误都是肉眼无法辨别啊,下次写这种数据结构题一定仔细再仔细网上应该已经有人写过题解了,我的做法大体相同,稍有不同1:找不在集合中的最小的正数只需维护一个set即可。set保存的是所有不在集合中的数。删除一对+i -i 的时候就在set插入一个+i原创 2012-11-02 14:45:14 · 3349 阅读 · 0 评论 -
Regionals 2011 Europe - Southwestern
今天练了一场国外的区预赛的题目,除了个别题目卡了一会儿,整体做下来还是蛮顺的,最终8题http://acm.hust.edu.cn:8080/judge/contest/view.action?cid=14846#rankhttp://acm.hust.edu.cn:8080/judge/contest/view.action?cid=14846#overview简单说一下几个题吧原创 2012-10-13 23:24:11 · 1093 阅读 · 0 评论 -
2012 金华网络赛小记
1001:没看1002:没看1003:没看1006:最水的概率DP,也是我们队最早A的题,1A1004: 队友敲了半天才发现方法错了,改了后1A1008:注意到修改和询问的次数比较少,所以可以先利用容斥原理求出给定区间内与p互质的数的和,然后再考虑那些已经被改变的位置1010:知道怎么求LCA的话,基本上属于模拟题,不过有一些trick,根节点的兄弟有一个,最近公共祖先不能原创 2012-09-22 22:56:49 · 2076 阅读 · 0 评论 -
SRM 557 小记
250pt: 水题500pt:状态压缩枚举,系统测试挂了,囧。。。1000pt:可以这样抽象题意,构造长度为len的且包含模式串的总权值为0的串,求这样的串的个数,字符串由‘U’和‘D’组成,‘U’:+1 ‘D’:-1.DP,套了个AC自动机,大材小用了- -状态很简单的,转移的时候要注意转移到的状态是否已经包含模式串#include#include#include原创 2012-10-11 11:16:15 · 1237 阅读 · 0 评论 -
2012 成都网络赛小记
一直想以优质的文章回馈互联网,无奈本菜太弱,只得修炼一段时日再一类类的总结好了,废话不多说,今天的网络赛状态还好,只是有点小遗憾,DP太弱了1001:一看就是裸的线段树,然后回想一下省赛的题,区间记录5个域,然后再记录下区间总共有几个数,信息上传的时候注意下取模即可1002:转换一下模型其实就是拆点后求S 到 T 的最小切割,因为S出发到T一定会经过这些割边,要求最小的就是最小割啦原创 2012-09-16 19:17:36 · 4759 阅读 · 2 评论 -
codeforces 137 div2
A题:20分钟才提交的,不懂题目什么情况,直接模拟n次好了,- -B题:记录行号和列号,交换两行的时候直接交换行号就好了C题:有一个很好的方法是用p[i]记录小于等于i的且能被i整除的最大的素数,然后约分的时候处理起来特别的方便D题:排个序,记录两个指针移动一下即可E题:矩阵乘法经典题,求一个点走到另一个点走k步有多少种走法,按照限制条件构造出初始矩阵,快速幂算一下即可原创 2012-09-11 12:49:43 · 1016 阅读 · 0 评论 -
2012 天津网络赛小记
随便写一下,证明我还存在。。。。比赛开始,我们刷水题倒还是挺快的,找到两题签到题刷完,勉强挤进第一页然后有一段时间的寂静期。。。。。然后就是1005,直接暴力枚举x y z,先枚举z,然后发现大数据跑不出来,进而发现z=2的时候计算量太大,于是乎2的时候提前计算,顺利AC~然后又是一个数学题 1002 ,队友找出了规律后,交了两遍WA拼命造数据测数据。。。。最后发现很大的原创 2012-09-09 22:04:16 · 4501 阅读 · 0 评论