摘要: hdu1787,直接求欧拉函数 poj2478,欧拉函数递推,证明可以看 "这里" 或者是算法竞赛进阶指南 $n \log n$ 筛 cpp include include include using namespace std; int n; long long phi[1000005]; voi 阅读全文
posted @ 2017-12-19 19:15 poorpool 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 好题。 网上看到的范围是:$T \leq 10$,$ n \leq 50000$, $ a_i,b_i \leq 10^9$。 我们按照贪心惯常的思路考虑交换相邻的两个人。容易发现,对于相邻的两个人,总是后一个人的答案更大一点。而我们的目的,是让两个人中后一个人的答案更小(这样可以让这两个人后面的答 阅读全文
posted @ 2017-12-18 20:25 poorpool 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 先排个序然后做最长上升子序列就行了。 cpp include include include using namespace std; struct Node{ int ll, ww; }nd[50005]; int n, cnt, dp[5005]; bool cmp(Node x, Node y 阅读全文
posted @ 2017-12-18 18:57 poorpool 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 好的题解使人一下就懂啊…… s1[i][j]表示(i,j)最多向左(或右)延伸多少个格子,使这些格子中的数都是0(不包括(i,j)) s2[i][j]表示(i,j)最多向上延伸多少个格子,使这些格子中的数都是0(不包括(i,j)) f[i][j]表以(i,j)为右下(左下)角的最大对角线长度 来自 阅读全文
posted @ 2017-12-18 11:40 poorpool 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 倒着推就是了 cpp include include include using namespace std; int n, k, p, t, dp[10005]; vector a[10005];//是他,就是他!我们的英雄vector! int main(){ cin n k; for(int 阅读全文
posted @ 2017-12-18 11:10 poorpool 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 如果prime[i]是k的因子,那么【k \ (在prime[i]以后的质数)】等于【prime[i]\ (k/prime[i])\ (这个质数)】,一定被筛过了,所以这里可以break。 cpp include include include using namespace std; bool i 阅读全文
posted @ 2017-12-15 21:35 poorpool 阅读(108) 评论(0) 推荐(0) 编辑
摘要: treap 阅读全文
posted @ 2017-12-15 20:09 poorpool 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 先是维修数列 题解看 "这里" ,但是我写的跑得很慢 下面是poj的,稍加改动即可ac洛谷。 如果想看题意分析及讲解请看 "这里" ,讲得很好,一下就让我明白splay维护区间了。 splay的价值在于维护区间,如果只是维护点的话完全可以用treap等平衡树代替 阅读全文
posted @ 2017-12-15 17:05 poorpool 阅读(211) 评论(3) 推荐(0) 编辑
摘要: 悬线法 cpp include include include using namespace std; int n, m, h[2005][2005], l[2005][2005], r[2005][2005], uu, iii=0, jjj=0; bool a[2005][2005]; void 阅读全文
posted @ 2017-12-13 19:23 poorpool 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 悬线法 cpp include include include using namespace std; int n, m, ans=0, h[1005][1005], l[1005][1005], r[1005][1005]; bool a[1005][1005]; char s[15]; int 阅读全文
posted @ 2017-12-13 18:41 poorpool 阅读(114) 评论(0) 推荐(0) 编辑