随笔分类 - cf
摘要:827C - DNA Evolution 思路: 写4*10*10个树状数组,一个维度是4(ATCG),另一个维度是长度len,另一个维度是pos%len,因为两个pos,如果len和pos%len相同,那么它们就在一个树状数组里。 代码:
阅读全文
摘要:877E - Danil and a Part-time Job 思路:dfs序+线段树 dfs序:http://blog.csdn.net/qq_24489717/article/details/50569644 代码:
阅读全文
摘要:429B - Working out 思路:从四个角递推,然后暴力每个点,有两种情况: 代码:
阅读全文
摘要:101487E - Enter The Dragon 思路:做的时候两个地方理解错了,第一个事我以为龙吸了水,水就干了,其实龙是在下雨之前吸的,下雨时湖水又满了,所以湖水永远不会干;第二个是以为只要找前面一段没下雨的天吸水就可以了,其实是上一次满了之后没下雨的天吸水都可以。 代码:
阅读全文
摘要:96D - Police Stations 思路:bfs,从所有的警察局开始bfs,因为bfs的深度一样,而且题目给的树保证满足条件,所以不用考虑深度。 如果搜索到一个点a,他的下一个点b已经被搜索过了,而且a到b这条路没有被走过,那么这条路可以被砍掉。 不能用dfs,这样可能导致某些点搜索不到,反
阅读全文
摘要:554C - Kyoya and Colored Balls 思路:组合数,用乘法逆元求。 代码:
阅读全文
摘要:855B - Marvolo Gaunt's Ring 思路:①枚举a[j],a[i]和a[k]分别用前缀最小值最大值和后缀最小值和后缀最大值确定。 ②dp,dp[i][j]表示到第j为止,前i+1个值加起来的最大值。 代码: 代码①: 代码②:
阅读全文
摘要:扫描线:http://www.cnblogs.com/scau20110726/archive/2013/04/12/3016765.html 看图,图中的数字是横坐标离散后对应的下标,计算时左端点不变,右端点加1,所以总的更新的区间是l到r-1。 也可以理解为1代表的是(1到2这一段),2代表的是
阅读全文
摘要:861D - Polycarp's phone book 思路:用map做的话,只能出现一次循环,否则会超时。 代码:
阅读全文
摘要:862B - Mahmoud and Ehab and the bipartiteness 思路:先染色,然后找一种颜色dfs遍历每一个点求答案。 代码:
阅读全文
摘要:862C - Mahmoud and Ehab and the xor 思路:找两对异或后等于(1<<17-1)的数(相当于加起来等于1<<17-1),两个再异或一下就变成0了,0异或x等于x。所以只要把剩下的异或起来变成x就可以了。如果剩下来有3个,那么,这3个数可以是x^i^j,i,j。 代码:
阅读全文
摘要:847B - Preparing for Merge Sort 思路:前面的排序的最后一个一定大于后面的排序的最后一个。所以判断要不要开始新的排序只要拿当前值和上一个排序最后一个比较就可以了。 代码:
阅读全文
摘要:847H - Load Testing 思路:dp。 代码:
阅读全文
摘要:847C - Sum of Nestings 思路:简单的递归。 代码:
阅读全文
摘要:847I - Noise Level 思路:bfs。 代码:
阅读全文
摘要:847E - Packmen 思路:二分时间。 代码:
阅读全文
摘要:832C - Strange Radiation 思路:二分最短时间。 代码:
阅读全文
摘要:595D - Max and Bike 思路:开始和结束时的计时器的高度相同时(也就是关于圆竖着直径对称)时间最少。 证明: 总距离为d. 圆周长为s=2*π*r. 设len=d-floor(d/s)*s. len=θ1*r+θ2*r+sin(θ1)*r+sin(θ2)*r. 要使sin(θ1)*r
阅读全文
摘要:757D - Felicity's Big Secret Revealed 思路:状态压缩dp。 因为1到20的二进制长度相加正好为74,所以MAX最大为20。 num[i][k]表示i到k这段二进制的十进制形式。 状态:dp[i][j]表示第i位前面有一个划分且之前的划分中有状态j(j是一个集合,
阅读全文
摘要:712D - Memory and Scores 思路:dp。 状态:dp[i][j]表示到第i轮得分为j的方案数。 状态转移:dp[i][j]=∑dp[i-1][j-l](-k≤l≤k),这是一段连续的和,可以用前缀和优化。 代码:
阅读全文