BZOJ4216【Pig】
来源:互联网 发布:淘宝网的域名怎么设置 编辑:程序博客网 时间:2024/05/21 18:50
Description
红学姐和黄学长是好朋友。
有一天,黄学长想吃猪肉丸,于是他去找红学姐买猪。红学姐到她的猪圈中赶猪的
时候发现有许多猪逃离了她的猪圈。同时红学姐发现,一个名叫wwf的魔法猪藏在某
个猪圈中施法。然而wwf实在太巨了,红学姐并没有办法捉住它,只好向方老师求救。
为了确定wwf的位置,方老师向红学姐提出了m组询问,每次询问标号在区间[l,r]内
的猪圈剩余的猪的数量和,但红学姐不屑于做这些简单的问题,就把它们交给了你,同
时给了你一台内存较小的电脑。
由于wwf施展了一些奇怪的魔法,所以猪圈中猪的数量可能是负数。
Input
第一行两个正整数n,m,t。n表示猪圈数,m表示询问数,t=0表示方老师没有对询问进行加密,t=1表示方老师对询问进行了加密,解密方法如下:
其中^表示异或操作,last_ans表示上一次询问的答案,对于第一次询问,last_ans=0。
第二行n个整数,第i个整数x[i]表示标号为i的猪圈中剩余猪的数量。
接下来m行每行两个正整数l,r表示一组询问。
Output
输出m行,第i行表示第i个询问的答案
Sample Input
5 5 1
1 3 -4 5 -3
3 4
1 1
2 3
2 4
3 5
Sample Output
2
5
-1
5
4
HINT
N,M<=500000,|x[i]|<=8000000
分块乱搞
啦啦啦,乱搞到第一页了
/************************************************************** Problem: 4216 User: Venishel Language: C++ Result: Accepted Time:2668 ms Memory:2852 kb****************************************************************/#include<cstdio>#define maxn 10010int a[500010];long long s[maxn];int n,T,t;long long ans,sum;inline void swap(int &x, int &y) { x^=y; y^=x; x^=y; }int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int main(){ n = read(), T = read(), t = read(); for ( int i=1;i<=n;i++) a[i] = read(); sum = 0; for ( int i = 1 ; i <= n; i++){ sum += a[i]; if ( i % 55 == 0 ) s[ i / 55 ] = sum; } while ( T-- ){ int l,r; l = read(), r = read(); if ( ans < 0 ) ans = -ans; if (t) l = ( (long long)l ^ ans ) % n + 1 , r = ( (long long) r ^ ans ) % n + 1; if ( l > r ) swap( l, r); l--; ans = s[ r / 55 ] - s[ l / 55 ]; for (int i = 1; i <= r % 55; i++ ) ans += a[ ( r / 55 ) * 55 + i ]; for (int i = 1; i <= l % 55; i++ ) ans -= a[ ( l / 55 ) * 55 + i ]; printf( "%lld\n", ans); } return 0;}
阅读全文
0 0
- 【BZOJ4216】Pig
- bzoj4216: Pig
- BZOJ4216【Pig】
- 【bzoj4216】 Pig 乱搞
- [BZOJ4216]Pig(分块)
- 【分块】BZOJ4216 Pig
- BZOJ4216 Pig 解题报告【卡空间】【数据结构】【分块】
- bzoj4216 -- 分块
- pig
- pig
- Pig
- Pig
- Pig
- Pig
- Pig
- pig
- 【pig】pig脚本规范
- plasma PIG
- 将需要人为触发的事件放在定时器或者循环中,程序有可能产生Bug
- POI操作Excel
- 【玩转Eclipse】——eclipse实现代码块自定义折叠---[类似于VS中的#region……#endregion]
- 《剑指offer》笔记-第4章(2)
- 多维动态规划 (共六题)
- BZOJ4216【Pig】
- Android实现照相机拍照
- Java中的堆和栈
- 侧边悬浮框
- Linux问题—设置“进程最大可打开的文件数”永久有效的方式
- 下列有关静态成员函数的描述中,正确的是:
- php+html 表单提交数据保存到mysql中
- Mybatis Generator的model生成中文注释,支持oracle和mysql(通过修改源码的方式来实现)
- android 一个视频播放的demo