P6585 中子衰变
我们偶数的时候只要对称操作。
奇数的话,我们定义\(1\)的相反数为\(-1\),\(0\)相反数为\(0\)。
我们维护最长的两边的相反串,中间一段除了一个端点,其他均被染成同色。
那么如果对方染端点,那么我们两个端点相邻必有一个可染上相同颜色,此时相反串长度减1.
如果对方染和端点相邻,那么我们直接染端点。此时相反串长度减1。
否则我们在对称点上染上相反颜色。
#include<iostream>
#include<cstdio>
#define ll long long
#define N ((1 << 10) + 10)
ll num[N];
ll n,id;
int main(){
scanf("%lld%lld",&n,&id);
if(n & 1){
std::cout<<1<<std::endl;//选择后手
ll l = (n / 2),r = (n / 2),z = 0;//维护中间段
ll x,y;
ll m = (n - 1) / 2;
while(scanf("%lld%lld",&x,&y) == 2){
ll r = (n - m),l = m + 1;
num[x] = y;
if(x == l || x == r){
z = y;
if(!num[l - 1] && (num[l - 2] == 0 || num[l - 2] == y))
std::cout<<l - 1<<" "<<y<<std::endl,num[l - 1] = y,m --;
else
std::cout<<r + 1<<" "<<y<<std::endl,num[r + 1] = y,m --;
}else
if(((x == l + 1 && !num[l]) || (x == r + 1 && !num[r])) && y == z){
if(x == l + 1)
std::cout<<l<<" "<<y<<std::endl,num[l] = y;
if(x == r + 1)
std::cout<<r<<" "<<y<<std::endl,num[r] = y;
m -- ;
}
else
std::cout<<(n - x + 1)<<" "<<((y == 1) ? -1 : 1)<<std::endl,num[n - x + 1] = (y == 1) ? -1 : 1;
fflush(stdout);
}
}else{
ll x,y;
std::cout<<1<<std::endl;//选择后手。
while(scanf("%lld%lld",&x,&y) == 2){
std::cout<<(n - x + 1)<<" "<<y<<std::endl;
fflush(stdout);
}
}
}
P6585 中子衰变的更多相关文章
- iOS开发——UI高级OC篇&自定义控件之调整按钮中子控件(图片和文字)的位置
自定义控件之调整按钮中子控件(图片和文字)的位置 其实还有一种是在storyBoard中实现的,只需要设置对应空间的左右间距: 这里实现前面两种自定义的方式 一:imageRectForContent ...
- exists查询中子表可以是
exists查询中子表可以是’或则具体某一列 ,查询结果一致,因为exists只会返回 true或者false,一个boolean型的值
- 在C#中子线程如何操作主窗口线程上的控件
在C#中子线程怎样操作主线程中窗口上控件 在C#中,直接在子线程中对窗口上的控件操作是会出现异常,这是因为子线程和运行窗口的线程是不同的空间,因此想要在子线程来操作窗口上的控件.是不可能简单的通过控件 ...
- 解决TabActivity中子页面不通过导航跳转到还有一个页面的问题
问题:当你的导航在TabActivity中 而子页面的一个button须要切换到当中的某一个导航页面 转载请注明出处:http://blog.csdn.net/x605940745 demo下载地址: ...
- EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中
需求:EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中 效果: /** * 给树增加onCheck事件,首先使用cascadeCheck:false属性禁止全选, ...
- MVC中子页面如何引用模板页中的jquery脚本
MVC中子页面如何引用模板页中的jquery脚本 最近在学习mvc,遇到了一个问题:在html页面中写js代码,都是引用mvc5自带的jquery脚本,虽然一拖(将指定的jquery脚本如 jquer ...
- Vue中子组件调用父组件的方法
Vue中子组件调用父组件的方法 相关Html: <!DOCTYPE html> <html lang="en"> <head> <meta ...
- Android中子线程真的不能更新UI吗?
Android的UI访问是没有加锁的,这样在多个线程访问UI是不安全的.所以Android中规定只能在UI线程中访问UI. 但是有没有极端的情况?使得我们在子线程中访问UI也可以使程序跑起来呢?接下来 ...
- mkdir-无法创建目录(单层目录中子目录的个数默认为32000个)
今天运行在一台机器上的脚本突然通知无法创建目录了,上去执行shell脚本,也出现同样的错误,如下: $ mkdir test mkdir: 无法创建目录"test": 过多的连接 ...
随机推荐
- 自动化运维利器Ansible要点汇总
由于大部分互联网公司服务器环境复杂,线上线下环境.测试正式环境.分区环境.客户项目环境等造成每个应用都要重新部署,而且服务器数量少则几十台,多则千台,若手工一台台部署效率低下,且容易出错,不利后期运维 ...
- Unity 3D手游对不同分辨率屏幕的UI自适应
目前安卓手机的屏幕大小各异,没有统一的标准,因此用Unity 3D制作的手游需要做好对不同分辨率屏幕的UI自适应,否则就会出现UI大小不一和位置错位等问题. 我们的项目在开发时的参照分辨率(Refer ...
- luogu P2746 [USACO5.3]校园网Network of Schools 题解
前言: 火星题... 但是我调了半天,最后看了题解才明白. Wtcl 解析: 显然先缩个点. 第一问,就是问多少入度为0的点. 第二问,抽象一下就是要添加一些边,让一个DAG变成一个SCC,求最小边数 ...
- error: ‘int64_t’ does not name a type
我在CodeBlock中编译工程没有出现问题,但是放到ubuntu上用自己写的Makefile make的时候报错 error: 'int64_t' does not name a type # 2 ...
- 第07课 OpenGL 光照和键盘(2)
下一段代码绘制贴图立方体.我只对新增的代码进行注解.如果您对没有注解的代码有疑问,回头看看第六课. int DrawGLScene(GLvoid) // 从这里开始进行所有的绘制 { glClear( ...
- tcp 三次握手建立连接难点总结
所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包. 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号 ...
- shell 脚本静默安装oracle11g
以下脚本的手动安装连接: https://www.cnblogs.com/leihongnu/p/12698593.html [ #/bin/bash#安装日志touch /root/message ...
- # Host xx.xxx.x.xxx found: line 1 /root/.ssh/known_hosts updated. Original contents retained as /root/.ssh/known_hosts.old
一直可以ssh登录远程服务器,突然不行了. 原因:远程服务器最近打过安全补丁,安全标识已经更新. 清理本机的安全密匙即可 解决办法: #ssh-keygen -R "需要远程服务器ip地址& ...
- SpringBoot 居然有 44 种应用启动器
啥是应用启动器?SpringBoot集成了spring的很多模块,比如tomcat.redis等等.你用SpringBoot搭建项目,只需要在pom.xml引入相关的依赖,和在配置文件中简单的配置就可 ...
- Flume面试题整理
1.Flume使用场景(☆☆☆☆☆) 线上数据一般主要是落地(存储到磁盘)或者通过socket传输给另外一个系统,这种情况下,你很难推动线上应用或服务去修改接口,实现直接向kafka里写数据,这时候你 ...