摘要:
这道题完全没想出来,引自http://blog.csdn.net/willinglive/article/details/38419573的题解对于带有“将一段区间内的每个数全部加上某个值”这种操作的题目,通常考虑差分原数列以简化情况,将对一段区间的操作转化为对某两个特定数的操作。我们定义d1=a1... 阅读全文
posted @ 2014-10-26 19:45
acphile
阅读(201)
评论(0)
推荐(0)
摘要:
朴素的算法是O(n2logn)观察这个算法,似乎很难在进行优化我们就要换一种思路考虑到一个数的约数总不是很多,穷举约数也是可以在O(sqrt(x))的时间内完成的并且注意到,能否继续往下选数,只在于最后一个被选中的数设f[x]当前最后一个选中的数和上一个可以被选中的数的gcd为x时最多选的数的个数顺... 阅读全文
posted @ 2014-10-26 17:31
acphile
阅读(107)
评论(0)
推荐(0)
摘要:
ans=C((n+1)*(m+1),3)-三点一线的情况横线竖线我们可以先去掉然后考虑斜线,由于对称性我们只要考虑斜率大于0的即可有一个很显然的结论,但两点坐标差为x,y时,这条线段上的点数为gcd(x,y)我们设左下角点为(0,0),则两端点坐标差为x,y的线段有(n-x+1)*(m-y+1)要注... 阅读全文
posted @ 2014-10-26 17:16
acphile
阅读(119)
评论(0)
推荐(0)
摘要:
非常好的一道搜索题首先没有别的好办法就只能搜,基于对称性我只要搜对角线上半部分即可然后有些惯用的剪枝啦什么的,具体见程序然后代码很短,然后TLE了(但好像也有人过了)然后就不知道怎么优化了,看到CLJ大神的空间发现这道题是可以记忆化搜索的orz首先当搜索完某个队伍的胜负情况后,观察剩下的队伍已确定的... 阅读全文
posted @ 2014-10-26 16:58
acphile
阅读(278)
评论(0)
推荐(0)
摘要:
这道题不是很难,二分答案+判定即可注意在一套牌中Joker只能用一次 1 var a:array[0..51] of longint; 2 mid,l,r,n,m,i,ans:longint; 3 4 function check(x:longint):boolean; 5 var i,t:... 阅读全文
posted @ 2014-10-26 16:39
acphile
阅读(181)
评论(0)
推荐(0)
摘要:
很容易脑补出来的区间dp O(n3)的var f:array[0..51,0..51] of longint; i,n,j,l,k:longint; s:string;function min(a,b:longint):longint; begin if a>b then exit(b) el... 阅读全文
posted @ 2014-10-26 16:31
acphile
阅读(121)
评论(0)
推荐(0)
浙公网安备 33010602011771号