目录

题目链接

AGC027 D - Modulo Matrix

题解

从第左上角第一个点开始染色,相邻不同色,染法唯一

那么一个点的四周与他不同色,我们另这个点比四周都大,那么这个点权值可以使lcm(四周的点权值)+1

于是我们就得到了一种构造方案,染色后对一种颜色的点进行赋值,然后另一种颜色的点取lcm

可是....直接这样瞎构造会爆掉1e15

对于一种染色点,可以按照i + j和i - j分为两类,每一类乘上一个相同的质数

对于当前格子的价值就是从左上角到右下角,和从右上角到左下角穿过他的第k素数乘积

这样构造的lcm最大就是四个素数(prime[n],prime[n - 1],prime[2 * n],prime[2 * n - 1])的乘积

不会超过1e15

代码

#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
#define gc getchar()
#define pc putchar
#define LL long long
inline int read() {
int x = 0,f = 1;
char c = getchar();
while(c < '0' || c > '9') c = gc;
while(c <= '9' && c >= '0') x = x * 10 + c - '0',c = getchar();
return x * f;
}
void print(LL x) {
if(x < 0) {
pc('-');
x = -x;
}
if(x >= 10) print(x / 10);
pc(x % 10 + '0');
}
const int maxn = 20007;
int n;
int prime[maxn];
bool vis[maxn];
void pre(int lim = 10000) {
for(int cnt = 0,i = 2;i <= lim;++ i) {
if(!vis[i]) prime[++ cnt] = i;
for(int j = 1;j <= cnt && prime[j] * i <= lim;++ j) {
vis[i * prime[j]] = 1;
if(i % prime[j] == 0) break;
}
}
}
LL a[507][507];
LL gcd(LL x,LL y) {
return y == 0 ? x : gcd(y,x % y);
}
LL lcm(LL x,LL y) {
return x / gcd(x,y) * y;
}
int main() {
n = read();
pre();
if(n == 2) {
pc('4');pc(' ');pc('7');pc('\n');
print(23);pc(' '); print(10); pc('\n');
return 0;
}
for(int i = 0;i <= n + 1;++ i)
for(int j = 0;j <= n + 1;++ j)
a[i][j] = 1;
for(int i = 1;i <= n;++ i)
for(int j = 1;j <= n;++ j) {
if((j & 1) == (i & 1)) {
a[i][j] = prime[(i + j) / 2] * prime[(i + n + 1 - j) / 2 + n];
a[i + 1][j] = lcm(a[i + 1][j],a[i][j]);
a[i - 1][j] = lcm(a[i - 1][j],a[i][j]);
a[i][j + 1] = lcm(a[i][j + 1],a[i][j]);
a[i][j - 1] = lcm(a[i][j - 1],a[i][j]);
}
}
for(int i = 1;i <= n;++ i)
for(int j = 1;j <= n;++ j)
if((i & 1) == (j & 1));
else a[i][j] ++;
for(int i = 1;i <= n;++ i,pc('\n'))
for(int j = 1;j <= n;++ j)
print(a[i][j]),pc(' ');
return 0;
}

AGC027 D - Modulo Matrix 构造的更多相关文章

  1. AtCoder Grand Contest 027 (AGC017) D - Modulo Matrix 构造

    原文链接https://www.cnblogs.com/zhouzhendong/p/AGC027C.html 题解 首先我们假装 max mod min = 1 然后对着这个构造. 将各自黑白染色, ...

  2. AGC 027D.Modulo Matrix(构造 黑白染色)

    题目链接 \(Description\) 给定\(n\),要求构造一个\(n\times n\)的矩阵,矩阵内的元素两两不同,且任意相邻的两个元素\(x,y\),满足\(\max(x,y)\ \mat ...

  3. agc027D - Modulo Matrix(构造 黑白染色)

    题意 题目链接 构造一个\(n * n\)的矩阵,要求任意相邻的两个数\(a,b\),使得\(max(a,b) \% min(a,b) \not = 0\) Sol 我的思路: 假设\(mod = 1 ...

  4. 「AGC027D」Modulo Matrix

    「AGC027D」Modulo Matrix 传送门 神仙构造题. 首先考虑一个非常自然的思路,我们把棋盘黑白染色后会变成一个二分图,黑色棋子只会与白色棋子相邻. 也就是说,我们可以将二分图的一部随便 ...

  5. hdu 5015 233 Matrix(构造矩阵)

    http://acm.hdu.edu.cn/showproblem.php?pid=5015 由于是个二维的递推式,当时没有想到能够这样构造矩阵.从列上看,当前这一列都是由前一列递推得到.依据这一点来 ...

  6. Educational Codeforces Round 48 (Rated for Div. 2) D 1016D Vasya And The Matrix (构造)

    D. Vasya And The Matrix time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  7. UVA 11149 Power of Matrix 构造矩阵

    题目大意:意思就是让求A(A是矩阵)+A2+A3+A4+A5+A6+······+AK,其中矩阵范围n<=40,k<=1000000. 解题思路:由于k的取值范围很大,所以很自然地想到了二 ...

  8. CF486B OR in Matrix(构造+思维)

    CF486B 一道有趣的思维题 由于or的性质可知只要a[i][j]为1那么b中第i行,第j列将都变成1 相反的,如果b[i][j]是0那么a中第i行,第j列都必须是0 根据第二个性质我们可以构造出a ...

  9. [atAGC027D]Modulo Matrix

    对网格图黑白染色,在黑色格中填不同的质数,白色格中填相邻黑色格的lcm+1,但这样会超过1e15的上限将网格图划分为两类对角线,每一条对角线选一个质数,然后每一个点就是两条对角线的质数相乘,而白格的值 ...

随机推荐

  1. c语言的重构、清理与代码分析图形化浏览工具: CScout

    网址: https://www.spinellis.gr/cscout/ https://www2.dmst.aueb.gr/dds/cscout/index.html https://github. ...

  2. KVM -> 虚拟机磁盘管理_03

    1.KVM磁盘管理 1.KVM qcow2.raw.vmdk等镜像格式说明:http://blog.csdn.net/zhengmx100/article/details/53887162 raw: ...

  3. PYTHON-UDP

    1.TCP 和 UDP 发送数据时的流程 ***** 解释 为何TCP是可靠的 是因为发送数据后必须收到确认包 2. UDP的模板代码 ***** 1.UDP协议: (数据报协议) 特点: 无连接 优 ...

  4. 生活工作必备之SMART原则

    所谓SMART原则,即: 1. 目标必须是具体的(Specific) 2. 目标必须是可以衡量的(Measurable) 3. 目标必须是可以达到的(Attainable) 4. 目标必须和主要目标具 ...

  5. Vue源码

    参考文章:http://hcysun.me/2017/03/03/Vue%E6%BA%90%E7%A0%81%E5%AD%A6%E4%B9%A0/?utm_source=qq&utm_medi ...

  6. Oracle 网络配置与管理

    [学习目标] Oracle 监听器是一个服务器端程序,用于监听所有来自客户端的请求,并为其提供数 据库服务.因此对监听器的管理与维护相当重要.         本章主要内容是描述对Oracle 监听器 ...

  7. OCM_第十九天课程:Section9 —》Data Guard _ DATA GUARD 原理/DATA GUARD 应用/DATA GUARD 搭建

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  8. CSS的vertical-align

    转载自https://blog.csdn.net/FE_dev/article/details/75948659 说明 vertical-align属性,是CSS属性中一个比较重要的属性,也是比较不好 ...

  9. [翻译] 一个kubernetes网络简明教程[Part 1]

    一个kubernetes网络简明教程[Part 1] 翻译: icebug 所有我学到的关于kubernetes网络的事情 你可能已经在kubernetes集群当中跑了一堆服务并且正在享受其带来的好处 ...

  10. LeetCode(61):旋转链表

    Medium! 题目描述: 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5->NULL, ...