Codeforces
文章平均质量分 80
ZephyrGuo
目前就职于阿里云数据库团队
展开
-
Codeforces Round #197 (Div. 2) (C~E)
C:贪心。每次选一个最小的满足条件的砝码即可,这样能留给后面更多的选择余地。但是光是这样还有一点小问题。当时就因为只是这样随手一贪,导致最后挂了。。。我们应该还要先枚举第一个砝码放谁,再开始贪心。例如:有砝码1,2,3,需要放4块。单纯贪心的话,会这样选择:1,2,3,*。(*代表无法选择,终止了)对于左边的天平有1+3=4 kg,右边有3 kg。此时选砝码1,2,原创 2013-08-27 12:09:19 · 803 阅读 · 0 评论 -
Codeforces Round #238 (Div. 1)
D:建树,然后倍增法求最近公共祖先。建树的方法:考虑当前这座山i能飞到最右边是哪座?一定是与这座山斜率最大的,那么父节点就是它了。fa[]表示父节点,先比较i+1与fa[i+1]关于i的斜率,如果前者小于后者。那么就要去比较fa[i+1],fa[fa[i+1]]。直到前者大于等于后者。这里的复杂度是O(n)。因为如果i+1的斜率是小于fa[i+1]的,那么i的父节点必然原创 2014-03-24 21:27:09 · 815 阅读 · 0 评论 -
Codeforces Round #234 (Div. 2)
C、DC:把所有0的边所连的两个点加入同一个集合,如果对于某类型所有点都在同一个集合就是correct。然后就是500^3的floydcode:#include #include #include #include #include #include #include #include #include #include #inclu原创 2014-03-07 22:54:48 · 850 阅读 · 0 评论 -
Codeforces Round #235 (Div. 2)
C、DC:范围在[n-1,(n+1)*2]之间是可以构造出来的,0必须用至少1个1隔开。code:#include #include #include #include #include #include #include #include #include #include #include #include #include #incl原创 2014-03-11 02:03:44 · 792 阅读 · 0 评论 -
Codeforces Round #227 (Div. 2)
C、D、EC:每段类似X00000000...的数(X表示非零数字)如果X左边整段数字连起来都没有这段数字大的话,那么左边整段+当前这段就必须作为一个数字,要不然左边整段不可能在当前这段前面,程序到这里就可以结束了。否则,左边整段可以继续分解。对于非零的一整段,可以第一个数连第二个数字一直连起来,答案是这段的长度。除非这段在最开头,切第一个数字小于第二个数字,那么前两个数字原创 2014-01-31 21:28:17 · 734 阅读 · 0 评论 -
Codeforces Round #224 (Div. 2)
B:if(b>=x) b=b-xif(bb=b-x+w其实就是b一直减x,如果小于0了,就加1次w。而且每加一次w必然使b-x+w大于0。那么就二分过了多少时间t,根据不等式 b-t*x+k*w>0 求出 k。所以a--了k次,也就是c++了k次。判一下c-t+kcode:#include #include #include #includ原创 2014-01-18 11:07:05 · 724 阅读 · 0 评论 -
Codeforces Round #215 (Div. 1)
这场CF打得蛋疼,更意外的是我发现天赋真的很重要。。。练了一年被一个半路来练,题量不足我十分之一的数学建模选手给虐了。。。虽然虐的不是题量,但是她rating比我高了。。。不多说了。。。继续练吧。。A:维护下x,y,z数量的前缀和,三者中最大数量-最小数量code:#include #include #include #include #in原创 2013-11-27 02:18:10 · 1065 阅读 · 0 评论 -
Codeforces Round #225 (Div. 1)
A:从最左边向右的牛,和最右边向左的牛中取影响最小的先挤奶。一直比下去。code:#include #include #include #include #include #include #include #include #include #include #include #include #include #include using nam原创 2014-01-21 21:31:54 · 843 阅读 · 0 评论 -
Codeforces Round #221 (Div. 1)
A:1689能组成0-6任何余数,然后可以随意构造xxxxx0000+1689的某种排列,使得余数为0,末尾在补零。code:#include #include #include #include #include #include #include #include #include #include #include #include #includ原创 2013-12-25 01:29:32 · 855 阅读 · 1 评论 -
Codeforces Round #220 (Div. 2)
这场单独的div2真的好难,trick太多。A题几乎写了的人都是错的,各种hack。。。B题出题人想错了,最后unrated了 。我B题错的和出题人一样。。。最后只过了C。。。A:把4个位移式子相互叠加一下可以推出类似(x,y-2b)的式子。(x - a, y - b)(x + a, y - b)就是一个坐标可以不变,另一个坐标偏移2次。前提是x要有原创 2013-12-19 14:18:45 · 963 阅读 · 4 评论 -
Codeforces Round #222 (Div. 1)
A:从一个空点开始搜,建立搜索树。然后从深度最深的节点开始删除,这样就能保证深度低的节点依然连通。code:#include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2014-01-01 17:01:25 · 1163 阅读 · 0 评论 -
Codeforces Round #219 (Div. 1)
这场一开始A题用set乱贪一发就交了,然后WA第六组。。。。然后二分乱搞过的。B题真的是想晕了,4秒的时限就是骗人的嘛。。。最后用1600*1600复杂度过的。。。思维不行,还需要好好练习。。。A:题意: 把一个袋鼠装进另一个袋鼠。每个袋鼠只能装一个袋鼠且必须体积小于等于自己的一半。不能装 装了袋鼠的袋鼠。求最少剩 多少只袋鼠。思路:二分有多少原创 2013-12-14 01:16:27 · 912 阅读 · 0 评论 -
Codeforces Round #218 (Div. 2)
这场开局不顺。。A题都不会做。。。B题一直不知道他只能用2,3,5。。。然后就拙计。好在最后4题都是1A没有fst勉强前50。。E题最后十分钟写了乱交也没A,事实上有很多bug赛后才A的。C:题意:有三种材料做汉堡。他手头上已经有一些材料,同时他有一定的现金可以去买材料。求最多能做几个汉堡。思路:二分答案code:#include #include原创 2013-12-08 22:11:37 · 753 阅读 · 0 评论 -
Codeforces Round #217 (Div. 2)
这场拙计在A题上浪费了点时间,居然去写bfs。。。还好没有fst。。。这场D题写得太翔了,赛后150行才过。。。C: 题意:小朋友们每人都有一对颜色一样的手套,分左右手。现在他们要互换手套使得左右手颜色不一样。求最多能满足多少小朋友。思路: 没多想,直接暴力。。。统计每种颜色左右手有多少个。然后对于某种颜色的左(右)手,给它寻找一只不同颜色的右原创 2013-12-07 20:20:08 · 967 阅读 · 4 评论 -
Codeforces Round #214 (Div. 2)
这场题意都好坑,尤其是A。C:题意:选若干水果,至少一个。使得sum{b[i]*k}-sum{a[i]}==0时,求最大的sum{a[i]}。思路:选某个水果对平衡的影响是:b[i]*k-a[i]。dp[balance]表示平衡为balance时,最大的sum{a[i]}。答案在dp[0],平衡有可能负数,整体坐标要右移。code:#include #原创 2013-11-26 22:25:12 · 658 阅读 · 0 评论 -
Codeforces Round #213 (Div. 1)
A:题意:问有多少个子矩阵的和等于a思路:观察一下,矩阵其实很特殊。可以提取出每行的系数。a1*(a1,a2,..,an)a2*(a1,a2,..,an). ..an*(a1,a2,..,an)用sum[i]表示数列a的前i项和。那么任意一个子矩阵和可以表示为(sum[col1]-sum[col0])*(sum[row1]-sum[row0]) (原创 2013-11-20 21:21:10 · 975 阅读 · 0 评论 -
Codeforces Round #206 (Div. 1)
这场题目难度顺序估计出题人放错了,事实上我发的是A B C的解题报告。。。A:枚举最后拿走物品的位置。然后这个位置左边的只会是左手拿,右边的只会是右边拿。左右左右交替拿走即可,最后的物品可以左手拿也可以右手,取一下最小。再注意一下某一边没有物品之类的细节就可以写好代码了。code:#include #include #include #include #原创 2013-10-14 20:25:23 · 859 阅读 · 0 评论 -
Codeforces Round #207 (Div. 1)
A:我是用最拙计的方法套线段树过的。倒过来更新,每次用x覆盖掉区间[l,x-1] [x+1,r],初始全0。code:#include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-10-16 18:24:23 · 1202 阅读 · 0 评论 -
Codeforces Round #226 (Div. 2)
C:显然先分解质因数,如果某个数有质因数p,那么cnt[p]++。全部分解好后,其实cnt[p]就是题目的f(p)了。然后再搞成前缀和O(1)回答询问。当然这题不能直接用O(Nsqrt(N))的方法分解有可能TLE,可以在筛素数的时候处理出cnt[p],复杂度O(Nsqrt(N)),具体方法见代码。code:#include #include #incl原创 2014-01-25 13:32:36 · 909 阅读 · 2 评论