首页 > 代码库 > 2016icpc沈阳站网络赛 1001&hdu5892 Resident Evil
2016icpc沈阳站网络赛 1001&hdu5892 Resident Evil
题意:区间异或。
分析:用一个long long 存下50种怪物的情况,然后跑一下二维树状数组。
坑:行末有空格。
吐槽:反正我被自己坑了。
/************************************************Author :DarkTongCreated Time :2016/9/18 21:49:37File Name :hdu_5892.cpp*************************************************/#include <bits/stdc++.h>using namespace std;typedef unsigned long long ULL;typedef long long LL;const int INF = 0x3f3f3f3f;const double eps = 1e-9;const int maxn = 3005;LL a[maxn][maxn], b[maxn][maxn], c[maxn][maxn], d[maxn][maxn];int n, m;inline int lowbit(int &x){ return x&-x;}inline void gp(LL e[][maxn], int x, int y, int z){ LL t = (1LL<<z); for(int i=x;i<=n;i+=lowbit(i)) for(int j=y;j<=n;j+=lowbit(j)) e[i][j] ^= t;}//[1-x][1-y]void Update(int x, int y, int z){ gp(a, x, y, z); if(x&1) gp(b, x, y, z); if(y&1) gp(c, x, y, z); if(x&y&1) gp(d, x, y, z);}void Update_T(int x1, int y1, int x2, int y2, int z){ Update(x1, y1, z); Update(x2+1, y1, z); Update(x1, y2+1, z); Update(x2+1, y2+1, z);}inline LL gs(LL e[][maxn], int x, int y){ LL ans = 0; for(int i=x;i>0;i-=lowbit(i)) for(int j=y;j>0;j-=lowbit(j)) ans ^= e[i][j]; return ans;}LL Query(int x, int y){ LL ans = 0; ans ^= (((x+1)&(y+1)&1) ? gs(a, x, y) : 0); ans ^= (((y+1)&1) ? gs(b, x, y) : 0); ans ^= (((x+1)&1) ? gs(c, x, y) : 0); ans ^= gs(d, x, y); return ans;}LL Query_T(int x1, int y1, int x2, int y2) //返回值写错了,查了好久{ LL ans = 0; ans ^= Query(x2, y2); ans ^= Query(x1-1, y2); ans ^= Query(x2, y1-1); ans ^= Query(x1-1, y1-1); return ans;}int main(){ int T, cas=1; scanf("%d%d", &n, &m); char op[5]; int x1, x2, y1, y2, k, a, b; while(m--) { scanf("%s%d%d%d%d", op, &x1, &y1, &x2, &y2); if(op[0]==‘P‘) { scanf("%d", &k); while(k--) { scanf("%d%d", &a, &b); if(b&1) Update_T(x1, y1, x2, y2, a-1); } } else { LL ans = Query_T(x1, y1, x2, y2); for(int i=0;i<50;++i) printf("%d ", ((ans>>i)&1LL) ? 2 : 1); puts(""); } } return 0;}
2016icpc沈阳站网络赛 1001&hdu5892 Resident Evil
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。