题面传送门

解决思路

讲一下 \(\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的更多相关文章

  1. AGC025简要题解

    AGC025简要题解 B RGB Coloring 一道简单题,枚举即可. C Interval Game 考虑可以进行的操作只有两种,即左拉和右拉,连续进行两次相同的操作是没有用的. 左拉时肯定会选 ...

  2. 题解 洛谷P3936 Coloring

    考虑搜索,发现复杂度爆炸        贪心,正确性过低(~~实测爆炸~~) 于是,~~发现~~这题是模拟退火 这里不讲解退火的定义了,初学退火可以去平衡点 退火本身维护一个答案图像,答案的q,当前图 ...

  3. 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 ...

  4. 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 ...

  5. 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 ...

  6. AGC030 简要题解

    A - Poisonous Cookies 题意 有\(A\)个能解毒的普通饼干,\(B\)个能解毒的美味饼干,\(C\)个有毒的美味饼干,求最多能吃多少个美味饼干,每次吃完有毒的饼干后要解毒后才能继 ...

  7. 【arc073e】Ball Coloring(线段树,贪心)

    [arc073e]Ball Coloring(线段树,贪心) 题面 AtCoder 洛谷 题解 大型翻车现场,菊队完美压中男神的模拟题 首先钦定全局最小值为红色,剩下的袋子按照其中较大值排序. 枚举前 ...

  8. CODE FESTIVAL 2017 qual A 题解

    补一发A的题解. A - Snuke's favorite YAKINIKU 题意: 输入字符串S,如果以YAKI开头输出Yes,否则输出No. #include<bits/stdc++.h&g ...

  9. 【AtCoder】AGC026 题解

    A - Colorful Slimes 2 找相同颜色的一段,然后答案加上段长除2下取整 代码 #include <iostream> #include <cstdio> us ...

随机推荐

  1. k8s中ingress,service,depoyment,pod如何关联

    k8s中pod通过label标签名称来识别关联,它们的label  name一定是一样的.ingress,service,depoyment通过selector 中app:name来关联 1.查询发布 ...

  2. ifort + mkl + impi (全套intel)编译安装量子化学软件GAMESS 2022 R1版本

    说明:linux下编译软件都需要先配置好该软件依赖的系统环境.系统环境可以通过软件的安装说明了解,例如:readme.md等文件或网页.这个前提条件很重要!后面正式编译出错基本都可以归结到系统环境配置 ...

  3. thinkphp5.1发送邮件的方法

    1.安装插件 composer require phpmailer/phpmailer 2.application下的common.php文件里加上一下代码,可自己根据需求稍加修改,我用的是验证码 u ...

  4. 【BotR】CLR类型系统

    .NET运行时之书(Book of the Runtime,简称BotR)是一系列描述.NET运行时的文档,2007年左右在微软内部创建,最初目的是为了帮助其新员工快速上手.NET运行时:随着.NET ...

  5. Linux Hardening Guide

    文章转载自:https://madaidans-insecurities.github.io/guides/linux-hardening.html 1. Choosing the right Lin ...

  6. OSF--网络类型

    ABR:区域边界路由器ASBR:自治区域系统边界路由器区域部署原则:    存在vlink本地网络一定是有问题的.他只是作为一种过度技术,在vlink里无法实现认证! 配置:   [r2-ospf-a ...

  7. Deepin系统navicat15安装

    Deepin系统安装navicat15(已验证) 下载Navicat15 通过下面地址下载Navicat15,默认下载到桌面即可 $ https://download.navicat.com.cn/d ...

  8. 生产管理ERP哪一款比较好?

    生产管理用的是MES,企业管理用的才是ERP,这个得弄清楚!如果要谈生产管理,每家工厂的区别.差异性更大,在工厂甲用得很好的管理系统搬到工厂乙,大概率水土不服,不是软件本身的问题,而是生产的产品.部件 ...

  9. Java实现6种常见排序

    1.冒泡排序(Bubble Sort) 第0轮 3 1 4 1 5 9 2 6 5 3 5 8 9 第1轮 1 3 1 4 5 2 6 5 3 5 8 9 9 第2轮 1 1 3 4 2 5 5 3 ...

  10. MySQL实战,SQL语句

    student数据库 student学生表,course课程表表,sc成绩表 -- 1.找出成绩为95分的学生的姓名 SELECT Sname FROM student WHERE Sno IN( S ...