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

The 2024 ICPC Asia Shenyang Regional Contest B. Magical Palette

Problem - B - Codeforces

打表可以发现gcd(n,m)必须为1才有方案

打表代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 10;
const int mod = 1e9 + 7;
#define pii pair<int, int>
#define lowbit(x) (x & (-x))
int n, m;
int a[N], b[N];
bool st1[N], st2[N];
bool fd;
void dfs(int t1, int t2)
{if (fd)return;if (t2 == m + 1){map<int, int> mp;bool ok = 1;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){mp[a[i] * b[j] % (n * m)]++;if (mp[a[i] * b[j] % (n * m)] == 2)ok = 0;}}if (ok){fd = 1;for (int i = 1; i <= n; i++){cout << a[i] << ' ';}cout << endl;for (int i = 1; i <= m; i++){cout << b[i] << ' ';}cout << endl;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cout << a[i] * b[j] % (n * m) << ' ';}cout << endl;}cout << endl;}return;}if (t1 != n + 1){for (int i = 1; i <= n * m; i++){if (st1[i])continue;st1[i] = 1;a[t1] = i;dfs(t1 + 1, t2);st1[i] = 0;a[t1] = 0;}}else{for (int i = 1; i <= n * m; i++){if (st2[i])continue;st2[i] = 1;b[t2] = i;dfs(t1, t2 + 1);st2[i] = 0;b[t2] = 0;}}
}void solve()
{cin >> n >> m;dfs(1, 1);
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t = 1;cin >> t;while (t--)solve();
}

然后写一个check函数套一下就能套出来这么一个正确的构造:

a[i] = (i * m + 1) % (n * m);

b[i] = (i * n + 1) % (n * m);

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 10;
const int mod = 1e9 + 7;
#define pii pair<int, int>
#define lowbit(x) (x & (-x))
int a[N];
int b[N];
int n, m;
bool check()
{map<int, int> mp;bool ok = 1;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){mp[a[i] * b[j] % (n * m)]++;if (mp[a[i] * b[j] % (n * m)] == 2)ok = 0;}}for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cout << a[i] * b[j] % (n * m) << ' ';}cout << endl;}return ok;
}
void solve()
{cin >> n >> m;if (gcd(n, m) != 1){cout << "No" << endl;return;}for (int i = 1; i <= n; i++)a[i] = (i * m + 1) % (n * m);for (int i = 1; i <= m; i++)b[i] = (i * n + 1) % (n * m);// cout << check() << endl;cout << "Yes" << endl;for (int i = 1; i <= n; i++)cout << a[i] << ' ';cout << endl;for (int i = 1; i <= m; i++)cout << b[i] << ' ';cout << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t = 1;cin >> t;while (t--)solve();
}

http://www.dtcms.com/a/282771.html

相关文章:

  • Docker容器技术讲解
  • Liunx练习项目6-创建dns服务器
  • 主机安全---开源wazuh安装
  • 深入理解概率图模型:贝叶斯网络因子分解、d-分离与马尔可夫毯
  • 基于用户空间操作IIC接口调试云台电机
  • 7.16 Java基础 | 集合框架(上)
  • 微服务架构中实现跨服务的字段级权限统一控制
  • PyTorch深度学习框架入门案例实战
  • 第一章 【vue】基础(超详细)
  • 【动归解题套路框架】【带备忘录的递归】【最优子结构】【自下而上DP table】
  • Spring核心注解@RequestMapping详解
  • Java 二维数组详解:从基础语法到实战应用,彻底掌握多维数据结构
  • 边缘计算革命:AWS Snowcone在智慧工厂的落地实践(2025工业4.0实战指南)
  • 笔试——Day10
  • 【AI交叉】天文学:人工智能如何赋能星辰大海的探索
  • 如何关闭Elasticsearch的安全认证的解决方法
  • Maven入门指南:生命周期、阶段和执行顺序详解
  • 基于深度学习的情感分析模型:从文本数据到模型部署
  • leetcode:990.等式方程的可满足性[图]
  • 推荐《Python 编程:从入门到实践》之Python编程的基础知识
  • 经典算法之基数排序
  • 算法精讲--正则表达式(二):分组、引用与高级匹配技术
  • 基站前传卡 加速卡 EU
  • 一个项目的完整一生 --- 一 窗口大小设置
  • NW956NW961美光固态闪存NW964NW968
  • 如何建立一個單一產品的 Shopify 商店
  • 倪海厦全套下载,八纲辨证,人纪,天纪,针灸,电子版
  • lesson15:Python的文件操作
  • Java-数构栈与队列
  • 第三次mysql作业