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

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

Sample Output

  1. 1
  2. 5
  3. 12
  4. 24
  5. 1
  6.  
  7. 1 次操作之后,每个商店的便利值分别为 1, 4, 10, 20, 0
  8. 2 次操作之后,每个商店的便利值分别为 1, 5, 11, 21, 1
  9. 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。
  1. #include <cstdio>
  2. #include <cstring>
  3. #include <iostream>
  4. #include <algorithm>
  5. #define LL long long
  6. #define N 500010
  7. #define rep(i,a,b) for(register int i=a;i<=b;++i)
  8. #define dep(i,a,b) for(register int i=a;i>=b;--i)
  9. using namespace std;
  10. LL mo=1e9+;
  11. int n,m;
  12. LL f[][N],a[N],ans[N];
  13. struct arr{
  14. int l,r,k;
  15. }e[N];
  16.  
  17. bool cmp(arr x,arr y){
  18. return x.k>y.k;
  19. }
  20.  
  21. int read(){
  22. int s=;
  23. char ch=getchar();
  24. for(;ch<''||ch>'';ch=getchar());
  25. for(;ch>=''&&ch<='';s=s*+ch-'',ch=getchar());
  26. return s;
  27. }
  28.  
  29. int main(){
  30. freopen("sequence.in","r",stdin);
  31. freopen("sequence.out","w",stdout);
  32. n=read(),m=read();
  33. a[]=;
  34. rep(j,,)
  35. rep(i,,n)
  36. a[i]=(a[i]+a[i-])%mo,f[j][i]=a[i];
  37. rep(i,,m) e[i].l=read(),e[i].r=read(),e[i].k=read();
  38. sort(e+,e+m+,cmp);
  39. int l=;
  40. dep(i,e[].k,){
  41. while(l<=m&&e[l].k==i) ++ans[e[l].l],++l;
  42. rep(j,,l-)
  43. ans[e[j].r+]=(ans[e[j].r+]-f[e[j].k-i][e[j].r-e[j].l+])%mo;
  44. rep(j,,n)
  45. ans[j]=(ans[j]+ans[j-]+mo)%mo;
  46. }
  47. rep(i,,n) printf("%lld\n",ans[i]);
  48. }

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. List转为DataTable并可以导出为Excel

    using com.jd120.Core.Utility; using System; using System.Collections.Generic; using System.Data; usi ...

  2. java虚拟机之GC(转)

    垃圾回收主要内容: 1. 那些内存需要回收? 2. 什么时候回收? 3. 如何回收? 垃圾回收主要针对运行时数据区那些区域? 运行时数据区的线程私有区域有:虚拟机栈,本地方法栈,程序计数器等: 栈中的 ...

  3. jQuery遍历节点

    html代码 <div> <p>武汉长乐教育</p> <span>在哪才能真正学习会PHP技术?</span> <a href=&qu ...

  4. vue 钩子函数

    beforeRouteEnter 方法名称: beforeRouteEnter 调用时机: 切换路由之前,调用该方法时,页面还没有切换 next调用时机: activated 之后 注意事项: thi ...

  5. oracle基本查询练习

    select * from regions; select * from countries; select * from locations; select * from departments; ...

  6. 用Android studio进行 OpenCV 开发的第一个项目

    我的天! 折腾了好久终于搭建成功了第一个项目. 项目环境: Windows 7  家庭普通版  64位 Android studio 1.5.1 OpenCV-2.4.9-android-sdk 基于 ...

  7. BizMDM企业主数据管理平台

    类型: 定制服务 软件包: business intelligence integrated industry solution collateral 联系服务商 产品详情 解决方案 概要 在全新的数 ...

  8. linux基础命令-文件查看类命令cat/tac/more/less/tail/head

    cat 查看文本文件内容 -b :给每一行编号不包括空白行 -n:给所有行编号 [root@host01 tmp]# cat -An /root/anaconda-ks.cfg # Kickstart ...

  9. IOS 通过 代码 自定义cell(Cell的高度不一致)(优化性能)

    创建cell的步骤 1.新建一个继承自UITabelViewCell的类 2.重写 initWithStyle:ReuseIdentifier: 方法 添加所有需要显示的子控件(不需要设置子控件的数据 ...

  10. eplise中运行提示 A fatal error has been detected by the java runtime environment

    今天一同事出现运行项目时,提示 A fatal error has been detected by the java runtime environment,具体表现是使用我们框架,不能正常的打印日 ...