HOJ 2275 Number sequence
题意:问你有多少个序列满足Ai < Aj > Ak and i < j < k.
思路:对每个数求它之前和之后分别有多少个个数比它小,两边相乘。最后求和。具体实现先用树状数组正序求,再反过来再用一遍树状数组。
代码:特别要注意的是题目中Ai的范围是从0开始,但是树状数组不能从0开始,所以统一加一处理。但是可惜的是题目并没有出现0这样的数据,让一些并不正确的代码过了。
1 #include<stdio.h> 2 #include<string.h> 3 int lowbit(int x) 4 { 5 return x&-x; 6 } 7 const int N=5e4+111,Max=32769; 8 int c[N],a[N],ans[N],n; 9 void add(int i,int x) 10 { 11 i++; 12 while(i<Max) 13 { 14 c[i]+=x; 15 i+=lowbit(i); 16 } 17 } 18 int q(int i) 19 { 20 i++; 21 int sum=0; 22 while(i) 23 { 24 sum+=c[i]; 25 i-=lowbit(i); 26 } 27 return sum; 28 } 29 int main() 30 { 31 while(scanf("%d",&n)!=EOF) 32 { 33 long long Ans=0; 34 memset(c,0,sizeof(c)); 35 for(int i=1;i<=n;i++) 36 { 37 scanf("%d",&a[i]); 38 ans[i]=q(a[i]-1); 39 add(a[i],1); 40 } 41 memset(c,0,sizeof(c)); 42 for(int i=n;i;i--) 43 { 44 Ans+=ans[i]*q(a[i]-1); 45 add(a[i],1); 46 } 47 printf("%lld\n",Ans); 48 } 49 return 0; 50 }
转载于:https://www.cnblogs.com/L-King/p/5448246.html
HOJ 2275 Number sequence相关推荐
- HDU 1711 Number Sequence(KMP算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 Number Sequence Time Limit: 10000/5000 MS (Java/ ...
- 【HDU】1005 Number Sequence (有点可爱)
http://acm.hdu.edu.cn/showproblem.php?pid=1005 A number sequence is defined as follows: f(1) = 1, f( ...
- HDU 1005 Number Sequence
[题目] Number Sequence Time Limit: 2000/1000 MS (Jav ...
- HDU 1711 -Number Sequence(KMP)
题目 Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 【HDU - 5014】Number Sequence(贪心构造)
题干: There is a special number sequence which has n+1 integers. For each number in sequence, we have ...
- (找循环节)Number Sequence
题目: A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2) ...
- hdu1005 Number Sequence(寻找循环节)
主题链接: huangjing 题意: 就是给了一个公式,然后求出第n项是多少... 思路: 题目中n的范围实在是太大,所以肯定直接递推肯定会超时,所以想到的是暴力打表,找循环节,可是也不是那么eas ...
- HDU.1005 Number Sequence
原题 HDU.1005 Number Sequence 分类 杂题 题意 给定一个数列{an}\left\{ a_n \right\}{an}的前两项a1a_1a1.a2a_2a2,以及其递推公 ...
- UVA10689 Yet another Number Sequence【数列+矩阵快速幂】
Let's define another number sequence, given by the following function: f(0) = a f(1) = b f(n) = f(n ...
最新文章
- 理论计算机科学中最令人困惑的谜题之一被解开
- 解决SpringBoot使用Quartz无法注入Bean的问题
- linux shell编程之菜单选择(二)
- Linux下Bluez的编程实现
- drill apache_Apache Drill:如何创建新功能?
- java中枚举表示数据状态
- java 中传输文件的代码_java文件上传Demo(必看篇)
- ansible的介绍和一些基本模块介绍
- JavaScript笔记杂谈篇(啥都有)
- Discuz的分页函数
- html5分镜头脚本范例,分镜头脚本范本.pdf
- ajax怎么设置地图,通过数据库和ajax方法写出地图的实例代码
- 探秘金山隐私保险箱 (解密出加密的数据)
- 同时校验手机号和座机号
- Oracle 自动存储管理 (ASM)
- python项目之 路由器抓取器
- CAD中如何删除顽固图层?
- 解决pom.xml文件图标变红问题
- 《生物信息学:导论与方法》----变异的功能预测----听课笔记(十一)
- 747D. Winter Is Coming