地址:http://acm.uestc.edu.cn/#/problem/show/1344

题目:

卿学姐种美丽的花

Time Limit: 8000/4000MS (Java/Others)     Memory Limit: 125535/65535KB (Java/Others)
Submit Status

众所周知,在喵哈哈村,有一个温柔善良的卿学姐。

卿学姐喜欢和她一样美丽的花。所以卿学姐家的后院有很多的花坛。

卿学姐有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. 1 x y 表示卿学姐会在xx号花坛种yy朵花,并按相应的规律在后面的花坛上种花。

  2. 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
1 2 3 2 1 2
1 2 3
2 3
2 6
5
2

思路:

这题之前做过,,所以一看到就去卿学姐的代码搞一发(因为我发现之前提交的代码看不到了,所以就用的卿学姐的)

后来听说会查重,就只好重写了。。

思路:用线段树处理,每个节点记录要加的值,并记录加的次数,然后查询的时候加上原来的数值就好了,不过这题会爆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卿学姐种美丽的花的更多相关文章

  1. CDOJ 1292 卿学姐种花 暴力 分块 线段树

    卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一 ...

  2. cdoj 1328 卿学姐与诡异村庄 Label:并查集 || 二分图染色

    卿学姐与诡异村庄 Time Limit: 4500/1500MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  ...

  3. cdoj 1329 卿学姐与魔法 优先队列

    卿学姐与魔法 Time Limit: 1200/800MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...

  4. cdoj 1324 卿学姐与公主 线段树裸题

    卿学姐与公主 Time Limit: 2000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit St ...

  5. UESTC - 1324 卿学姐与公主

    题目链接 某日,百无聊赖的卿学姐打开了某11区的某魔幻游戏 在这个魔幻的游戏里,生活着一个美丽的公主,但现在公主被关押在了魔王的城堡中. 英勇的卿学姐拔出利刃冲向了拯救公主的道路. 走过了荒野,翻越了 ...

  6. CDOJ 1281 暴兵的卿学姐 构造题

    暴兵的卿学姐 题目连接: http://acm.uestc.edu.cn/#/problem/show/1281 Description 沈宝宝又和卿学姐开始玩SC2了! 自从沈宝宝学会新的阵型后,就 ...

  7. cdoj1324卿学姐与公主

    地址:http://acm.uestc.edu.cn/#/problem/show/1324 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others)     Memo ...

  8. cdoj1341卿学姐与城堡的墙

    地址:http://acm.uestc.edu.cn/#/problem/show/1341 题目: 卿学姐与城堡的墙 Time Limit: 2000/1000MS (Java/Others)    ...

  9. cdoj1329卿学姐与魔法

    地址:http://acm.uestc.edu.cn/#/problem/show/1329 题目: 卿学姐与魔法 Time Limit: 1200/800MS (Java/Others)     M ...

随机推荐

  1. js利用时间戳动态显示系统时间距指定时间的时间差

    function dateTimes(times) { var d = new Date(times * 1000); var date = (d.getFullYear()) + "-&q ...

  2. Tensorflow之计算tensor平均值

    https://www.tensorflow.org/versions/r0.12/api_docs/python/math_ops.html#reduce_mean tf.reduce_mean(i ...

  3. redis php 实例一

    下面的例子都是基于php-redis这个扩展的. 1,connect 描述:实例连接到一个Redis. 参数:host: string,port: int 返回值:BOOL 成功返回:TRUE;失败返 ...

  4. Linux动态库搜索路径的技巧

    众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib.动态库被创建后,一般都复制到这两个目录中.当程序执行时需要某动态库,并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径 ...

  5. poj 1129(dfs+图的四色定理)

    题目链接:http://poj.org/problem?id=1129 思路:根据图的四色定理,最多四种颜色就能满足题意,使得相邻的两部分颜色不同.而最多又只有26个点,因此直接dfs即可. #inc ...

  6. PowerDesigner使用教程3

    from:http://www.cnblogs.com/langtianya/archive/2013/03/08/2949118.html PowerDesigner是一款功能非常强大的建模工具软件 ...

  7. 关于sqlSessionTemplate

    SqlSessionTemplate是MyBatis-Spring的核心.这个类负责管理MyBatis的SqlSession,调用MyBatis的SQL方法,翻译异常.SqlSessionTempla ...

  8. HTML-CSS文件链接HTML的三种方式

    <!--css文本的链接方式有三种:分别是内联定义.链入内部css.和链入外部css--> <!--1.代码为:--> <!--<html> <head ...

  9. android 127.0.0.1/localhost connection refused,在模拟器上应该用10.0.2.2访问你的电脑本机

    调试中通过android simulator模拟器链接localhost或者127.0.0.1,因为我在电脑上面建立了apache,我的代码大概就是URL url = new URL(urlStrin ...

  10. 搭建一个简单的基于web的网络流量监控可视化系统

    本文转载于我的个人博客,转载请标明出处. 初衷 在腾讯云的学生认证申请提交上去n天之后,终于得到了审批,所以迫不及待的想玩玩腾讯云,作为一个搞网络的,自然有一些关于网络应用的小玩意,所以把以前部署过的 ...