摘要: 因为是从1~n插入的, 慢插入的对之前的没有影响, 所以我们可以用平衡树维护, 弄出最后的序列然后跑LIS就OK了 O(nlogn)--------------------------------------------------------------------#include#define ... 阅读全文
posted @ 2015-07-26 23:52 JSZX11556 阅读(283) 评论(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 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 对于一个强连通分量, 一定是整个走或者不走, 所以tarjan缩点然后跑dijkstra.---------------------------------------------------------------------#include#define rep(i, n) for(int i ... 阅读全文
posted @ 2015-07-26 20:39 JSZX11556 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 从左到右扫一遍, 维护一个单调不递减队列. 然后再从右往左重复一遍然后就可以统计答案了。----------------------------------------------------------------------------#include#define rep(i, n) for(... 阅读全文
posted @ 2015-07-26 19:51 JSZX11556 阅读(272) 评论(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 阅读(262) 评论(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 阅读(379) 评论(0) 推荐(0) 编辑