博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu2227 树状数组
阅读量:5881 次
发布时间:2019-06-19

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

1 #include
2 #include
3 #define MOD 1000000007 4 __int64 ans[100005],c[100005]; 5 int a[100005],wei[100005],n; 6 void sort(int l,int r) 7 { 8 int i,j,x,y,x1; 9 x=a[(l+r)/2]; x1=wei[(l+r)/2];10 i=l; j=r;11 while (i<=j)12 {13 while (a[i]
x1)) j--;15 if (i<=j)16 {17 y=a[i]; a[i]=a[j]; a[j]=y;18 y=wei[i]; wei[i]=wei[j]; wei[j]=y;19 i++; j--;20 }21 }22 if (i
0){33 ret=(ret+c[x])%MOD;34 x-=lowbit(x);35 }36 return ret;37 }38 void add(int x,__int64 d)39 {40 while (x<=n){41 c[x]=(c[x]+d)%MOD;42 x+=lowbit(x);43 }44 }45 int main()46 {47 int i;48 __int64 aa;49 while (~scanf("%d",&n))50 {51 for (i=1;i<=n;i++) 52 {53 scanf("%d",&a[i]);54 ans[i]=1; wei[i]=i;55 }56 sort(1,n);57 memset(c,0,sizeof(c));58 for (i=1;i<=n;i++)59 {60 ans[wei[i]]=(1+sum(wei[i]-1))%MOD;61 add(wei[i],ans[wei[i]]);62 63 }64 printf("%I64d\n",sum(n));65 }66 }

转载于:https://www.cnblogs.com/xiao-xin/articles/3848893.html

你可能感兴趣的文章
for/foreach/linq执行效率测试
查看>>
js /jquery停止事件冒泡和阻止浏览器默认事件
查看>>
长春理工大学第十四届程序设计竞赛(重现赛)I.Fate Grand Order
查看>>
好作品地址
查看>>
[翻译]Protocol Buffer 基础: C++
查看>>
runloop与线程的关系
查看>>
[Bzoj2246]迷宫探险(概率+DP)
查看>>
详解消息队列的设计与使用
查看>>
使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误
查看>>
控制子窗口的高度
查看>>
处理 Oracle SQL in 超过1000 的解决方案
查看>>
Alpha线性混合实现半透明效果
查看>>
chkconfig 系统服务管理
查看>>
一个简单的运算表达式解释器例子
查看>>
ORACLE---Unit04: SQL(高级查询)
查看>>
Entity Framework Code First 模式-建立多对多联系
查看>>
[LeetCode] Reverse Lists
查看>>
前台页面之<base>标签
查看>>
angular分页插件tm.pagination 解决触发二次请求的问题
查看>>
day08-文件操作
查看>>