ZZUOJ10471: 数列游戏 I(差分数列)
来源:互联网 发布:北京seo整站优化方案 编辑:程序博客网 时间:2024/05/16 08:31
10471: 数列游戏 I
Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 63 Solved: 13
[Submit][Status][Web Board]
Description
给定一个长度为N的序列,首先进行A次操作,每次操作在Li和Ri这个区间加上一个数Ci。然后有B次询问,每次询问Li到Ri的区间和。
初始序列都为0。
Input
第一行一个整数T,表示有T组数据。
对于每组数据,第一行三个整数N A B。(1<=N<=1000000,1<=A<=N,A<=B<=N)
接下来A行,每行三个数Li Ri Ci。(1<=Li<=N,Li<=Ri<=N,|Ci|<=100000000000000)。
接下来B行,每行两个数 Li Ri。范围同上。
Output
对于每次询问,输出一行一个整数。因为最后的结果可能很大,请对结果mod 1000000007。
Sample Input
15 1 11 3 11 4
Sample Output
3
HINT
Source
Raywzy
# include <iostream># include <cstring># include <cstdio># include <algorithm># define INF 0x3f3f3f3fconst long long MOD = 1000000007;using namespace std;long long arr[1000001], s[1000001], c;int main(){ int t, n, a, b, l, r; scanf("%d",&t); while(t--) { memset(arr, 0, sizeof(arr)); memset(s, 0, sizeof(s)); scanf("%d%d%d",&n,&a,&b); while(a--) { scanf("%d%d%lld",&l,&r,&c); arr[l] = (arr[l] + c) % MOD; arr[r+1] = (arr[r+1] - c) % MOD; } for(int i=1; i<=n; ++i) { arr[i] = (arr[i] + arr[i-1])% MOD;//复原数组 s[i] = (s[i-1] + arr[i]) % MOD;//前缀和 } while(b--) { scanf("%d%d",&l,&r); printf("%lld\n",((s[r]-s[l-1])%MOD+MOD)%MOD); } } return 0;}
0 1
- ZZUOJ10471: 数列游戏 I(差分数列)
- zzuoj-10471: 数列游戏 I(差分数组+前缀和)
- FIBS与差分数列
- UVALive 4119 Always an integer(差分数列+模拟)
- 差分数列中的对数螺线性质
- hdu 1799 组合 差分数列
- 【例题】【差分数组】NKOJ3754 数列游戏
- 6th 【差分数组】数列游戏
- [CF 295A]Grag and Array[差分数列]
- 【HDU】4834 JZP Set 二重差分数列
- 分数数列
- 1099 分数数列求和(2)
- 1102 分数数列求和(5)
- 差比数列通解(1.6)
- bzoj 3043 数列操作(差分)
- [CF 276C]Little Girl and Maximum Sum[差分数列]
- zzuli 1919 (二分法 分数列 )
- 1101 分数数列求和
- [Android]Delphi/C++ Builder 开发 Android 程序启动画面简单完美解决方案
- AndroidStudio引用类库方式
- tomcat结合nginx使用小结
- GIMR (Management Database) Registers Into Same Service that the Database Instance also registers On
- PostgreSQL的.NET驱动程序Npgsql中参数对象的一个Bug
- ZZUOJ10471: 数列游戏 I(差分数列)
- Myeclipse 未响应异常01
- 数组指针和指针数组实例辨析
- java虚拟机垃圾回收算法剖析
- Enterprise Architect 修改模板,适应mysql生成ddl
- [BZOJ2187][fraction][类欧几里得算法]
- mysql cursor游标的使用,实例
- opencv分rgb显示
- Android开发环境搭建