cdoj1344卿学姐种美丽的花
地址:http://acm.uestc.edu.cn/#/problem/show/1344
题目:
卿学姐种美丽的花
Time Limit: 8000/4000MS (Java/Others) Memory Limit: 125535/65535KB (Java/Others)
众所周知,在喵哈哈村,有一个温柔善良的卿学姐。
卿学姐喜欢和她一样美丽的花。所以卿学姐家的后院有很多的花坛。
卿学姐有nn个花坛,一开始第ii个花坛里有A[i]A[i]朵花。每过一段时间,卿学姐都会在花坛里种上新的花。
作为一个聪明的学姐,卿学姐的种花方式也是与众不同 , 每一次,卿学姐会在第xx个花坛种上yy朵花,然后在第x+1x+1个花坛上种上y−1y−1朵花,再在第x+2x+2个花坛上种上y−2y−2朵花......以此类推,直到种到最后一个花坛,或者不需要种花为止。
喵哈哈的村民们都喜欢去卿学姐的后院赏花,沈宝宝也不例外。然而沈宝宝可不是省油的灯,怎么可能会老老实实地赏花呢。每次沈宝宝来时,都会随机询问卿学姐在第ii个花坛有多少朵花。
花坛的花实在太多了,卿学姐实在是数不过来。于是现在她向你求助,希望你能帮她数出花坛里多少朵花。
Input
第一行输入两个整数,花坛个数NN和操作次数QQ。
第二行NN个整数A[1],A[2],A[3].....A[N]A[1],A[2],A[3].....A[N]。 ( 1≤A[i]≤2311≤A[i]≤231 )
接下来QQ行,每行一个操作。
1 x y表示卿学姐会在xx号花坛种yy朵花,并按相应的规律在后面的花坛上种花。2 x表示沈宝宝问卿学姐第xx个花坛有多少朵花。
数据保证:
1≤N≤1061≤N≤106
1≤Q≤2∗1061≤Q≤2∗106
对于操作 11 , 1≤x≤N1≤x≤N,1≤y≤1091≤y≤109
对于操作 22 , 1≤x≤N1≤x≤N
Output
对于每个询问操作,按顺序输出答案对772002+233772002+233取模的值。
Sample input and output
| Sample Input | Sample Output |
|---|---|
6 3 |
5 |
思路:
这题之前做过,,所以一看到就去卿学姐的代码搞一发(因为我发现之前提交的代码看不到了,所以就用的卿学姐的)
后来听说会查重,就只好重写了。。
思路:用线段树处理,每个节点记录要加的值,并记录加的次数,然后查询的时候加上原来的数值就好了,不过这题会爆int,重写的时候居然又错了一次,,,,,惨
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <cstdlib>
#include <string>
#include <bitset> #define PI acos((double)-1)
#define E exp(double(1))
#define K 1000000
using namespace std; struct node
{
int left,right;
long long cnt,x; };
struct node tree[*K+];
int a[K+];
void build(int id,int l,int r)
{
tree[id].left=l;tree[id].right=r;
if(l==r)
{
tree[id].x=tree[id].cnt=;
}
else
{
build(*id,l,(l+r)/);
build(*id+,(l+r)/+,r);
}
}
void update(int id,int l,int r,int v)
{
if(tree[id].left ==l && tree[id].right==r)
{
tree[id].x+=v;tree[id].cnt++;
}
else
{
int mid=(tree[id].left+tree[id].right)/;
if (r<=mid) update(id*,l,r,v);
else if(l>mid) update(id*+,l,r,v);
else update(id*,l,mid,v),update(id*+,mid+,r,v-(mid+-l));
}
} long long query(int id,int x)
{
if(tree[id].left==tree[id].right)
return tree[id].x;
long long sum=;
sum+=tree[id].x-(x-tree[id].left)*tree[id].cnt;
int mid=(tree[id].left+tree[id].right)/;
if (x<=mid) return sum+query(id*,x);
else return sum+query(id*+,x);
} int main(void)
{
int n,m;
cin>>n>>m;
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
build(,,n);
while(m--)
{
int op;
scanf("%d",&op);
if(op==)
{
long long x,v,y;
scanf("%lld%lld",&x,&v);
y=v+x-;
if(y>n)y=n;
update(,x,y,v);
}
else
{
int x;
scanf("%d",&x);
printf("%d\n",(a[x]+query(,x))%( + ));
}
}
}
cdoj1344卿学姐种美丽的花的更多相关文章
- CDOJ 1292 卿学姐种花 暴力 分块 线段树
卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一 ...
- cdoj 1328 卿学姐与诡异村庄 Label:并查集 || 二分图染色
卿学姐与诡异村庄 Time Limit: 4500/1500MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- cdoj 1329 卿学姐与魔法 优先队列
卿学姐与魔法 Time Limit: 1200/800MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...
- cdoj 1324 卿学姐与公主 线段树裸题
卿学姐与公主 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit St ...
- UESTC - 1324 卿学姐与公主
题目链接 某日,百无聊赖的卿学姐打开了某11区的某魔幻游戏 在这个魔幻的游戏里,生活着一个美丽的公主,但现在公主被关押在了魔王的城堡中. 英勇的卿学姐拔出利刃冲向了拯救公主的道路. 走过了荒野,翻越了 ...
- CDOJ 1281 暴兵的卿学姐 构造题
暴兵的卿学姐 题目连接: http://acm.uestc.edu.cn/#/problem/show/1281 Description 沈宝宝又和卿学姐开始玩SC2了! 自从沈宝宝学会新的阵型后,就 ...
- cdoj1324卿学姐与公主
地址:http://acm.uestc.edu.cn/#/problem/show/1324 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others) Memo ...
- cdoj1341卿学姐与城堡的墙
地址:http://acm.uestc.edu.cn/#/problem/show/1341 题目: 卿学姐与城堡的墙 Time Limit: 2000/1000MS (Java/Others) ...
- cdoj1329卿学姐与魔法
地址:http://acm.uestc.edu.cn/#/problem/show/1329 题目: 卿学姐与魔法 Time Limit: 1200/800MS (Java/Others) M ...
随机推荐
- Android开发 获取当前activity的屏幕截图(转载)
首先通过下面的函数获取Bitmap格式的屏幕截图: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 pu ...
- 一句话搞定IOS中View的Frame和Bound
就一句话,Frame是父View上看到子View的窗户,Bound是子View上可以被父View看见的内容. 稍微解释下.Frame 指子View在父View中的位置以及大小.由两部分构成,第一部分是 ...
- 嵌入式开发之示波器----tektronix tds2024 的使用
http://jingyan.baidu.com/article/91f5db1bf715c01c7f05e39a.html http://cn.tek.com/learning/oscillosco ...
- VUE:使用vue-cli脚手架无法安装npm install axios 的巨坑
使用命令 npm install axios 安装axios可能会报错,无法引用, 这个时候使用淘宝的镜像cnpm安装就可以了 cnpm install axios 如果没有安装cnpm,执行以下命令 ...
- DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
这个错误是:表处于"装入暂挂"状态. 经多次尝试 总结方法: 1:reorg table <表>: 假如不好使 则下面方法 2,先前尝试装入(LOAD)此表失败.表的状 ...
- 获取WPF的DataGrid控件中,是否存在没有通过错误验证的Cell
/// <summary> /// 获取DataGrid的所有行是否存在验证错误. /// </summary> /// &l ...
- Access 是/否 字段
Microsoft Access 数据库引擎 SQL 数据类型包含由 Microsoft® Jet 数据库引擎定义的 13 种主要数据类型,以及若干可识别为这些数据类型的有效同义词. 其中,在工作中遇 ...
- mysql的增量备份与全备的脚本
mysql全量备份.增量备份.开启mysql的logbin日志功能.在/etc/my.cnf文件中加入以下代码: [mysqld]log-bin = "/home/mysql/logbin. ...
- phantomjs学习之网页访问测速
1.编写loadpage2.js文件: loadpage2.js var page = require('webpage').create(), system = require('system'), ...
- Java 常用语法和数据结构
Collection 首先Java中的collection都是支持泛型和类型安全 由于Java单根继承, 所以不指定, 可以在collection里面放任何对象, collection会都当作obje ...