bzoj1411
来源:互联网 发布:软件下载官方网站排行 编辑:程序博客网 时间:2024/06/05 14:40
这种规律题一般和二进制有关所以是考虑2^k的关系,然后注意到分奇偶考虑更简单
但是我怎么都过不了,一直re不知为何。。
错误代码:待填坑:
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n;long long t;int a[2][220000];int c(long long kk){return (kk%(2*n)+ (2*n)) % (2*n);}void change(long long t,long long temp,int &kind){if (t == 0)return;for (int i = 0; i < 2*n; i += 2){int left = c(i - temp); int right = c(i + temp);a[kind^1][i] = a[kind][left] ^ a[kind][right];}t -= temp; temp <<= 1;while (t%temp != 0){temp <<= 1;}kind ^= 1;change( t, temp,kind);}//1152921504606846975int main(){//cout << (2 & (-2)) << endl;scanf("%d%lld", &n, &t);for (int i = 0; i < 2 * n; i++){if (i % 2 == 0)a[0][i] = rand() % 2;//scanf("%d", &a[0][i]);a[0][i]--; a[1][i]--;}int kkk = 0;if (t % 2){t--;change( t, t&(-t),kkk);for (int i = 1; i <2*n; i += 2)a[kkk^1][i] = a[kkk][c(i - 1)] ^ a[kkk][c(i + 1)];for (int i = 0; i <2*n; i += 2)a[kkk^1][i] = -1;kkk ^= 1;}elsechange( t, t&(-t),kkk);for (int i = 0; i <2*n; i++){if (i != 2 * n - 1)printf("%d ", a[kkk][i] + 1);elseprintf("%d", a[kkk][i] + 1);}printf("\n");return 0;}
阅读全文
0 0
- bzoj1411
- bzoj1411: [ZJOI2009]硬币游戏
- bzoj1411 硬币游戏 分治
- bzoj1411: [ZJOI2009]硬币游戏
- bzoj1411 [ZJOI2009]硬币游戏
- bzoj1411: [ZJOI2009]硬币游戏
- bzoj1411: [ZJOI2009]硬币游戏 找规律神题
- andrid 使用handler制作的定时器例子
- 常用8个搜索技巧
- 重新定义继承而来的缺省参数值导致的问题
- POJ 1144 Network 求割点
- Java NIO 详解
- bzoj1411
- 在一个普通的html文件中引入es6
- 判断 SharedPreferences 是否是第一次登录
- mysql、oracle、sqlserver根据对应的表查询表中的所有字段名称、类型、别名、长度等信息
- TensorFlow中CNN的两种padding方式“SAME”和“VALID”
- Spring使用Cache、整合Ehcache
- Arrays.asList方法
- 『 Spark 』6. 深入研究 spark 运行原理之 job, stage, task
- 关于go的第三方包go-sqlite3的安装