随笔分类 -  白书补全计划

摘要:白书上的例题。花了很多时间在找bug上,刚学树状数组,这道题add操作时要注意上限不是n。 阅读全文
posted @ 2016-07-29 16:23 MartinEden 阅读(172) 评论(0) 推荐(0)
摘要:题目是给出N,求G的值。 可以转化为S(n) = f(1) + f(2) + f(3) + ... + f(n)。其中f(n) = gcd(1, n) + gcd(2, n) + ... + gcd(n, n)。 随便写一个n = 5 的情况。得到gcd(1, 5) = 1, gcd(2, 5) = 阅读全文
posted @ 2016-07-25 20:29 MartinEden 阅读(131) 评论(0) 推荐(0)
摘要:#include #include #include #include using namespace std; #define ll long long const int maxn = 310; const ll mod = 1e9; char s[maxn]; ll dp[maxn][maxn]; ll solve(int i, int j) { if(i == j) retur... 阅读全文
posted @ 2016-07-24 16:28 MartinEden 阅读(176) 评论(0) 推荐(0)
摘要:简单的数位dp题,题意是求区间内的一种数的个数,这种数的本身和各个位置上的数之和能除尽给定的k(k <= 10000)。 dp[20][10000][100]也是可以过的,但是因为各位置上的数之和不会超过100。所以k>=100的情况其实可以直接返回0。 所以dp[20][110][110]足够了( 阅读全文
posted @ 2016-07-24 10:57 MartinEden 阅读(174) 评论(0) 推荐(0)
摘要:白书上的例题,实际上就是一个背包问题,不过要注意高精度问题,上java就没问题了。 阅读全文
posted @ 2016-07-24 10:51 MartinEden 阅读(129) 评论(0) 推荐(0)
摘要:白书上的例题,用长度作为状态推算sg值。代码写的有点挫。 阅读全文
posted @ 2016-07-22 21:13 MartinEden 阅读(169) 评论(0) 推荐(0)
摘要:题意和nim游戏差不多,就是取石子的时候最多只能拿原来的一半,比如一堆5个石子最多拿两个。 先用打表的方式看出前面一部分的sg值,然后找规律来做。 打表求sg值的程序才是最重要的。 阅读全文
posted @ 2016-07-21 09:41 MartinEden 阅读(163) 评论(0) 推荐(0)
摘要:白书的例题,做法是记好每个数的质因数的个数,然后就可以转化为简单的nim游戏。 阅读全文
posted @ 2016-07-21 09:33 MartinEden 阅读(147) 评论(0) 推荐(0)