Codeforces 443B Kuriyama Mirai's Stones
2015-08-05 09:48
344 查看
题目链接:http://codeforces.com/problemset/problem/433/B
题意:给大小为N的序列,M次查询,有2种查询方式,一种是给出区间L和R,问序列中L与R之间所有成员的和,一种是给出L和R,求序列第L大的数到第R大的数之间的成员的和。
思路:刚开始用树状数组解决,然后发现数据太大无法保存,然后发现该题是不用更新维护的,只要做一遍预处理就可以了,然后很蠢的针对第一种询问做了预处理,发现超时,然后才发现要再对第2种查询进行预处理
题意:给大小为N的序列,M次查询,有2种查询方式,一种是给出区间L和R,问序列中L与R之间所有成员的和,一种是给出L和R,求序列第L大的数到第R大的数之间的成员的和。
思路:刚开始用树状数组解决,然后发现数据太大无法保存,然后发现该题是不用更新维护的,只要做一遍预处理就可以了,然后很蠢的针对第一种询问做了预处理,发现超时,然后才发现要再对第2种查询进行预处理
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #define LL long long using namespace std; LL s[100030],a[100030]; int main() { int n,m; while (scanf("%d",&n)!=EOF) { s[0]=0; for (int i=1;i<=n;i++) { scanf("%I64d",&a[i]); s[i]=s[i-1]+a[i]; } a[0]=0; sort(a+1,a+n+1); for (int i=1;i<=n;i++) { a[i]=a[i-1]+a[i]; } scanf("%d",&m); for (int i=0;i<m;i++) { int k,l,r; scanf("%d%d%d",&k,&l,&r); if (k==1) { printf("%I64d\n",s[r]-s[l-1]); } else { LL tem=0; printf("%I64d\n",a[r]-a[l-1]); } } } }
相关文章推荐
- 2015 Multi-University Training Contest 5 1009 MZL's Border
- hdu--5347--2015 Multi-University Training Contest 5--MZL's chemistry
- UVALive 3231 Fair Share
- (FFOS Gecko & Gaia) OTA - 进入Gecko层
- taiping
- Cannot delete or update a parent row: a foreign key constraint fails(......)?
- 【HDU2476】【String painter】
- HDU 5352 MZL's City (2015 Multi-University Training Contest 5)
- scala学习记录之trait
- Attempting to initialize hardware acceleration outside of the main thread 处理
- codeforce Gym 100685E Epic Fail of a Genie(MaximumProduction 贪心)
- 2015 Multi-University Training Contest 5 1007
- HDU1532 Drainage Ditches
- 2015 Multi-University Training Contest 5 1002
- leetcode:Container With Most Water
- 【leetcode】 database Duplicate Emails
- http://blog.csdn.net/a9529lty/article/details/6454156
- Fibonacci again and again(hdu1848+SG打表)
- 2015 Multi-University Training Contest 5
- HDU 5319 Painter