传送门

文章目录

  • 题意:
  • 思路:

题意:

给一个n∗nn*nn∗n的格子染色,一共可以染三种颜色,每次都会给一种颜色,代表当前这种颜色不可以使用,染色要求相邻的颜色不能相同,让你给出一种染色方案。

思路:

类似奇偶染色,我们按(i+j)mod2(i+j)\bmod 2(i+j)mod2将块分成奇偶,让后分三种情况:
(1)(1)(1) 当前禁止染颜色111,那么我们就将颜色222填到偶数格子里,如果偶数格子没有了,就将333填到奇数格子里。
(2)(2)(2) 当前禁止染颜色222,那么我们就将颜色111填到奇数格子里,如果奇数格子没有了,就将333填到偶数格子里。
(3)(3)(3) 当前禁止染颜色333,那么我们就将颜色111填到奇数格子里,如果奇数格子没有了,就将222填到偶数格子里。
可以发现,这样染色是不会有相同颜色相邻的,因为这样首先保证了1,21,21,2不会相邻,让后由于是某个格子全用完之后才填颜色333,那么颜色333之间也不会相邻。

//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=110,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;int n;
vector<PII>v[10];void print(int col,PII x)
{printf("%d %d %d\n",col,x.X,x.Y);fflush(stdout);
}int main()
{//  ios::sync_with_stdio(false);
//  cin.tie(0);scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)v[(i+j)%2].pb({i,j});for(int i=1;i<=n*n;i++){int x; scanf("%d",&x);if(x==1){if(v[1].size()){print(2,v[1].back());v[1].pop_back();}else{print(3,v[0].back());v[0].pop_back();}}else if(x==2){if(v[0].size()){print(1,v[0].back());v[0].pop_back();}else{print(3,v[1].back());v[1].pop_back();}}else{if(v[0].size()){print(1,v[0].back());v[0].pop_back();}else{print(2,v[1].back());v[1].pop_back();}}}return 0;
}
/**/、

Codeforces Round #712 (Div. 2) D. 3-Coloring 交互 构造相关推荐

  1. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  2. Codeforces Round #617 (Div. 3) E2. String Coloring (hard version) 思维 + dp + Dilworth定理

    传送门 文章目录 题意: 思路: 题意: 让你给一个串染色,不同颜色且相邻的一对字符可以互换位置,用最少的颜色,使交换后这个字符串字典序最小. 思路: 考虑将字符串分成若干个非递减的子序列,由于其非递 ...

  3. Codeforces Round #453 (Div. 1) D. Weighting a Tree 构造 + dfs树

    传送门 文章目录 题意: 思路: 题意: 给你一颗nnn个点的图,每个点都有一个点权cic_ici​,要求你给每个边赋一个权值kik_iki​,要求对于每个点与他相连的边的权值之和等于这个点的点权ci ...

  4. Codeforces Round #381 (Div. 1) A. Alyona and mex 构造

    传送门 文章目录 题意: 思路: 题意: 你需要确定一个长度为nnn的数组aaa,满足给定的mmm个[l,r][l,r][l,r]限制,需要保证构造出来的aaa数组对于每个[l,r][l,r][l,r ...

  5. Codeforces Round #592 (Div. 2) G. Running in Pairs 构造(水)

    传送门 文章目录 题意: 思路: 题意: 思路: 史上最水GGG题,没有之一. 考虑最小的情况如何构造,显然就是让a,ba,ba,b都1−n1-n1−n依次排列即可,这样的最小值为n∗(n+1)2\f ...

  6. Codeforces Round #632 (Div. 2) E. Road to 1600 构造好题

    传送门 文章目录 题意: 思路 题意: 直接白嫖 思路 首先不难发现,n≤2n\le2n≤2的时候是无解的. 现在我们来构造n=3n=3n=3的情况,通过打表可以发现如下矩阵是符合题目要求的: 179 ...

  7. Codeforces Round #712 (Div. 2)-ABC

    A. Déjà Vu A palindrome is a string that reads the same backward as forward. For example, the string ...

  8. Codeforces Round #712 (Div. 2) F. Flip the Cards 思维 + 贪心

    传送门 文章目录 题意: 思路: 题意: 给你nnn张卡片,每张卡片正面写有数字aaa,反面写有数字bbb,[1,2∗n][1,2*n][1,2∗n]之间的整数在这些数字中都恰好出现一次,我们认为这n ...

  9. Codeforces Round #712 (Div. 2) E. Travelling Salesman Problem 思维转换

    传送门 文章目录 题意: 思路: 题意: 给你nnn个点,从iii到jjj的花费是max(ci,aj−ai)max(c_i,a_j-a_i)max(ci​,aj​−ai​),求从111开始经过每个点再 ...

最新文章

  1. mysq 开启慢查询日志
  2. mybaits二十一:1连接池以及事务控制
  3. VC++使用MCI播放音频文件
  4. Linux 静态库 动态库
  5. 第二章 栈和队列(1)——顺序存储
  6. JavaScript——仿键盘打字输入动画效果DEMO
  7. 今天看到“黑涩会MM”了
  8. 简易 IM 双向通信电脑端 GUI 应用——基于 Netty、JavaFX、多线程技术等
  9. Flink 实时计算 - 维表 Join 解读
  10. 计算机网络和通信,计算机网络与通信技术
  11. 【CodeForces - 599C 】Day at the Beach(思维)
  12. 2019开发者调查:Python 或成赢家,Java 最不赚钱?
  13. 日常赠书 | 王者荣耀的觉悟AI是怎么训练的?
  14. Linux中,Tomcat安装
  15. 《Effective STL中文版》前言
  16. 卡巴斯基2014激活码授权文件KEY
  17. Tomcat 5.5 配置
  18. 冒泡排序图解-Java实现
  19. PDF格式人工转为Excel
  20. 怎么画地铁图 java_创建地铁图-地铁图显示-开发指南-地铁图 JS API | 高德地图API...

热门文章

  1. python 文件写入多个参数_pandas 把数据写入txt文件每行固定写入一定数量的值方法...
  2. 你和985硕博研究生,差了这些东西
  3. getchar()到底怎么用_怎样才能真正发挥肥效,腐植酸水溶肥到底怎么用
  4. jwt如何防止token被窃取_在吗?认识一下JWT(JSON Web Token)?
  5. 嵌入式linux配置qt,基于qt的嵌入式Linux开发环境搭建
  6. 用python写简单爬虫,用Python写简单的爬虫
  7. c语言长整数转化为16进制字符串,一个30位的字符串十进制长整数怎么转换为对应的十六进制和八进制...
  8. 两向量点乘坐标运算_高三数学冲刺复习之向量小题的题型总结(含好用的补充公式)...
  9. eclipse连接mysql_专题一、flask构建mysql数据库正确姿势
  10. mysql安装版和解压版哪个好_红米k30pro变焦版和荣耀30pro哪个好-哪个更值得入手...