当前位置: 首页 > news >正文

CF1863D-Two-Colored Dominoes

CF1863D-Two-Colored Dominoes

题目大意

你有一个 \(n*m\) 的棋盘,这些棋盘上有一些多米诺骨牌,每个骨牌覆盖相邻的两个格子,没有两个骨牌会重叠。

你要把这些骨牌涂上黑白两种颜色,并满足以下条件

· 对于每个多米诺骨牌,其中一个涂成白色,另一个涂成黑色。

· 对于每一行(列),这一行中黑色格子的数量等于白色格子的数量

请将所有骨牌涂色并输出涂色方案,如果不可能满足以上条件,则输出 \(-1\)

题解

如果一行或一列上有奇数个格子被覆盖,则一定不可能满足。

否则,那么占据同两行,或同两列的骨牌数量一定为偶数,只需要将这些骨牌,交替黑白涂色即可。

#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define umap unordered_map
#define endl '\n'
using namespace std;
using i128 = __int128;
const int mod =1e9+7;
template <typename T>void read(T&x){x=0;int f = 1;char c=getchar();for(;!isdigit(c);c=getchar())if(c=='-')f=-1;for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);x*=f;
}
template <typename T>void print(T x) {if (x < 0) { putchar('-'); x = -x; }if (x > 9) print(x / 10);putchar(x % 10 + '0');
}
#define int long long
const int N=500005;
const int M=2000005;
inline void solve()
{int n,m;cin>>n>>m;vector<string> s(n);vector<int> c(m+1),r(n+1);for(int i=0;i<n;i++) cin>>s[i];for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(s[i][j]=='L'){if(c[j]%2==0){s[i][j]='W';s[i][j+1]='B';}else{s[i][j]='B';s[i][j+1]='W';}c[j]++;}if(s[i][j]=='U'){if(r[i]%2==0){s[i][j]='W';s[i+1][j]='B';}else{s[i][j]='B';s[i+1][j]='W';}r[i]++;}}}for(int i=0;i<n;i++){if(r[i]%2){cout<<-1<<endl;return;}}for(int i=0;i<m;i++){if(c[i]%2){cout<<-1<<endl;return;}}for(int i=0;i<n;i++) cout<<s[i]<<endl;
}signed main()
{ios;int T=1;cin>>T;for(;T--;) solve();return 0;
}
http://www.jsqmd.com/news/47114/

相关文章:

  • 2025年11月GEO公司深度盘点:怎么选?十大服务商权威发布
  • 2025年11月GEO服务商怎么选?深度盘点TOP10专业解析
  • docker-- 遇到服务无法访问,排查记录
  • 4. 2025年11月GEO服务商深度盘点:十大专业机构对比分析与选择策略
  • 2025年11月GEO服务商选择指南:哪家好权威推荐
  • 2025年11月GEO服务商怎么选?终极对比TOP10评测报告
  • 苹果手机传文件到 windows 电脑
  • 飞书弹窗报错 Failed to load DLL from D:\installed_app\Feishu\app\frame.dll, System Error Code = 5
  • 11/21
  • Vision Transformer (ViT) 原理及解读
  • 2025.11.21
  • 关于Git的多分支使用
  • 高中数学核心素养记忆口诀,从简到难,方便您记忆和理解
  • 杂题选做 25.11
  • 【第8章 数据分析基础】让AI帮你可视化一个数据集
  • sam3 (2)开发 - MKT
  • P1719 最大加权矩阵
  • Python pyinstaller convert py file as *.exe file
  • HTML 零基础入门到实战(附 100 + 代码示例与图解教程)
  • 立方数
  • Rust环境搭建
  • Python json list as json and write in json file,tkinter popup as messagebox
  • Trick——树
  • windows的句柄和linux的fd对比
  • 20251117~20251123NOIP模拟赛
  • 谁又不是一边破碎一边前行
  • Java的第一个程序
  • 题解:qoj14419 Maximum Segment Sum
  • 20232310 2025-2026-1 《网络与系统攻防技术》实验七实验报告
  • 完整教程:基于Python楼王争霸劳动竞赛数据处理分析