摘要: 找左右第一个小于自己的值: int top=0; for(int j = m ; j >= 1 ; -- j){ while(top!=0&&s[i][j]<s[i][st[top]]) l[st[top]]=j,top--; st[++top]=j; } top=0; for(int j = 1 阅读全文
posted @ 2019-07-23 15:14 Mmasker 阅读(109) 评论(0) 推荐(0)
摘要: 1.线性素数筛 int prime[MAXN],vis[MAXN]; int cnt; void init(){ for(int i=2;i<MAXN;i++){ if(!vis[i])prime[++cnt]=i; for(int j=1;j<=cnt;j++){ if(i*prime[j]>=M 阅读全文
posted @ 2019-07-23 12:56 Mmasker 阅读(170) 评论(0) 推荐(0)