1 条题解
-
0
P12751
前言
建议题目名变成【模板】根号分治。
思路
一眼根号分治。
考虑对于所有 ,因为总修改点数至多 ,所以暴力修改;
对于所有 ,因为 不同的修改至多 ,所以对于每一种 差分修改,前缀和合并时跳着合并。
代码
#include<bits/stdc++.h> using namespace std; int t[114514][120],ans[114514]; main(){ int n,m,bl=114; cin>>n>>m; for(int i=1,a,l,d;i<=m;i++){ cin>>a>>l>>d; if(d>bl)while(l--)ans[a+l*d]++; else t[a][d]++,t[a+l*d][d]--; } for(int d=1;d<=bl;d++){ for(int i=d;i<=n;i++)t[i][d]+=t[i-d][d]; for(int i=1;i<=n;i++)ans[i]+=t[i][d]; } for(int i=1;i<=n;i++){ cout<<ans[i]<<" "; } return 0; }
- 1
信息
- ID
- 6175
- 时间
- 1000ms
- 内存
- 228MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者