上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 49 下一页
摘要: T了一版....是因为我找质因数的姿势不对...考虑n的每个因数对答案的贡献. 答案就是 ∑ d * phi(n / d) (d | n) 直接枚举n的因数然后求phi就行了.但是我们可以做的更好. 注意到h(n) =∑ d * phi(n / d) (d | n) 是狄利克雷卷积的形式, 而且f(... 阅读全文
posted @ 2015-07-28 23:44 JSZX11556 阅读(402) 评论(7) 推荐(0) 编辑
摘要: 2014.9被同桌kpm带入坑....虽然现在不同班了...(Orz搞分班程序坑了他自己...)入OI之后就没什么其他兴趣了...偶尔看看番..是数据结构控..(算不上吧?) 指针党.来自广东, 表示压力略大...Orz SM中学, JSJZ常用的ID是 JSZX11556,HLFTFSFP新浪微博... 阅读全文
posted @ 2015-07-28 17:18 JSZX11556 阅读(613) 评论(7) 推荐(0) 编辑
摘要: 要求gcd(x, y) = p (1 #define clr(x, c) memset(x, c, sizeof(x))#define rep(i, n) for(int i = 0; i > n; init(); for(int i = 2; i <= n; i++) phi[i] += ph... 阅读全文
posted @ 2015-07-28 12:39 JSZX11556 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 简单的拓扑图dp..A(i, j), B(i, j) 表示从点 i 长度为 j 的两种路径是否存在. 用bitset就行了 时间复杂度O(m)----------------------------------------------------------------#include#define... 阅读全文
posted @ 2015-07-27 20:41 JSZX11556 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 因为是从1~n插入的, 慢插入的对之前的没有影响, 所以我们可以用平衡树维护, 弄出最后的序列然后跑LIS就OK了 O(nlogn)--------------------------------------------------------------------#include#define ... 阅读全文
posted @ 2015-07-26 23:52 JSZX11556 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 最优的做法最后路面的高度一定是原来某一路面的高度.dp(x, t) = min{ dp(x - 1, k) } + | H[x] - h(t) | ( 1 #define rep(i, n) for(int i = 0; i > n; rep(i, n) { scanf("%d", H + i);... 阅读全文
posted @ 2015-07-26 22:05 JSZX11556 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 对于一个强连通分量, 一定是整个走或者不走, 所以tarjan缩点然后跑dijkstra.---------------------------------------------------------------------#include#define rep(i, n) for(int i ... 阅读全文
posted @ 2015-07-26 20:39 JSZX11556 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 从左到右扫一遍, 维护一个单调不递减队列. 然后再从右往左重复一遍然后就可以统计答案了。----------------------------------------------------------------------------#include#define rep(i, n) for(... 阅读全文
posted @ 2015-07-26 19:51 JSZX11556 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 假设C君为(0, 0), 则右上方为(n - 1, n - 1). 一个点(x, y) 能被看到的前提是gcd(x, y) = 1, 所以 answer = ∑ phi(i) * 2 + 2 - 1 = ∑phi(i) * 2 + 1 ( 1 using namespace std;const in... 阅读全文
posted @ 2015-07-26 10:27 JSZX11556 阅读(260) 评论(2) 推荐(0) 编辑
摘要: 一个点(x, y)的能量损失为 (gcd(x, y) - 1) * 2 + 1 = gcd(x, y) * 2 - 1. 设g(i)为 gcd(x, y) = i ( 1 = 2 , i * k using namespace std;typedef long long ll;const int m... 阅读全文
posted @ 2015-07-26 00:03 JSZX11556 阅读(377) 评论(0) 推荐(0) 编辑
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 49 下一页