模板集
来源:互联网 发布:三菱plc编程软件work2 编辑:程序博客网 时间:2024/05/17 21:48
KMP:
【NOI2014】 动物园
# include <cstring># include <cstdio>using namespace std;typedef long long ll;const int mod = 1e9+7;const int maxl = 1000010;char s[maxl];int pre[maxl],dep[maxl];void getFail(){int l = strlen(s);int j=0; dep[1]=1;for (int i=1;i<l;++i){while (j&&s[j]!=s[i]) j=pre[j];if (s[j]==s[i]) ++j;pre[i+1]=j;dep[i+1]=dep[j]+1;}}void getAns(){ll ans=1;int l = strlen(s);int j=0;for (int i=1;i<l;++i){while (j&&s[j]!=s[i]) j=pre[j];if (s[j]==s[i]) ++j;while (j>(i+1)/2 && j) j=pre[j];ans=(ans*(dep[j]+1))%mod;}printf("%lld\n",ans);}int main(){int T; scanf("%d",&T);while (T--){scanf("%s",s);getFail();getAns();}return 0;}
线段树:(采用神奇实现方法)
【Luogu#3372】区间加/区间和
# include <cstdio>using namespace std;typedef long long ll;const int maxn = 100010;int n,m;int ra[maxn];namespace Seg{ll sum[maxn<<2];int tag[maxn<<2],siz[maxn<<2];void pup(int x){ sum[x]=sum[x<<1]+sum[x<<1|1]; }void ptg(int x,int tg){ tag[x]+=tg; sum[x]+=siz[x]*tg; }void pdw(int x){ if (tag[x]) ptg(x<<1,tag[x]),ptg(x<<1|1,tag[x]),tag[x]=0; }void init(int x,int l,int r){sum[x]=tag[x]=0; siz[x]=r-l+1;if (l==r){ sum[x]=ra[l]; return; }int m = (l+r)>>1;init(x<<1,l,m); init(x<<1|1,m+1,r);pup(x);}int opty,opl,opr,opg;ll opans;void step(int x,int l,int r){if (opl <= l && r <= opr){if (opty == 1) ptg(x,opg);if (opty == 2) opans += sum[x];return;}int m = (l+r)>>1; pdw(x);if (opl<=m) step(x<<1,l,m);if (opr>m) step(x<<1|1,m+1,r);if (opty == 1) pup(x);}}void work(){ scanf("%d%d",&n,&m); for (int i=1;i<=n;++i) scanf("%d",ra+i);Seg::init(1,1,n); for (int i=1;i<=m;++i){ scanf("%d%d%d",&Seg::opty,&Seg::opl,&Seg::opr); if(Seg::opty==1) scanf("%lld",&Seg::opg); Seg::opans=0; Seg::step(1,1,n); if(Seg::opty==2) printf("%lld\n",Seg::opans); }}int main(){ work(); return 0;}
阅读全文
0 0
- 模板集
- 模板集
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 【模板】并查集
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集【模板】
- 并查集 模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 网站集Quota模板
- 专访神策数据桑文锋:从百度八年老兵到公司CEO,价值观对一家公司意味着什么
- 用Google Assistant支付要收手续费?谷歌终于按捺不住了
- target
- 【noip2008普及】传球游戏
- mybatis知识点(四)
- 模板集
- IE兼容性问题
- 【速报】人机大战第二局:柯洁主动认输,再负AlphaGo
- 人类大败,围棋决战第二场柯洁中盘认输
- 波音公司与美军合作研发极超音速太空飞船,可十天内完成十次飞行任务
- 人工智能可不止Alpha Go它或许就在你vivo手机里
- N
- 6-5 递归求简单交错幂级数的部分和
- 人类团队也输了!AlphaGo再次以微弱优势获得胜利