5922. 【NOIP2018模拟10.23】sequence 
(File IO): input:sequence.in output:sequence.out

Time Limits: 1000 ms  Memory Limits: 524288 KB  Detailed Limits  

Goto ProblemSet

Description

小 F 是一位 Hack 国的居民,他生活在一条长度为 n 的街道上,这个街道上总共有 n 个商店。每个商店里售卖着不同的 Hack 技能包,每个商店本身也会有个便利值。初始时,每个商店的便利值均为 0。每一天,街道上都会有一些商店优化改造。
具体来说,对于每一天,优化改造的商店都是一个连续的区间 l ∼ r,每次优化改造也会有一个优化参数 k。对于所有 l ≤ i ≤ r ,第 i 个商店的便利值会增加
aaarticlea/png;base64,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" alt=" " />。

小 F 想知道,m 天之后,每个商店的便利值分别是多少。由于小 F 并不喜欢高精度,因此你只需要输出便利值对 10^9 + 7 取模的结果。

 

Input

从文件sequence.in中读入数据。
第 1 行,两个整数 n, m 表示街道的长度与天数。
接下来的 m 行,每行三个整数 l, r, k,表示第 i 天优化改造的商店区间和优化参数。

Output

输出到文件sequence.out中,共 n 行。
每行 1 个整数,表示第 i 个商店的便利值对 109 + 7 取模的结果。
 

Sample Input

5 3
1 4 3
2 5 0
3 4 2 Sample 2
见选手目录下的sequence/sequence2.in与sequence/sequence2.ans。
该组样例的数据范围同第 1 个测试点。
 

Sample Output

1
5
12
24
1 第 1 次操作之后,每个商店的便利值分别为 1, 4, 10, 20, 0。
第 2 次操作之后,每个商店的便利值分别为 1, 5, 11, 21, 1。
第 3 次操作之后,每个商店的便利值分别为 1, 5, 12, 24, 1。
 
做法(摘自JZOJ):可以发现组合数有一个简单的性质,即 C(n k) = C(n−1 k) + C(n−1 k−1) ,我们可以从这 个式子中获得启发。考虑一个下标从 0 开始的数列,这个数列的每个数均为 1。 我们对这个数列做 k 阶前缀和。通过这个简单的式子,容易发现这个数列的第 i 项即为 C(k+i k ) 。于是我们可以得出一个这样的做法。 对于这个数列,维护这个数列的 k 阶差分。对于一次修改操作,我们只需要 在各阶差分数组上修改,最后做一遍 k 阶的前缀和即可。注意差分数组上修改 时,区间边界要相应地减掉一些值。时间复杂度 O(nk),期望得分 100pts。
 #include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define N 500010
#define rep(i,a,b) for(register int i=a;i<=b;++i)
#define dep(i,a,b) for(register int i=a;i>=b;--i)
using namespace std;
LL mo=1e9+;
int n,m;
LL f[][N],a[N],ans[N];
struct arr{
int l,r,k;
}e[N]; bool cmp(arr x,arr y){
return x.k>y.k;
} int read(){
int s=;
char ch=getchar();
for(;ch<''||ch>'';ch=getchar());
for(;ch>=''&&ch<='';s=s*+ch-'',ch=getchar());
return s;
} int main(){
freopen("sequence.in","r",stdin);
freopen("sequence.out","w",stdout);
n=read(),m=read();
a[]=;
rep(j,,)
rep(i,,n)
a[i]=(a[i]+a[i-])%mo,f[j][i]=a[i];
rep(i,,m) e[i].l=read(),e[i].r=read(),e[i].k=read();
sort(e+,e+m+,cmp);
int l=;
dep(i,e[].k,){
while(l<=m&&e[l].k==i) ++ans[e[l].l],++l;
rep(j,,l-)
ans[e[j].r+]=(ans[e[j].r+]-f[e[j].k-i][e[j].r-e[j].l+])%mo;
rep(j,,n)
ans[j]=(ans[j]+ans[j-]+mo)%mo;
}
rep(i,,n) printf("%lld\n",ans[i]);
}

JZOJ 5922. sequence的更多相关文章

  1. JZOJ 5185. 【NOIP2017提高组模拟6.30】tty's sequence

    5185. [NOIP2017提高组模拟6.30]tty's sequence (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB ...

  2. [JZOJ 5437] [NOIP2017提高A组集训10.31] Sequence 解题报告 (KMP)

    题目链接: http://172.16.0.132/senior/#main/show/5437 题目: 题解: 发现满足上述性质并且仅当A序列的子序列的差分序列与B序列的差分序列相同 于是我们把A变 ...

  3. oracle SEQUENCE 创建, 修改,删除

    oracle创建序列化: CREATE SEQUENCE seq_itv_collection            INCREMENT BY 1  -- 每次加几个              STA ...

  4. Oracle数据库自动备份SQL文本:Procedure存储过程,View视图,Function函数,Trigger触发器,Sequence序列号等

    功能:备份存储过程,视图,函数触发器,Sequence序列号等准备工作:--1.创建文件夹 :'E:/OracleBackUp/ProcBack';--文本存放的路径--2.执行:create or ...

  5. DG gap sequence修复一例

    环境:Oracle 11.2.0.4 DG 故障现象: 客户在备库告警日志中发现GAP sequence提示信息: Mon Nov 21 09:53:29 2016 Media Recovery Wa ...

  6. Permutation Sequence

    The set [1,2,3,-,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  7. [LeetCode] Sequence Reconstruction 序列重建

    Check whether the original sequence org can be uniquely reconstructed from the sequences in seqs. Th ...

  8. [LeetCode] Binary Tree Longest Consecutive Sequence 二叉树最长连续序列

    Given a binary tree, find the length of the longest consecutive sequence path. The path refers to an ...

  9. [LeetCode] Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列

    Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary ...

随机推荐

  1. jsp---tomcat===》》内置对象

    1.内置对象:    request: 方法:getParameter("txtName"):获取和页面上的name属性对象的value值       返回String       ...

  2. Redis入门--(一)简介NoSQL

    1.什么是NoSql? 2.为什么需要NoSQL? 互联网经历了1.0和2.0的发展: web1.0 是早期新浪,雅虎等只能浏览,不能交互: 传统关系型数据库在应付web2.0这种动态网站的时候力不从 ...

  3. The fourteenth day

    A man is not old as long as he is seeking something. A man is not old until regrets take the place o ...

  4. 移动端纯CSS3制作圆形进度条所遇到的问题

    近日在开发的页面中,需要制作一个动态的圆形进度条,首先想到的是利用两个矩形,宽等于直径的一半,高等于直径,两个矩形利用浮动贴在一起,设置overflow:hidden属性,作为盒子,内部有一个与其宽高 ...

  5. While, DoWhile in WorkFlow.

    On 03/03/2010, in 4.0, WF, by bcakiroglu While Activity In a While activity, the activity in the Bod ...

  6. Shader学习笔记整理

    1.常用矩阵 UNITY_MATRIX_V 视口矩阵 UNITY_MATRIX_P 投影矩阵 UNITY_MATRIX_MV 模型矩阵 * 视口矩阵 UNITY_MATRIX_MVP 模型矩阵 * 视 ...

  7. centreon-engine 性能调优

    http://documentation.centreon.com/docs/centreon-engine/en/latest/user/configuration/best_practice.ht ...

  8. Java 开发23种设计模式

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  9. 2017年10月31日结束Outlook 2007与Office 365的连接

    2017 年10月31日 ,微软即将推出 Office 365中Exchange Online邮箱将需要Outlook for Windows的连接,即通过HTTP Over MAPI方式,传统使用R ...

  10. JavaScript 面向对象编程(三):非构造函数对象的继承

    JavaScript 面向对象编程(三):非构造函数对象的继承 一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Chinese ...