Neko

CF1293C NEKO's Maze Game

北城以北 提交于 2020-01-21 19:09:01
题目链接: CF1293C code: # include <bits/stdc++.h> using namespace std ; const int maxn = 1e5 + 10 ; bitset < maxn > m1 , m1l , m1r , m2 ; int main ( ) { ios :: sync_with_stdio ( false ) ; int n , q ; int r , c ; cin >> n >> q ; int i ; for ( i = 0 ; i < q ; i ++ ) { cin >> r >> c ; if ( r == 1 ) { m1 . flip ( c ) ; if ( c > 1 ) m1l . flip ( c - 1 ) ; if ( c < n ) m1r . flip ( c + 1 ) ; } else m2 . flip ( c ) ; if ( ( m1 & m2 ) . none ( ) && ( m1l & m2 ) . none ( ) && ( m1r & m2 ) . none ( ) ) { cout << "YES" << endl ; } else { cout << "NO" << endl ; } } return 0 ; } 来源: CSDN 作者: jiangxiaoju 链接:

题解 CF1292A 【NEKO's Maze Game】

雨燕双飞 提交于 2020-01-20 09:38:44
有一个结论: 当 \((1,1)\) 不能抵达 \((2,n)\) 时,必定存在一个点对,这两个点的值均为真,且坐标中的 \(x\) 互异, \(y\) 的差 \(\leq 1\) 这个结论的正确性感觉非常显然,就不多说了。 下图可以形象地解释点对的位置关系。 那对于每个点的值,只要开一个数组 f[i][j] 记录一下即可。 有了上述结论,我们记一个变量 \(cnt\) 表示 " 有多少对满足上述结论的点对 " ,则 \(cnt=0\) 时, \((1,1)\) 可以抵达 \((2,n)\) ,反之不可抵达。重点在于如何维护 \(cnt\) 。 对于每次反转的点 \((x,y)\) ,我们都需要往 \(cnt\) 里 扣除 \(/\) 补上 \((x,y)\) 的贡献,具体的:(为了方便异或 \(x\) 从 \(0\) 到 \(1\) 若 \(f[x][y]=1\) ,令 \(cnt-=f[x \ xor \ 1][y-1]+f[x \ xor \ 1][y]+f[x \ xor \ 1][y+1]\) , \(f[x][y]=0\) 若 \(f[x][y]=0\) ,令 \(cnt+=f[x \ xor \ 1][y-1]+f[x \ xor \ 1][y]+f[x \ xor \ 1][y+1]\) , \(f[x][y]=1\) 这样就可以起到维护 \(cnt\) 的效果了

CodeForces 1292A NEKO's Maze Game(思维)

泄露秘密 提交于 2020-01-20 00:59:13
1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <string> 5 #include <math.h> 6 #include <algorithm> 7 #include <vector> 8 #include <stack> 9 #include <queue> 10 #include <set> 11 #include <map> 12 #include <sstream> 13 #include <ctime> 14 const int INF=0x3f3f3f3f; 15 typedef long long LL; 16 const int mod=1e9+7; 17 const LL MOD=1e9+7; 18 const double PI = acos(-1); 19 const double eps =1e-8; 20 #define Bug cout<<"---------------------"<<endl 21 const int maxn=1e5+10; 22 using namespace std; 23 24 map<pair<int,int>,int> mp; 25 26 int main() 27 { 28 #ifdef DEBUG 29

apolloxlua 源码内使用macros

倾然丶 夕夏残阳落幕 提交于 2019-12-06 06:36:17
本文讲解如何在两种模式下使用macros,首先在apolloxlua下有两种模式, 一种是 web模式另一种是工具模式。 web模式下我们可以在浏览器端来使用,但是有一些限制, 就是比如说某些native的api是无法使用的, 比如说ngx,redis,mysql这种。示例请看 web控制台示例 。而另外一种工具模式, 工具模式没有使用限制。 我们在处理某个领域的问题时候, 会用到条件编译。 条件编译会减少我们代码的体积和增加程序的灵活性。 比如这个示例中展示了如何使用: macros 宏使用的语法: 1 宏注释 {% if SCRIPT == "lua" then %} return exports.GetValueByType (eax.value); {% end %} {% if SCRIPT == "neko" then %} return exports.GetValueByType (eax.value); {% end %} {% if SCRIPT == "c" then %} return exports.GetValueByType (eax.value); {% end %} 2 inline macro {-inline_listense-} Copyright (c) 2018 agent.zy@aliyun.com {-inline_listense-