NYOJ 228士兵杀敌(五)(数组的巧妙应用)
2013-07-19 10:31
197 查看
士兵杀敌(五)
时间限制:2000 ms | 内存限制:65535 KB输入只有一组测试数据第一行是三个整数N,C,Q(1<=N,C,Q<=1000000),其中N表示士兵的总数。
随后的C行,每行有三个整数Mi,Ni,Ai(0<=Mi<=Ni<=N,0<=Ai<=100),表示从第Mi号到第Ni号士兵所有人平均增加了Ai的军功。
再之后的Q行,每行有两个正正数m,n,表示南将军询问的是第m号士兵到第n号士兵。输出请对每次询问输出m号士兵到第n号士兵的总军功数,由于该数值可能太大,请把结果对10003取余后输出样例输入
5 3 2 1 3 2 2 4 1 5 5 10 1 5 2 3
样例输出
19 6
#include<cstdio> #define Max 1000005 int a[Max]; int main() { //freopen("in.txt","r",stdin); int i,N,C,Q,L,R,D; scanf("%d%d%d",&N,&C,&Q); for(i=0; i<C; i++) { scanf("%d%d%d",&L,&R,&D); a[L] += D; a[R+1] -= D; } for(i=1; i<=N; i++)//求每个元素的值 a[i]+=a[i-1]; for(i=1;i<=N;i++)//求前i项和 a[i]=(a[i-1]+a[i])%10003; while(Q--) { scanf("%d%d",&L,&R); printf("%d\n",(a[R]-a[L-1]+10003)%10003); } return 0; }
View Code
相关文章推荐
- nyoj228 士兵杀敌五(数组的巧妙运用)
- nyoj 士兵杀敌(五) 228 (数组灵活运用) 好题
- nyoj228 士兵杀敌(五) (数组)
- nyoj ACM:士兵杀敌(五)(数组的巧妙运用)
- NYOJ 228 士兵杀敌(五)(数组灵活运用)
- NYOJ 228 士兵杀敌系列
- nyoj 123 士兵杀敌(四)(树状数组——插线问点)
- nyoj 228 士兵杀敌(五)
- NYOJ 228 士兵杀敌(五)
- nyoj 228 士兵杀敌(五)
- NYOJ-228 士兵杀敌(五) (思维)
- nyoj228 士兵杀敌(5)插线问线
- nyoj 123 士兵杀敌(四)(树状数组——插线问点)
- NYOj-228-士兵杀敌(五)
- NYOJ 228 士兵杀敌系列
- nyoj 228 士兵杀敌(五)
- NYOJ228 士兵杀敌(五)(思路)
- nyoj 123 士兵杀敌(四)<经典树状数组---插线求点>
- 【树状数组】nyoj 116 123 士兵杀敌
- nyoj 123 士兵杀敌(四)(树状数组——插线问点)