【题解】CF1503B 3-Coloring
题面传送门
解决思路
讲一下 \(\text{VP}\) 时的思路。
首先想到,只要能将棋盘中红色或蓝色部分全部填成同一个数,那么剩下的就不会受限了(可行有两个,限制只有一个):

但考虑到交互库可能有点坑,比如第一个给了 \(1\),你钦定了红色块全填 \(2\),但后面他可能一直给 \(2\) 。这样的话,你只能再钦定蓝色块全填 \(1\) 。所以需要 “双线并行” ,直到填满其中一种为止。
可以证明,是一定存在这样的一组可行解的。
注意:随意填时填的数不能和给出的数相同。为了找出这个错误笔者甚至写了一个简陋的交互库。。。
具体解释可以看代码。
AC Code
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false)
#define TIE cin.tie(0),cout.tie(0)
using namespace std;
int n,ans[105][105],t1,t2,op,cnt1,cnt2;
int tot1,tot2;
struct node{
int x,y;
}a1[10005],a2[10005];
bool fl;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if((i+j)%2==0) a1[++tot1].x=i,a1[tot1].y=j;
else a2[++tot2].x=i,a2[tot2].y=j;
}
}
//预处理红色块、蓝色块的位置
cin>>op;
if(op==1) cout<<2<<' ',t1=2;
if(op==2) cout<<3<<' ',t1=3;
if(op==3) cout<<1<<' ',t1=1;
cnt1++;
cout<<a1[cnt1].x<<' '<<a1[cnt1].y<<endl;
//钦定红色块全填什么
for(int i=1;i<=n*n-1;i++){
cin>>op;
if(op==t1&&!fl){
if(op==1) cout<<2<<' ',t2=2;
if(op==2) cout<<3<<' ',t2=3;
if(op==3) cout<<1<<' ',t2=1;
cnt2++;
cout<<a2[cnt2].x<<' '<<a2[cnt2].y<<endl;
fl=1;
}
//钦定蓝色块全填什么
else if(op==t1&&cnt2<tot2){
cout<<t2<<' ';
cnt2++;
cout<<a2[cnt2].x<<' '<<a2[cnt2].y<<endl;
}
//往蓝色块填数
else if(op==t1){
for(int z=1;z<=3;z++){
if(z!=t1&&z!=t2){
cout<<z<<' ';
break;
}
}
cnt1++;
cout<<a1[cnt1].x<<' '<<a1[cnt1].y<<endl;
}
//蓝色块填满了就往红色块填可行数
else if(cnt1<tot1){
cout<<t1<<' ';
cnt1++;
cout<<a1[cnt1].x<<' '<<a1[cnt1].y<<endl;
}
//往红色块填数
else{
for(int z=1;z<=3;z++){
if(z!=t1&&z!=op){ //注意这里不能与输入的数相同
cout<<z<<' ';
break;
}
}
cnt2++;
cout<<a2[cnt2].x<<' '<<a2[cnt2].y<<endl;
}
//红色块填满了就往蓝色块填可行数
}
return 0;
}
【题解】CF1503B 3-Coloring的更多相关文章
- AGC025简要题解
AGC025简要题解 B RGB Coloring 一道简单题,枚举即可. C Interval Game 考虑可以进行的操作只有两种,即左拉和右拉,连续进行两次相同的操作是没有用的. 左拉时肯定会选 ...
- 题解 洛谷P3936 Coloring
考虑搜索,发现复杂度爆炸 贪心,正确性过低(~~实测爆炸~~) 于是,~~发现~~这题是模拟退火 这里不讲解退火的定义了,初学退火可以去平衡点 退火本身维护一个答案图像,答案的q,当前图 ...
- Codeforces Round #369 (Div. 2) C. Coloring Trees DP
C. Coloring Trees ZS the Coder and Chris the Baboon has arrived at Udayland! They walked in the pa ...
- Codeforces Round #369 (Div. 2) C. Coloring Trees(dp)
Coloring Trees Problem Description: ZS the Coder and Chris the Baboon has arrived at Udayland! They ...
- Codeforces Round #369 (Div. 2) C. Coloring Trees (DP)
C. Coloring Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- AGC030 简要题解
A - Poisonous Cookies 题意 有\(A\)个能解毒的普通饼干,\(B\)个能解毒的美味饼干,\(C\)个有毒的美味饼干,求最多能吃多少个美味饼干,每次吃完有毒的饼干后要解毒后才能继 ...
- 【arc073e】Ball Coloring(线段树,贪心)
[arc073e]Ball Coloring(线段树,贪心) 题面 AtCoder 洛谷 题解 大型翻车现场,菊队完美压中男神的模拟题 首先钦定全局最小值为红色,剩下的袋子按照其中较大值排序. 枚举前 ...
- CODE FESTIVAL 2017 qual A 题解
补一发A的题解. A - Snuke's favorite YAKINIKU 题意: 输入字符串S,如果以YAKI开头输出Yes,否则输出No. #include<bits/stdc++.h&g ...
- 【AtCoder】AGC026 题解
A - Colorful Slimes 2 找相同颜色的一段,然后答案加上段长除2下取整 代码 #include <iostream> #include <cstdio> us ...
随机推荐
- 强大多云混合多K8S集群管理平台Rancher入门实战
@ 目录 概述 定义 为何使用 其他产品 安装 简述 规划 基础环境 Docker安装 Rancher安装 创建用户 创建集群 添加Node节点 配置kubectl 创建项目和名称空间 发布应用 偏好 ...
- 创建x11vnc系统进程
〇.前言 为方便使用vnc,所以寻找到一个比较好用的vnc服务端那就是x11vnc,索性就创建了一个系统进程 一.环境 系统:银河麒麟v4-sp2-server 软件:x11vnc[linux下].V ...
- ubuntu下vscode安装go插件失败解决办法
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.io,direct go env -w GOSUMDB=gosum.io+ce6e ...
- day37-IO流04
JavaIO流04 4.常用的类03 4.4节点流和处理流02 4.4.5对象处理流-ObjectInputStream和ObjectOutputStream 1.序列化和反序列化 例子1: 看一个需 ...
- CSS之垂直水平居中的背后
最开始,我想说,这个体系有点大,我写的并不好.就当作是一个思路吧,虽然这个思路有点乱.几乎每一个实现方案的背后都是该属性及其组合的原理,每一个都要剖析其规范细节的话,这篇文章绝不会是这样的篇幅,所以每 ...
- 不懂 Kubernetes 实现云原生是什么体验?
云原生的本质和最终效果 要明白什么是云原生,就要先弄明白云计算是什么有什么问题,云计算将计算资源.网络.存储等基础设施统一管理,通过资源规模化和自动化管理,实现降低资源的成本和提高资源的管理效率,云计 ...
- C#,根据路径获取某个数字开头的所有文件夹,并获取最新文件夹进行替换文件
项目需求获取某路径下为1开头文件夹,并替换最新文件夹内容,话不多说,上代码 private void Form1_Load(object sender, EventArgs e) { try { st ...
- HashMap的哈希函数为何用(n - 1) & hash
前言 在上一篇 Java 中HashMap详解(含HashTable, ConcurrentHashMap) 中提到在map.put(key, value)的过程中,计算完key的hash值, 是通过 ...
- docker -v 和Dockerfile 中VOLUME 区别
在学习Dockerfile的过程中有个VOLUME命令,很多教程或书中说的是用来定义匿名卷的,其作用如下: 容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库文 ...
- SonarQube 之 gitlab-plugin 配合 gitlab-ci 完成每次 commit 代码检测
转载自:https://cloud.tencent.com/developer/article/1010601 1.背景介绍 我们知道使用 SonarQube 可以在日常开发中检测代码质量,除了使用 ...