Errich-Tac-Toe (Hard Version)

FPGA领域四大顶级会议全景解读:从架构到应用的技术风向标 本文全景解读FPGA领域四大顶级会议(FPGA、FCCM、FPL、FPT),剖析其各自定位与技术风向。FPGA会议聚焦架构与工具创新,FCCM专攻硬件加速与定制计算,FPL覆盖从理论到应用的广泛领域,FPT则重点关注亚太市场与前沿应用。跟踪这些会议是把握FPGA技术演进、寻找创新灵感和应用方案的高效途径。 阅读详情
题目链接:点击进入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

题意

给你一个 n * n 的方格矩阵,每个方格可以标记 X 或者 标记 O 或者 啥也不标记 ,如果有 三个连续的 X 或者 三个连续的 O 形成一行 或者 一列( 斜着不行,只能与 x轴 或者 y 轴平行 )说明是一个成功的配置,否则是绘制配置;
给你原矩阵,你最多可以操作 [ k / 3 ] 次( 向下取整 ,k 是 X 与 O 的总个数 ),每次操作可以把 X 变为 O 或者 把 O 变为 X ,要求你将原矩阵变为绘制配置,同时输出改变后的矩阵(不要求操作数最少)

思路

三个连续的 X 或者 O 是成功配置的标志,我们只要改变三个位置中的其中一个就可以,但是考虑到 “ 连环消消乐 ” 的情况,我们可以采用( x + y )% 3( x 行标 ,y 列标 ),的方式来确定改变哪个位置的标记( 跟黑白染色差不多的 ,如果三个连续的 X 或者 O 在一列 或者 一行,那么三个的位置 %3 的结果将各不同 );
配个官方图(图片来自官方题解)
在这里插入图片描述

知道这个特点,那我们改变哪个位置的标记呢,当然是改变次数越小越好了,选标记数最少的位置( 这个位置标记的数目最少 ,操作也最少 );

同时考虑到改完 X 可能跟 O 又凑成三个( 或者改完 O 可能跟 X 又凑成三个 ),我们可以对于 X 和 O ,不改变相同的位置,这样改变后也不会出现连续的了。

代码
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<iostream>
#include<cstring>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn=1e6+10;
int n,t,cnt[5][5];
char s[310][310];
int main()
{
    ios::sync_with_stdio(false);
    cin>>t;
    while(t--)
    {
    	cin>>n;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			cin>>s[i][j];
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=n;j++)
			{
				if(s[i][j]=='.') continue;
				int pos=(i+j)%3;
				if(s[i][j]=='O') cnt[pos][0]++;
				else cnt[pos][1]++;
			}
		}
		int minn=inf,x,y;
		for(int i=0;i<3;i++)
		{
			for(int j=0;j<3;j++)
			{
				if(i==j) continue;
				if(minn>cnt[i][0]+cnt[j][1])
				{
					minn=cnt[i][0]+cnt[j][1];
					x=i,y=j;
				}
			}
		}
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
			{
				if(s[i][j]=='.') continue;
				int pos=(i+j)%3;
				if(s[i][j]=='O'&&pos==x) s[i][j]='X';
				else if(s[i][j]=='X'&&pos==y) s[i][j]='O';
			}
		}
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
				cout<<s[i][j];
			cout<<endl;
		}
		for(int i=0;i<3;i++) 
			for(int j=0;j<3;j++)
				cnt[i][j]=0;
	}
    return 0;
}
复现基于混频因子模型的GDP即时预测方法 基于混频因子模型的GDP即时预测方法复现 本文复现了混频因子模型(MIDAS)在GDP即时预测中的应用。该方法整合7个月度宏观经济变量(工业增加值、CPI、PMI等)与季度GDP数据,通过状态空间模型实现高频预测。技术实现包括:1)使用PCA提取潜在共同因子;2)构建状态空间模型处理混频数据;3)通过卡尔曼滤波进行参数估计。实证结果显示模型预测效果良好(测试集R²=0.82),其中工业增加值对因子1贡献最大(0.82),CPI对因子2贡献显著(0.78)。该方法为决策者提供了更及时的季度GDP估算。 阅读详情

相关推荐

lego-loam featureAssociation 源码注释(五)

上一次我们已经看完了特征提取,这次我们进入特征匹配的内容!!!systemInitedLM的初始值为false。

Joeybee的博客 886

1450C2 Errich-Tac-Toe (Hard Version)(思维)

Codeforces Global Round 12 C2. Errich-Tac-Toe (Hard Version)

月巴虫丰博客 397

数据库decimal类型详解:精度、标度与金额计算避坑指南

在关系型数据库中,浮点数精度丢失是常见问题,尤其涉及金额计算时,一分钱误差都可能导致对账失败。decimal类型通过十进制存储方式,将小数当作定点数处理,避免了二进制转换误差,确保运算结果精确。其核心在于精度和标度的合理定义,以及运算舍入规则的控制。在电商订单、汇率转换、税务计算等场景中,decimal是保障数据准确性的关键技术。理解其存储原理和实操细节,能有效规避隐式转换、聚合函数精度等常见坑点,提升系统可靠性。

weixin_32050773的博客 270

CodeForces - 1450C2 Errich-Tac-Toe (Hard Version)(思维+构造)

题目链接:点击查看 题目大意:给出一个大小为 n * m 的棋盘,规定不能有三个连续的 ' X ' 或三个连续的 ' O ' ,现在可以通过一次操作将 ' X ' 改成 'O '或者将 ' O ' 改成 ' X ',请输出一种修改次数不超过的构造方法,k 是总棋子数 题目分析:因为不允许有超过三个连续的棋子相连,所以可以将整个棋盘按照 模三取余 划分,大概是下图的样子(图来自官方题解) 对于模三取余的集合 { 0 , 1 , 2 } 来说,我们只需要任选两个数字 t1 和 t2,满足 t1...

Falcon的博客 470

单细胞专题(1) | 单细胞转录组研究样本准备指南(上)

单细胞RNA测序(scRNA-seq)是目前最前沿,能进行大规模实验的转录组研究技术,为理解细胞组成和动态生物学过程提供了很多新的见解。单细胞研究已经为我们理解发育过程,老化和疾病(如癌症)等提供了大量数据。在这里,小编主要就前期的样本准备与保存需注意问题给大家进行讲解,以备大家在不同的研究场景和研究背景下,走好单细胞转录组学研究的第一步。

bioyigene的博客 4228

基于51单片机的智能灌溉系统

基于51单片机的智能灌溉系统

jiejiezuishuai的博客 2101

C2. Errich-Tac-Toe (Hard Version)

https://codeforces.com/contest/1450/problem/C2 这辈子都做不出阴间构造题.jpg 这题关键想到用i+j... 连续的横竖3个,他们的(i+j)也是连续的 所以我们只要(i+j)%3中的0,1,2的某一个全部取反就行了,总有一个的数量是<=sum/3 对于XO两个,我们就找出x,y,为了防止反转以后出现新的3连,所以x要保证不等于y 我们知道最差情况就是Xsum/3,Xsum0/3+1,Xsum0/3+1或者Xsum/3,Xsum/3,Xsum/

binarycopycode 517

基于Python的新闻聚合与推荐系统:抓取多新闻网站内容并根据用户兴趣进行个性化推荐

本文介绍了如何使用Python构建一个新闻聚合与推荐系统,涵盖了从新闻数据抓取、用户兴趣建模到推荐算法实现的全过程。通过爬虫技术抓取新闻网站内容,使用TF-IDF、Word2Vec等算法进行内容分析,并通过推荐算法向用户推送个性化的新闻,最终帮助用户快速获取自己感兴趣的信息。你可以根据具体需求,进一步扩展和优化系统。例如,加入更多的推荐算法、优化爬虫的抓取效率、增强前端展示的互动性等。通过本文的指导,您应该能够构建一个完整的新闻聚合与推荐系统,并为用户提供个性化的新闻推荐服务。

2201_76125261的博客 1513

acm-(构造、思维、染色)Codeforces Global Round 12 C. Errich-Tac-Toe (Hard Version)

传送门 先考虑简单版本怎么做,对每个格子按照(r+c)%3(r+c)\%3(r+c)%3进行分类,等于000的一组,等于111的一组,等于222的一组,假设cnticnt_icnti​表示(r+c)%3=i(r+c)\%3=i(r+c)%3=i的′X′'X'′X′的数量,我们考虑枚举iii,将所有iii属性的′X′'X'′X′改成′O′'O'′O′,这样一定能够保证不存连续的333个′X′'X'′X′,因为连续的333个′X′'X'′X′中必有一个′X′'X'′X′的属性是iii。由于cnt0+cnt1+.

qq_30361651的博客 321

ICC2:使用analyze_lib_cell_placement检查lib cell的pass rate

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?在place之前需要使analyze_lib_cell_placement命令去检查lib cell在当前的site row/power plan/legalize设置的环境下能够正常place和legalize。下面分享一个脚本去报告pass rate低于2%的lib cell。

m0_61544122的博客 674

计算机毕设项目一:基于卷积神经网络、resnet、VGG化妆品分类识别 完整代码数据可直接运行

计算机毕设项目一:基于卷积神经网络、resnet、VGG化妆品分类识别 完整代码数据可直接运行

653

CF1450 C1. Errich-Tac-Toe (Easy Version) C2. Errich-Tac-Toe (Hard Version)(构造)

链接 https://codeforces.com/contest/1450/problem/C2 The only difference between the easy and hard versions is that tokens of type O do not appear in the input of the easy version. Errichto gave Monogon the following challenge in order to intimidate him from

萧瑟的博客 6万+

5ZCM6ZGrVDllSFLkv6Hmga/ljJbnrqHnkIbns7vnu58= GetFlowDropDown SQL注入

5ZCM6ZGrVDllSFLkv6Hmga/ljJbnrqHnkIbns7vnu58=、eHR/OA一体化智慧云平台、智慧一卡通云平台、行业软件开发与定制、智慧企业管理信息化咨询与项目服务为核心业务的顾问式管理咨询和软件个性定制开发的高科技股份集团公司。同鑫T9eHR信息华管理系统存在SQL注入漏洞,攻击者可通过该漏洞上传shell。关闭互联网暴露面或接口设置访问权限。利用sqlmap进行shell。

iSee857的博客 699

Codeforces Global Round 12 C1,C2Errich-Tac-Toe (Easy Version && Hard Version) 思维upper

C1. Errich-Tac-Toe (Easy Version) 题意: OX游戏,不过该题可以完成一画,只能横、竖消去。(好像OX游戏可以斜着消去) Easy version : 只包含X。 Hard Version:包含X和O。 思路: 首先类似棋盘的染色,(之前cf出过一道类似的,也是要染色, 好像是多米诺骨牌。。。) (i+j)mod3(i+j)mod3(i+j)mod3 (其实就是按照斜对角线去染色) 对于easy Version时,可以发现一个三连块,一画由三种颜色构成。那么只要把其

qq_45377553的博客 1252

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Codeforces Global Round 12 C2. Errich-Tac-Toe (Hard Version) 题解 构造

构造 鸽巢原理 CF题解 C++代码 附注释

一只摸鱼的bbc 1129

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Codeforces Global Round 12 C2. Errich-Tac-Toe (Hard Version)(思维)

题目描述 The only difference between the easy and hard versions is that tokens of type O do not appear in the input of the easy version. Errichto gave Monogon the following challenge in order to intimidate him from taking his top contributor spot on Codeforce

li_wen_zhuo的博客 12万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

CF1450C2 Errich-Tac-Toe (Hard Version)

将方案整体向上挪一格和两格可以得到一共三种通解,这三种通解需要改的棋子总数就是棋盘上的棋子总数,同样的,根据抽屉原理,必定有一种方式少于棋子总数的。实际上,如果你会简单版本,那么困难版本也没有那么难了。,就是一种通解,同样的,这样改可能会超过棋子总数的。所以分别统计个数,最后判断即可。同样考虑构造一种通解,如下,

AuroraWind的博客 206

cf1450 C2. Errich-Tac-Toe (Hard Version)(数学,思维,字符串)

题目链接:https://codeforces.ml/contest/1450/problem/C2 题意:给定一个长度为n(n<=300)的字符正方形,'.' , 'X' , 'O'。'X'可以与'O'互换,cnt为'X'与'O'的个数和,请改变x个不为 '.' 的保证字符,其中x<=cnt/3下取整,使不出现任意三个连续的字符为'O'或’X'。保证一定存在这样的操作。 题解:分别统计t=(i+j)%3的位置的‘X',与'O'数。x0,x1,x2,o1,o2,o3分别对应t值'X'或'O'

I_have_a_world的博客 312

Codeforces Global Round 12 1450.C2. Errich-Tac-Toe (Hard Version)(构造,三分图)

LINK Easy Version 考虑对这个图染色分类,(i,j)(i,j)(i,j)格子归为(i+j)%3(i+j)\%3(i+j)%3类 然后在这三类格子中看看哪一类的标记最少,把那一类的X\rm XX都改成O\rm OO 这样做一定合法,因为任何连续的三个格子一定包含我们修改过的O\rm OO #include <bits/stdc++.h> using namespace std; const int maxn = 3e5+10; int t,n,kl[19]; char a[509]

jziwjxjd的博客 446

C1. Errich-Tac-Toe (Easy Version)

C1. Errich-Tac-Toe (Easy Version) time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output 题目原文 The only difference between the easy and hard versions is that tokens of type O do not appear in the input of th

am_someone的博客 436

CF1450C - Errich-Tac-Toe——构造

为了直接转帖博客,重拾富文本 .

偶耶的博客 586

CodeForces_1450C Errich-Tac-Toe(构造)

Errich-Tac-Toe time limit per test:1 seconds memory limit per test:256 megabytes Problem Description Errichto gave Monogon the following challenge in order to intimidate him from taking his top contributor spot on Codeforces. In a Tic-Tac-Toe grid, there a

sigh_的博客 440

[CF1450C]Errich-Tac-Toe

链瞳AK大漠悲,此身枯槁此心灰。醉打CF君莫笑,古来构造几人会?

七代目鸽影 191

Binary Table (Hard Version)-(思维)

题目描述:点击进入 题意 给你一个大小为n×m的二进制表,这个表由符号 0 和符号 1 组成。 你可以进行这样的操作: 选择属于一个 2 × 2 正方形的 3 个不同的单元格,并更改这些单元格中的符号(将 0 更改为1, 1 更改为 0 )。 你的任务是使表中的所有符号都等于0。您最多可以进行 nm次 操作。 你不需要最小化操作的数量。 思路 这是上一题的加强版,操作次数变为 nm 了,我上一次的代码过不去,无奈只能优化,但也只是对边界处理优化了一下,却神奇过了(神奇神奇,用xy哥的话来说那就是可蒸馏啊)

Cosmic_Tree的博客 1780

k-LCM ( easy version && hard version ) -( 思维 - 构造 )

题目链接(easy):点击进入 题目链接(hard):点击进入 题目 题意 长度为 k 的数组,整个数组的和为 n ,整个数组的最小公倍数不超过 n / 2,让你构造这样一个数组 简单版本k=3,困难版本 3 <= k <= n。 思路 简单版本: 因为明确告诉你了 k = 3 ,同时要求三个数的最小公倍数不能超过 n / 2,所以我们可以根据 n 来构造这个三个数。 首先根据 n 的奇偶性分类讨论 如果 n 是奇数,那么三个数可以变为 n / 2 , n / 2 , 1 ; 如果 n 是偶

Cosmic_Tree的博客 1189
上一篇: Imprecise Computer - ( 思维 / 递推 )
下一篇: Berland Crossword-(思维)
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值