题面

有这么一类题,它让你求一个0/1环经过T轮周围异或过程之后的样子。

周围异或即 a[i][k] = a[i-1][k-1] ^ a[i-1][k+1] ,其中第一维表示轮数,第二维表示位置。

千万不要往组合数二项式定理想,因为这种题就是个套路。。。。。。

我们发现 ,经过 2^j轮之后,a[i][k] = a[i-2^j][k-2^j] ^ a[i-2^j][k+2^j],至于证明可以尝试画图&数学归纳。

显然周围异或的过程是满足结合律的,所以我们直接倍增即可。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=100005; int s[2][N],n,now,pre;
ll T; inline void read(){
char ch=getchar();
while(ch!='0'&&ch!='1') ch=getchar();
for(int i=1;i<n;i++,ch=getchar()) s[0][i-1]=ch-'0';
s[0][n-1]=ch-'0';
} inline int add(int x,int y){ x+=y; return x>=n?x-n:x;} int main(){
scanf("%d%lld",&n,&T);
read(); for(int i=1,l,r;T;T>>=1,i=add(i,i))
if(T&1){
pre=now,now^=1;
l=n-i,r=i;
if(l==n) l=0; for(int j=0;j<n;j++,l=add(l,1),r=add(r,1)) s[now][j]=s[pre][l]^s[pre][r];
} for(int i=0;i<n;i++) putchar(s[now][i]==1?'1':'0');
return 0;
}

  

[CCC 2016] 生命中的圆的更多相关文章

  1. ASP.NET 页面生命中的关键事件的执行顺序

    表 1:ASP.NET 页面生命中的关键事件 阶段 页面事件 可覆盖的方法 页面初始化 Init   加载视图状态   LoadViewState 处理回发数据   任意实现 IPostBackDat ...

  2. 计算机图形学(二)输出图元_6_OpenGL曲线函数_2_中点画圆算法

    中点画圆算法        如同光栅画线算法,我们在每一个步中以单位间隔取样并确定离指定圆近期的像素位置.对于给定半径r和屏幕中心(xc,yc),能够先使用算法计算圆心在坐标原点(0, 0)的圆的像素 ...

  3. opencv中画圆circle函数和椭圆ellipse函数

    1.      void ellipse(InputOutputArray img, Point center, Size axes, double angle, double startAngle, ...

  4. LOJ#2799. 「CCC 2016」生命之环

    题意 给你一个 \(n\) 个 \(\rm 01\) 组成的环,每次操作之后每个位置为1当且仅当他的左右恰好有1个1.输出进行 \(T\) 次操作之后的环. \(n\leq 10^5, T\leq 1 ...

  5. html 表格中添加圆

    效果: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" con ...

  6. 【Java学习经历系列-1】19岁的我,没遇见生命中的她,却遇见了java

    [写在前面]正直青春年少的你,遇到了你的她了吗?还是你也和我们今天的主人公一样,在最美好的年级,正在为你的初衷努力着,坚持着,奔波着..... 作者:李伟   我的黑客时代 01 大学专业是电子信息工 ...

  7. 在 SharePoint Server 2016 本地环境中设置 OneDrive for Business

    建议补丁 建议在sharepoint2016打上KB3127940补丁,补丁下载地址 https://support.microsoft.com/zh-cn/kb/3127940 当然不打,也可以用O ...

  8. WebGIS中基于AGS的画圆查询简析以及通过Polygon来构造圆的算法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 某个项目需求中需要在前端进行画圆查询,将圆范围上的多边形要素 ...

  9. 【BZOJ 4561】【JLOI 2016】圆的异或并

    http://www.lydsy.com/JudgeOnline/problem.php?id=4561 一开始并不会做,后来看题解看懂了. 看懂了之后还是错了好几次,数组大小手残开小了. 圆的包含并 ...

随机推荐

  1. Laravel入门

    一.下载Laravel ①github上下载 ②通过composer下载,推荐 第一步,选择你要在哪个目录下载Laravel,打开cmd 第二步,打开https://docs.golaravel.co ...

  2. 内存溢出,内存泄漏,CPU溢出区别

    内存溢出 out of memory,就是你要的内存空间超过了系统实际分配给你的空间,此时系统相当于没法满足你的需求,就会报内存溢出的错误 内存泄漏是指你向系统申请分配内存进行使用(new),可是使用 ...

  3. dos(cmd)命令大全(本文摘至于网络)

    命令简介 cmd是command的缩写.即命令行 .       虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在 ...

  4. Nopcommerce 使用Task时dbcontext关闭问题

    1.开启一个线程 Task.Run(() => { CreatPrintImage(preViewModel.DiyProductGuid); }); 2.线程代码 /// <summar ...

  5. Sql Server 分区演练

    USE [master] GO if exists (select * from sys.databases where name = 'Test_1') drop database Test_1 G ...

  6. luogu P3773 [CTSC2017]吉夫特

    luogu 这里的组合数显然要用\(\text{lucas}\)定理来求,所以考虑\(\text{lucas}\)定理的本质,即把\(n,m\)分别拆分成\(p\)进制串\(\{a\}\{b\}\), ...

  7. 验证组件FluentValidation的使用示例

    官方文档:https://fluentvalidation.net/start#complex-properties 示例Demo:https://github.com/DavideYang125/F ...

  8. TTP223 触摸按键

    正面 反面 模式设置 可替代按键开关

  9. vue项目中图片预览旋转功能

    最近项目中需要在图片预览时,可以旋转图片预览,在网上找了下,发现有一款功能强大的图片组件:viewerjs. git-hup: https://github.com/fengyuanchen/view ...

  10. 网页免费转换为可编辑的PDF

    Chrome自带的"打印"功能中,另存为PDF 可选择保存选中的内容.如果浏览器/网络出错,不能纠正.(推荐0) https://www.printfriendly.com (有C ...