HDU
来源:互联网 发布:软件评测师培训费用 编辑:程序博客网 时间:2024/06/18 05:28
https://vjudge.net/problem/HDU-3450
直接用dp[i]表示以最后一个结尾的完美序列的个数。。
然后就可以用树状数组优化了
int num[N],val[N],cnt,tree[N<<2];const int maxn=500010;int d,n;int dp[N];int haxi(int x){ return lower_bound(val+1,val+1+cnt,x)-val;}int lowbit(int x){return x&(-x);}int query(int x){ int ret=0; while(x){ ret+=tree[x]; x-=lowbit(x); } return ret%mod;}void add(int x,int v){ while(x<=maxn){ tree[x]+=v; tree[x]%=mod; x+=lowbit(x); }}int main(){ //freopen("in.txt","r",stdin); while(~sf("%d%d",&n,&d)){ mem(tree,0); cnt=0; rep(i,1,n){ sf("%d",&num[i]);val[++cnt]=num[i];val[++cnt]=num[i]+d;val[++cnt]=num[i]-d; } sort(val+1,val+1+cnt); cnt=unique(val+1,val+1+cnt)-val; int ans=0; for(int i=1;i<=n;++i){ int x=query(haxi(num[i]+d))-query(haxi(num[i]-d)-1); dp[i]=(x+mod)%mod; ans+=x; add(haxi(num[i]),dp[i]+1); //pf("%d\n",dp[i]); } ans=(ans+mod)%mod; pf("%d\n",ans); }}
阅读全文
0 0
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- hdu
- HDU
- 【mysql】sqlalchemy 对象状态
- Myeclipse快捷键大全
- linux 文件
- Android零基础入门第34节:Android中基于监听的事件处理
- PHP7 下安装 memcache 和 memcached 扩展
- HDU
- 和为S的两个数字
- 鼠标滚动超过1屏显示置顶图标
- 矩阵乘法
- Git 的origin和master分析
- 2017百度之星初赛(B) 1001 Chess(思维+Lucas)
- JAVA笔记-集合
- 合并两个排序的链表
- iOS