SPOJ7259(Light Switching)
数学模型:
维持一个01序列,支持2种操作:
1、将给定区间内的数取反;
2、查询给定区间内1的个数。
这题就是“暑假集训每日一题0712”的简化版
#include <stdio.h> #define N 100001 int n,m,ans; int sum[4*N],rev[4*N]; void update(int cur) {int ls=cur<<1,rs=cur<<1|1;sum[cur]=sum[ls]+sum[rs]; } void pushdown(int cur,int x,int y) {int mid=(x+y)>>1,ls=cur<<1,rs=cur<<1|1;if(rev[cur]){sum[ls]=mid-x+1-sum[ls];sum[rs]=y-mid-sum[rs];rev[ls]^=1;rev[rs]^=1;rev[cur]=0;} } void build(int cur,int x,int y) {int mid=(x+y)>>1,ls=cur<<1,rs=cur<<1|1;sum[cur]=rev[cur]=0;if(x==y) return;build(ls,x,mid);build(rs,mid+1,y); } void reverse(int cur,int x,int y,int s,int t) {int mid=(x+y)>>1,ls=cur<<1,rs=cur<<1|1;if(x>=s && y<=t){rev[cur]^=1;sum[cur]=y-x+1-sum[cur];return;}pushdown(cur,x,y);if(mid>=s) reverse(ls,x,mid,s,t);if(mid+1<=t) reverse(rs,mid+1,y,s,t);update(cur); } void query(int cur,int x,int y,int s,int t) {int mid=(x+y)>>1,ls=cur<<1,rs=cur<<1|1;if(x>=s && y<=t){ans+=sum[cur];return;}pushdown(cur,x,y);if(mid>=s) query(ls,x,mid,s,t);if(mid+1<=t) query(rs,mid+1,y,s,t); } int main() {int i,opt,x,y;while(~scanf("%d%d",&n,&m)){build(1,1,n);for(i=0;i<m;i++){scanf("%d%d%d",&opt,&x,&y);if(opt){ans=0;query(1,1,n,x,y);printf("%d\n",ans);}else reverse(1,1,n,x,y);}}return 0; }
转载于:https://www.cnblogs.com/algorithms/archive/2012/07/12/2588020.html
SPOJ7259(Light Switching)相关推荐
- 洛谷P2826 [USACO08NOV]光开关Light Switching [2017年6月计划 线段树02]
P2826 [USACO08NOV]光开关Light Switching 题目描述 Farmer John tries to keep the cows sharp by letting them p ...
- POJ 3553 Light Switching Game 博弈论 nim积 sg函数
http://poj.org/problem?id=3533 变成三维的nim积..前面hdu那个算二维nim积的题的函数都不用改,多nim积一次就过了...longlong似乎不必要但是还是加上了 ...
- SPOJ 7259 Light Switching (水题,区间01取反)
#include <iostream> #include <stdio.h> #include <algorithm> #define lson rt<< ...
- 博弈论探讨及题目总结
转载自爱神博客:http://blog.csdn.net/acm_cxlove/article/details/7854526 首先当然要献上一些非常好的学习资料: 基础博弈的小结:http://bl ...
- (转载)--SG函数和SG定理【详解】
在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...
- 组合博弈游戏 - SG函数和SG定理
转载来自:http://blog.csdn.net/luomingjun12315/article/details/45555495 在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜 ...
- 组合游戏 - SG函数和SG定理
在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...
- 语法入门*算法入门题单
作者:王清楚 链接:https://ac.nowcoder.com/discuss/817596?type=101&order=0&pos=1&page=4&chann ...
- 【新手上路】语法入门算法入门题单
作者:王清楚 链接:[新手上路]语法入门&算法入门题单_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网 来源:牛客网 介绍:本题单分为语法入门和算法 ...
- SG函数和SG定理【详解】
在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...
最新文章
- 2014/08/13 – Backbonejs
- 科来数据包生成器找不到网卡_CPU:网卡老哥,你到底怎么工作的?
- Qt|C++工作笔记-QVector与Vector去重复的值
- 杭电2078复习时间
- 保密作战--在网络上隐藏自己
- Java 8 时间日期库的20个使用演示样例
- pdf expert使用教程:如何在mac上给PDF怎么调整页面顺序
- linux队列运行任务查看,Linux work queue工作队列小结与使用
- 飞机订票系统- c语言课程设,C语言课程设计飞机订票系统设计
- E680I使用上的常见问题小结
- 数据分析的价值是什么?如何做好数据分析?
- Unity3D中如何制作身临其境的3d音效
- androidnbsp;网络联接nbsp;CMWAPnbsp;CTWAP
- 圣帕特里克 VoxEdit 大赛
- 网线 绿灯长亮 黄灯不亮
- 在天堂与地狱之间——清华浪子梦断中关村 (转)
- SAP vf11发票冲销
- BOS金蝶云星空开发简单账表
- HCL Nomad 1.0.9中的新功能
- 手机token登入软件_app开发调试工具_app开发token使用