博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
prefix free code
阅读量:4664 次
发布时间:2019-06-09

本文共 1091 字,大约阅读时间需要 3 分钟。

其实总的感觉也不是很难

就是昨天看到第二题就放弃了

简单来说就是组合数学一点点+字典树一点点

像是一个数位dp

#include
#define re return#define inc(i,l,r) for(ll i=l;i<=r;++i)using namespace std;template
inline void rd(T&x){ char c;bool f=0; while((c=getchar())<'0'||c>'9')if(c=='-')f=1; x=c^48; while((c=getchar())>='0'&&c<='9')x=x*10+(c^48); if(f)x=-x;}#define ll long long ll n,k;const int maxn=1000005,mod=1e9+7;ll tot,tr[maxn][27],ed[maxn],cnt[maxn];char s[maxn];inline void insert(){ ll len=strlen(s+1); ll rt=0; inc(i,1,len) { if(!tr[rt][s[i]-'a']) tr[rt][s[i]-'a']=++tot; rt=tr[rt][s[i]-'a']; } ed[rt]=1; ++cnt[rt];}inline void dfs(ll rt){ if(ed[rt])re; inc(i,0,25) if(tr[rt][i]) { dfs(tr[rt][i]); cnt[rt]+=cnt[tr[rt][i]]; } }ll slen,st=1;ll jc[maxn],jcinv[maxn],ans,Ans,CNT;inline void find(ll rt){ if(ed[rt]) { Ans=(Ans+jc[n-CNT]*jcinv[n-k]%mod*ans%mod)%mod; cnt[rt]--; re ; } ll x=s[st]-'a'; inc(i,0,25) if(i

 

转载于:https://www.cnblogs.com/lsyyy/p/11606558.html

你可能感兴趣的文章
对数组序列进行洗牌
查看>>
决策树
查看>>
团队作业
查看>>
如何避免在简单业务逻辑上面的细节上面出错
查看>>
win7,Ubuntu 12.04 双系统修改启动项顺序三方法
查看>>
python--列表推导式和生成表达式
查看>>
P - Psychos in a Line 单调队列
查看>>
POJ 2653 Pick-up sticks(计算几何)
查看>>
HDU 2665 Kth number 主席树
查看>>
大型网站高并发的架构演变图-摘自网络
查看>>
8丶运行及总结
查看>>
Unity获取手机的电量时间
查看>>
[BZOJ 2007] [Noi2010] 海拔 【平面图最小割(对偶图最短路)】
查看>>
Spring框架:Spring容器具体解释
查看>>
一个完美的世界 访问
查看>>
【PLSQL】package包的使用
查看>>
可持久化数据结构
查看>>
solr 4.4添加索引是新手容易遇到的问题
查看>>
JavaScript的跨域共享的方法
查看>>
(网页)jQuery的时间datetime控件在AngularJs中使用实例
查看>>