
Codeforces_div
9974
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #237 (Div. 2)(D)
这场比赛比得非常搓,cf已经连跌7场了,从紫变绿,算是很少见的了吧,在这几场跌分的比赛中我一直在反思为什么老是这样,今天把头发剪短了些,让自己换一种状态做题,提醒自己必须要注意的一点,做一道题,先想清楚了再写。赛后苦逼地补了D题,最近做DP感觉自己智商实在不行,花了比较长的时间,智商实在是不行。小小总结一下这个比较常见的题型D方法一:(我的做法)dp[i][j]j = 0 表示i行原创 2014-03-20 21:36:18 · 1080 阅读 · 0 评论 -
Codeforces Round #214 (Div. 2)(完全)
code:https://github.com/9974/Codeforces/tree/master/214div2A 坑题意B 同坑题意C 水背包, 把a[i]-b[i]*k当做一个物品, 物品重量有负数, 我们假定初始状态为dp[d] = 0(d = 100000), 那么重量为负数也可以转移, 最后在dp[d]里面找值D 显然可以得出 答案肯定是某条边的一个左端点, 我们枚原创 2013-11-25 21:01:13 · 1627 阅读 · 5 评论 -
Codeforces Round #148 (Div. 1)(A,B,C)
这次比赛莫名其妙地YY两题A,B,速度一般,赛后好好整理了一番。A 我们如何保证所有段抑或和不等于零呢, 假设前缀i和j的抑或和为Si和Sj, 那么对于任意的(i所以 答案就是 (2^m-1-1) (2^m-1-2)..... (2^m-1-n)B最大值和最小值是相对比较独立的,所以我们让最大值尽可能的小,最小值尽可能的大,a[n]和a[n-1]放在一起就能保证最大值原创 2013-11-24 10:27:16 · 1293 阅读 · 0 评论 -
Codeforces Round #212 (Div. 2)(完全)
code:https://github.com/9974/Codeforces/tree/master/212div2A注意#可以走到,但不能相遇,bfs或dfs都可以B大水题C枚举+预处理D求出所有联通块和联通块中所有路长度的和,因为告诉了最后的联通块数,所以可以知道要连接确定数目的联通块,其他的路都是只能建立在同一个联通块里,所以只需要考虑怎么连接x块联原创 2013-11-17 15:31:42 · 1321 阅读 · 0 评论 -
Codeforces Round #211 (Div. 2)(A,B,C,D)
记录一下A,B,C很裸, D 二分答案原创 2013-11-17 14:47:39 · 1039 阅读 · 0 评论 -
Codeforces Round #210 (Div. 1) (A, B, C)
code:https://github.com/9974/Codeforces/tree/master/210div1A先倒着暴力处理询问, 然后正着check一下是不是符合要求。B求最大值最小,很典型的二分,一维dp判断是否合法 O(n*n*log(n))dp[i]表示进行到第i位,且第i位不放的最小修改个数, 对于dp[i] 可以由dp[j]转移,j+1-----i-1都要原创 2013-11-17 14:44:34 · 1613 阅读 · 0 评论 -
Codeforces Round #198 (Div. 1)(A,B,C,D)
http://codeforces.com/contest/341赛后做的虚拟比赛,40分钟能出了3题,RP爆发。A计数问题我们可以对每对分析,分别对每对(a走到b)进行统计,那么这对产生的期望为distance(a, b)/n(把这一对选出来以后相当于一个点,那么分子distance(a, b)*(n-1)!,分母n!, (n-1)被约掉了。)这样的算法是O(原创 2013-09-01 23:49:32 · 1452 阅读 · 0 评论 -
Codeforces Round #199 (Div. 2)
A题挂了,B题WA了4发, C题1A, 比赛结束, D题赛后1A了。 小号变紫了。A. 仔细看题, 所有数都小于等于7,所以只有1 2 4, 1 2 6, 1 3 6 三种情况,如果出现5,7就是-1, 否则 cnt[1] = n/3,cnt[2] - cnt[4] == cnt[6] - cnt[3] 而且 cnt[2] - cnt[4] >= 0我错在出现5,7的情况没考虑,手速太原创 2013-09-07 21:00:46 · 1295 阅读 · 0 评论 -
Codeforces Round #197 (Div. 2)(完全)
http://codeforces.com/contest/339/这场正是水题大放送,在家晚上限制,赛后做了虚拟比赛4A,B乱搞水题C 我是贪心过的,枚举一下第一个拿的,然后找使差值最小的那个物品。codeD 裸的线段树,几乎不用思考,push_up函数要注意一下即可codeE 最多三层,暴力搜一下。按以下两个方向搜索原创 2013-08-31 21:54:02 · 1098 阅读 · 0 评论 -
Codeforces Round #215 (Div. 1)(A,B,C)
这次比赛做得很差,1题垫底,主要A题没考虑len code:https://github.com/9974/Codeforces/tree/master/215div1A 注意len B 问题可以变为 某个序列b与另一个序列a的子序列 rearrang后匹配的个数有几个首先离散化一下,再让sum[i]表示在序列b中每个数的个数,我们再用一个变量cnt表示没有匹配上的个数, 扫一遍序原创 2013-11-27 17:07:30 · 1244 阅读 · 0 评论 -
Codeforces Round #219 (Div. 1)(A,B,C)
题目入口:http://codeforces.com/contest/372Code: https://github.com/9974/Codeforces/tree/master/219div1A.二分答案m,判断最前面m个袋鼠放在最后面m个袋鼠里面即可。B.dp[i][j][k][u]表示答案,那么状态转移方程为dp[i][j][k][u] = dp[i][j][k-1][原创 2013-12-14 17:43:05 · 1211 阅读 · 0 评论 -
Codeforces Round #220 (Div. 2)(A,B,C,D)
比赛入口:http://codeforces.com/contest/374Code:https://github.com/9974/Codeforces/tree/master/220div2A.考虑4个角(x, y),然后x与a的差值 和y与b要同奇偶。这里少考虑了一个情况,导致挂了,就是a很大(a >= n)或b很大(b >= m)时, 该点一步都动不了,这情况要特判一下。原创 2013-12-19 18:03:44 · 1251 阅读 · 0 评论 -
Codeforces Round #234 (Div. 2)(完全)
比赛链接:http://codeforces.com/contest/400/代码链接:https://github.com/9974/Codeforces/tree/master/234div2A, B, C水题D dfs判联通性+floyd最短路E 按位拆成线段树,线段树区间合并问题原创 2014-03-07 17:34:01 · 1286 阅读 · 0 评论 -
Codeforces Round #236 (Div. 1)(A, B, C, D)
code链接:https://github.com/9974/Codeforces/tree/master/236div1A样例做法:从1连到n,再从2到n。。。。直到连了2*n+p。。不知道为啥。。能合理解释的做法:显然图平均分布会更好,用优先队列,每次取出度最小的两个点连边即可B先统计题目给你的所有数的总的权值, 预处理每个前缀最大公约数从后往前枚举, 统计一下原创 2014-03-18 17:04:24 · 1392 阅读 · 0 评论 -
Codeforces Round #239 (Div. 1)(A,B)
A 把直角顶点放在原点, 然后让两条直角边斜着放,注意要判断斜边是否与Y轴平行B dp[i] 表 走到i点i上的X是偶数个的步数 f[i]表示 从 "在i点时i上的X是奇数个 "变到“在i点时i上的X是偶数个” 所需走的步数#include #include #include using namespace std;int i, j;int dp[1003], f[100原创 2014-03-30 18:16:10 · 1335 阅读 · 0 评论 -
2008-2009 ACM-ICPC Northeastern European Regional Contest (NEERC 08) (2013区域赛练习)
比赛A了B, G,H,I, 赛后我独自整理了F,J, 还有A题貌似可以做,可惜没时间,下次再整理吧。讲一下J和F的思路, 还有贴J和K的代码J :其实就是把字母映射分成元音和辅音两组就可以了, 那么我们暴力dfs把26个字母分成2组的状态,然后根据输入的串相邻位置不能是同一组的把一大堆无用状态删去,然后找到一个有用的就停,修改一下即可。注意:每个单词有可能用空行隔开。F:数位统原创 2013-11-30 21:39:26 · 2288 阅读 · 1 评论 -
Codeforces Round #230 (Div. 1)B,C
B.汉诺塔问题原型就是用递归解的,这里加上了每步的费用,无非是 递归+dp一下,也就是记忆化dp就可以了注意long long#include #include #include #include #include using namespace std;typedef long long ll;int t[4][4];const ll inf = 1e18;type原创 2014-02-19 16:46:05 · 1388 阅读 · 0 评论 -
Codeforces Round #232 (Div. 1)(A,B,C,D)
比赛链接: http://codeforces.com/contest/396代码链接: https://github.com/9974/Codeforces/tree/master/232div1A分解质因数, 对于每个质数单独考虑,假设质数2的指数为m, 那么我们要做的就是求 把m个2分配给n个数 的情况数用高中的挡板法得 C[m+n-1][n], 每个质数是相互独立的原创 2014-02-28 19:34:43 · 1264 阅读 · 1 评论 -
Codeforces Round #225~229专辑
加*为好题,所有代码在github上 代码链接229Div2C 前缀和乱搞题D 简单构造题E ***线段树228Div1B***二进制构造最短路题C贪心的博弈题227Div2C***思维题D匈牙利算法裸题E数据结构维护226Div2C***数论小技巧题D简单状态压缩(带几何计算)E简单矩阵乘法原创 2014-02-22 20:14:12 · 1037 阅读 · 0 评论 -
Codeforces Round #231 (Div. 2)A, B, C, D
A, B ...C想好思路,恶搞#include #include #include using namespace std;int n, m;int c[3];char s[3];int ans[1003][1003];void out() { int i, j; for(i = 0; i < n; i++, puts("")) for(j = 0; j <原创 2014-02-21 19:53:01 · 1155 阅读 · 0 评论 -
codeforces 251A Points on Line 二分 or 单调队列
比赛时我用单调队列A的View Code #include#include#includeusing namespace std;#define LL __int64int a, n, d;LL ans;queue int> q;int main() { int i, j; scanf("%d%d", &n, &d);原创 2013-08-29 10:37:42 · 994 阅读 · 0 评论 -
Codeforces Round #190 (Div. 2)(完全)
好久没有写博客了,一直找不到有意义的题可以写,这次也不算多么有意义,只是今天是比较空的一天,趁这个时候写一写。A.B.有一点贪心,先把每个拿去3的倍数,余下0或1或2,然后三个一起拿。对于以上的做法我们少考虑了一种情况:即 a,b,c三个数对3取模以后为2 2 0假如 c >= 3, 那么 我把c拿得只剩 3, 那么 2 2 3 可以拿2次, 而 以上的贪心只原创 2013-07-01 11:34:12 · 1494 阅读 · 0 评论 -
Croc Champ 2013 - Round 1(完全)
AB从度的角度考虑C2个深搜, 1个搜一个回文串,还有一个搜点的位置。codeD分别从左和右预处理出连1-i这些边的 和 连 i-m这些边所保存的联通图(用并查集)。自己太水了,比赛的时候竟然没有想到这个,附上watashi的代码:codeE线段树,懒惰标记下放时注意修改和维护即可。code原创 2013-04-16 20:53:32 · 1439 阅读 · 0 评论 -
Codeforces Round #169 (Div. 2) (完全)
今天人品超好,出了4题,哈哈,把div1的选手算进排名200,这次D题给力了一下,C题的线段树写得卡了比较久的时间,需要加强线段树。B .注意每个字符的位置可以随意放,所以我们只要统计每个字母的个数,设字母为奇数个的有cnt个,如果cnt == 0 那么一定是First,如果cnt 大于零,那么每次他们都会拿这些奇数个的字母,谁在拿之前cnt == 1那么就是谁赢。C.用树原创 2013-02-24 18:13:44 · 1468 阅读 · 0 评论 -
Codeforces Round #165 (Div. 2)(完全)
这次比赛4分钟结束了,出了1题,诶,B题就卡住,我已经模拟出规律,但傻傻地在写暴力,没有充分简化规律,写出来以后TLE,这导致后面的题目都没看过。 其实这次的C,D很简单,赛后做了做很快就A了,可以了,发挥不够平稳。B.我一开始得到的规律:先检查剩下的数组是否升序,若不是升序最前面的一个数一定要更新,然后去掉这个数,重复这一操作直到数组中没有数为止 。化简这一规律:以上的做法会原创 2013-02-02 19:34:51 · 1452 阅读 · 0 评论 -
Codeforces Round #164 (Div. 2) (完全)
上次做好了这次又差了,诶, A题看题目看了好久,最后乱搞竟然A了,时间浪费了很多,C题只想着暴力出来,结果可想而知,被hack了,竟然有规律,自己还是想得太少。要多想,多想才能提高自己,学习要注重效率,不然时间用得再多,结果还是老样子。这次官方的题解很详细,我就当简要总结吧,别人写得太好了。官方题解链接当然不要一不会做就去看题解,必须自己好好想想,还有A,B题官方题解有优化原创 2013-01-29 21:19:09 · 2629 阅读 · 0 评论 -
Codeforces Round #160 (Div. 2)(完全)
考试结束后的第一场CF, 诶,功力不够,B,C都出了点小问题,都绿色了还跌,变紫任重而道远。http://www.codeforces.com/contest/262A. 暴力B. 注意要把k次用完,我图快没看清楚,WA了一次。C. 贪心,q[]数组排序一下,只要取最小的那个q[]去打折,不能打折的分开买,很容易证明这种方案是最优的, 我很早就想到了,当时总觉得这种方案不一定原创 2013-01-15 18:27:42 · 831 阅读 · 0 评论 -
Codeforces Round #161 (Div. 2)(完全)
这次又只切了A,B两个水题,C题就攻不下,赛后才发现题意读错了,然后又是做了很久,按自己的方法后来出现很多问题,无奈放弃, 看了看别人的思路。C. 注意每个数必定与另外4个数相连, 我们可以从1开始构造,枚举1的左右两个数字,然后通过这三个已知的向右推出所有的数,每次推都能增加一个。codeD. 题目只要找出一个长度 >= k的环,而且一定存在,我们只要从度最大的点开始原创 2013-01-23 23:05:04 · 1036 阅读 · 0 评论 -
Codeforces Round #162 (Div. 2) (完全)
没留意比赛时间,赛后虚拟比赛做的C题我很弱的又跳进坑里了。竟然在模拟,太失败了。C注意规模 10^6,也就是要把区间对半分10^6次,模拟虽然不会超时,用脑子想想,精度肯定吃不消, 太搓了。所以这题要找一定的规律,其实规律很简单:当你选择左边时,你会发现之后的石头的位置都在你选择之前落下来的石头的位置的左边,当你选择右边时,你会发现之后的石头的位置都在你选择之前落下原创 2013-01-23 23:51:45 · 980 阅读 · 0 评论 -
Codeforces Round #163 (Div. 2) (完全)
这次比赛前两题切得算比较快,可惜C题一直RE,比赛结束后2分钟就找出了错误,果然在系统判完后交了一下AC,心痛啊,编译器也很神奇,竟然没有出现RE,排序的地方出现了小问题,诶,长经验了。最后接近紫色1656,下次继续努力。C 贪心我的思路: 分别对行列处理。行::把每行按一定规则排序, 规则如下:1. 把 行中1的个数多的放到下面2. 如果个数相同,比较最后一个1所在的列数,原创 2013-01-23 23:30:09 · 1426 阅读 · 0 评论 -
Codeforces Round #154 (Div. 2)
比赛时候做了A,B,C三题, 赛后整理了D题,E题做得人太少,最近又要准备期末考试, E题有空了再做A.水题B.二分#include#include#includeusing namespace std;int n, m;int a[100005];int main(){ int i, j; freopen("input.txt", "r", st原创 2012-12-14 18:44:48 · 800 阅读 · 0 评论 -
Codeforces Round #168 (Div. 2) (完全)
这次比赛出了A,C两题,B题给跪了,犯了一个小小的错误。B我是这么做的,枚举每个黑格子,然后暴力走4个直角,统计找到的点的个数,当个数不等于总个数就是NO,遍历所有情况没有NO就是YES。codeC假如倍数是2, 并有序列2,4,8,16...... 这个数列的总个数为n, 很容易得出我们最多只能取n - n/2个数,即有n/2个不能选。因此我们只要找到所有公比原创 2013-02-21 09:57:33 · 1131 阅读 · 0 评论 -
Codeforces Round #171 (Div. 2)(完全)
这次比赛先速出了B,C两题,然后才出了A题,囧死,最后名次99(除去div1选手), 最终E题还是没有出,赛后才知道这是以前的cf原题。这次比赛意外变紫,压力山大。A比赛的时候是模拟的, 其实分4类讨论即可, 点(0,0)另外讨论。codeBtwo points,cf上很多次出现类似的题,重复了以前的题,无语,直接速A。。。codeC开两个数组分别表原创 2013-03-05 21:06:29 · 1531 阅读 · 0 评论 -
Codeforces Round #167 (Div. 2) (完全)
做的虚拟比赛,出了4题,这次题目还算简单。B.总结一下f(x)的值是如何计算的即可:把x不断除以2,直至x == 0 时停止,f(x)的值即为期间出现的奇数的个数。因为给定的x在int范围内,所以f(x)的值 codeC.比赛的时候用线段树做的,代码很长,不过幸好很快AC了。 其实这题代码很短,要注意 (1 ≤ a1 ≤ a2 ≤ ... ≤ an).原创 2013-02-22 16:40:27 · 812 阅读 · 0 评论 -
Codeforces Round #179 (Div. 2)
个人小记:AB 水dpC 用2个数组维护 or 线段树 or树状数组D floyd,逆序加点。E 还没做原创 2013-04-15 14:32:07 · 961 阅读 · 0 评论 -
CodeForces 215E 数位DP
#include #include #include #include using namespace std;#define LL long longLL dp[66];int dig(LL n) { int s = 0; while(n) {s++; n >>=1;} return s;}LL f(int len, int t, LL n, bool lim) { i原创 2013-04-15 14:44:04 · 1257 阅读 · 0 评论 -
Croc Champ 2013 - Qualification Round(完全)
A.map 或者 排序搞一下B.字符串简单处理C.题意有点难懂。输出的答案叫什么码来着,这个码有个限制:化成二进制后要是前一段都是1,后一段都是0或后一段没有0. 枚举一下即可D.模拟一下倍增。E.简单的KMP+dfs,只是把KMP的完整步骤分成好几步进行, 匹配了k条就把KMP中断了k次。code原创 2013-04-15 14:41:06 · 1029 阅读 · 0 评论 -
Codeforces Round #178 (Div. 2)(完全)
B 我用贪心搞的,别人说可以用背包因为t只是1或2, 我们把书分成1和2两堆,然后分别按w排序(大的在前面),然后分别枚举1和2选了几个,肯定是从每堆的第一个开始取的。codeC把题目转化为求剩下灯的数字排放顺序,高中题,组合数学搞一下, 中间有个二分幂。codeD简单模拟题, 如果遇到(同一基点和同一方向)2次就输出-1, 判断什么时候停止就是(四原创 2013-04-09 19:10:49 · 1167 阅读 · 2 评论 -
Codeforces Round #177 (Div. 2)(完全)
AB 以中位数为基准C 别忘记 k == 1 && n == 1 的情况D 公式 k^(k-1)*(n-k)^(n-k) 还没推出来,比赛的时候是凑出来的E 贪心,最大化使其二进制位上的1不要被异或掉。#include #include #include #include using namespace std;#define LL __int64int f[原创 2013-04-03 22:53:45 · 996 阅读 · 0 评论 -
Codeforces Round #174 (Div. 1) (A, B, C)
第一次做div1,有点紧张,挂零,A题卡int了,悲剧赛后自己出了A,B,CA比赛的时候压力太大,没想用2个数组维护,直接用线段树的。codeB路径只可能是一条链,可能成环,记忆化搜索一下即可,避免重复计算,算是暴力的优化吧。codeC完全背包dp,根据题目给的限制条件,把某些物品绑定成一个物品,( 注意题目中bi,ci都各不相同)比方x,y,z原创 2013-03-18 23:33:06 · 1182 阅读 · 0 评论