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": 过多的连接 ...
随机推荐
- NX二次开发 克隆
NXOpen.UF.UFSession theUfSession = NXOpen.UF.UFSession.GetUFSession(); try { //初始化 NXOpen.UF.UFClone ...
- sql常用的统计公式
hivesql中max,min函数不能作用于多列,因此在有上下门限区间限制时多用公式直接计算. max(x,y)=(x+y+ABS(x-y))/2 min(x,y)=(x+y-ABS(x-y))/2 ...
- 跟着老猫一起来学GO,环境搭建
老猫的GO学习系列博客已经正式发车了,相信大家以前学习一门编程语言的时候也有经验,咱们一般都是从环境开始,在此呢,大家也跟着老猫从最开始的搭建环境开始. GO语言的安装 首先呢,我们开始需要下载GO语 ...
- Coursera Deep Learning笔记 结构化机器学习项目 (下)
参考:https://blog.csdn.net/red_stone1/article/details/78600255https://blog.csdn.net/red_stone1/article ...
- Jupyter Notebook配置多个kernel
Jupyter Notebook配置多个kernel 前言: 在anaconda下配置了多个环境,而Jupiter Notebook只是安装在base环境下,为了能在Jupiter Notebook中 ...
- UltraSoft - Beta - Scrum Meeting 8
Date: May 24th, 2020. Scrum 情况汇报 进度情况 组员 负责 今日进度 q2l PM.后端 记录Scrum Meeting Liuzh 前端 暂无 Kkkk 前端 暂无 王f ...
- [no code][scrum meeting] Beta 10
$( "#cnblogs_post_body" ).catalog() 例会时间:5月25日15:00,主持者:伦泽标 下次例会时间:5月26日11:30,主持者: 一.工作汇报 ...
- 第3次 Beta Scrum Meeting
本次会议为Beta阶段第3次Scrum Meeting会议 会议概要 会议时间:2021年6月2日 会议地点:「腾讯会议」线上进行 会议时长:0.5小时 会议内容简介:对完成工作进行阶段性汇报:对下一 ...
- Spring的Ioc与DI
一.前言 Spring框架的核心基于控制反转的原理. IoC是一种将组件依赖关系的创建和管理外部化的技术. 考虑一个示例,其中Foo类依赖于Bar类的实例来执行某种处理. 传统上,Foo使用new运算 ...
- SQL Server 插入、更新和删除数据
1.主要内容 ● 通过SSMS,插入.更新和删除表数据 ● 通过INSERT语句向表中插入数据 ● 通过UPDATE语句更新表内数据 ● 通过DELETE语句删除表内数据 ● 使用INSERT.UPD ...