「AGC027D」Modulo Matrix

传送门

神仙构造题。

首先考虑一个非常自然的思路,我们把棋盘黑白染色后会变成一个二分图,黑色棋子只会与白色棋子相邻。

也就是说,我们可以将二分图的一部随便填数,另一部分填上黑色数的乘积加上某个余数即可。

需要注意随便填数的一部的所有数必须大于这个选择的余数。

然后你发现过不了,这样的数的大小期望最大值大概是 \((\frac{n^2}{2})^4\)。

然后我们可以考虑给每一个对角线(每一行、每一列应该也行?)设一个权值 \(x\),然后随便填数的部分的值等于对应两条对角线上的值的乘积。

为了保证不重复,我们可以使用质数。

这样感觉就非常对了。

/*---Author:HenryHuang---*/
/*---Never Settle---*/
#include<bits/stdc++.h>
using namespace std;
const long long maxn=2e6+5;
long long pri[maxn],p[maxn],cnt;
void init(){
for(long long i=2;i<=2e6;++i){
if(!p[i]) pri[++cnt]=i;
for(long long j=1;j<=cnt&&i*pri[j]<=2e6;++j){
p[i*pri[j]]=1;
if(i%pri[j]==0) break;
}
}
}
long long a[505][505];
long long nx[]={0,0,1,-1};
long long ny[]={1,-1,0,0};
long long gcd(long long a,long long b){
if(!b) return a;
return gcd(b,a%b);
}
map<long long,int> s;
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
long long n;cin>>n;
init();
for(int i=1;i<=n;++i){
for (int j=((i+1)&1)+1;j<=n;j+=2){
a[i][j]=pri[(i+j)/2]*pri[n+(i-j)/2+(n+1)/2];
}
}
for(long long i=1;i<=n;++i){
for(long long j=1;j<=n;++j){
if(((i+j)&1)==1){
long long lcm=0;
for(long long k=0;k<4;++k){
if((!lcm)&&a[i-nx[k]][j-ny[k]]){
lcm=a[i-nx[k]][j-ny[k]];
}
else if(a[i-nx[k]][j-ny[k]]){
lcm=1ll*lcm/gcd(lcm,a[i-nx[k]][j-ny[k]])*a[i-nx[k]][j-ny[k]];
}
}
long long tmp=lcm;
while(s[tmp+1]) tmp+=lcm;
a[i][j]=tmp+1; s[tmp+1]=1;
}
cout<<a[i][j]<<' ';
}
cout<<'\n';
}
return 0;
}

「AGC027D」Modulo Matrix的更多相关文章

  1. 「AGC032E」 Modulo Pairing

    「AGC032E」 Modulo Pairing 传送门 如果所有数都 \(<\lfloor \frac m 2\rfloor\),一个自然的想法是对所有数排序过后大小搭配,这样显然是最优秀的. ...

  2. Loj 3058. 「HNOI2019」白兔之舞

    Loj 3058. 「HNOI2019」白兔之舞 题目描述 有一张顶点数为 \((L+1)\times n\) 的有向图.这张图的每个顶点由一个二元组 \((u,v)\) 表示 \((0\le u\l ...

  3. 「CSA49」Bunny on Number Line

    「CSA49」Bunny on Number Line 题目大意:有一个人从0开始走,每次可以向前走一步或者回到1,那么会产生一个位置序列,其中给出 \(k\) 个位置是好的.定义一个位置序列是好的, ...

  4. 「Luogu4321」随机游走

    「Luogu4321」随机游走 题目描述 有一张 \(n\) 个点 \(m\) 条边的无向图,\(Q\) 组询问,每次询问给出一个出发点和一个点集 \(S\) ,求从出发点出发随机游走走遍这个点集的期 ...

  5. LOJ3044. 「ZJOI2019」Minimax 搜索

    LOJ3044. 「ZJOI2019」Minimax 搜索 https://loj.ac/problem/3044 分析: 假设\(w(1)=W\),那么使得这个值变化只会有两三种可能,比\(W\)小 ...

  6. 「HNOI2013」游走

    「HNOI2013」游走 题目描述 一个无向连通图,顶点从 \(1\) 编号到 \(N\) ,边从 \(1\) 编号到 \(M\) .小 \(Z\) 在该图上进行随机游走,初始时小 \(Z\) 在 \ ...

  7. loj #2143. 「SHOI2017」组合数问题

    #2143. 「SHOI2017」组合数问题   题目描述 组合数 Cnm\mathrm{C}_n^mC​n​m​​ 表示的是从 nnn 个互不相同的物品中选出 mmm 个物品的方案数.举个例子, 从 ...

  8. Loj #3044. 「ZJOI2019」Minimax 搜索

    Loj #3044. 「ZJOI2019」Minimax 搜索 题目描述 九条可怜是一个喜欢玩游戏的女孩子.为了增强自己的游戏水平,她想要用理论的武器武装自己.这道题和著名的 Minimax 搜索有关 ...

  9. 【LOJ】#3098. 「SNOI2019」纸牌

    LOJ#3098. 「SNOI2019」纸牌 显然选三个以上的连续牌可以把他们拆分成三个三张相等的 于是可以压\((j,k)\)为有\(j\)个连续两个的,有\(k\)个连续一个的 如果当前有\(i\ ...

随机推荐

  1. 批量执行异步任务CompletionService

    批量执行异步任务CompletionService 核心思想,就是将异步结果放入到阻塞队列中,然后再消费队列,实现异步任务批量执行 接口方法说明 Future<V> submit(Call ...

  2. MinkowskiEngine Miscellaneous Classes杂类

    Miscellaneous Classes杂类 内核生成器 class MinkowskiEngine.KernelGenerator(kernel_size = -1,stride = 1,dila ...

  3. ContOS8 使用yum安装MariaDB

    首先全部删除MySQL/MariaDB(若是首次安装可根据需要跳过此步) 若不清楚MySQL和MariaDB的关系请移步至 Mariadb百科 1.查看系统版本(以下任一命令即可). # cat /p ...

  4. Postman 的基本功能按钮解释、发送post请求及get请求、查看响应信息

    一.界面功能按钮: 二.postman模拟发送post请求: 三.postman模拟get请求: 选择请求类型-->输入请求URL-->点击send发送 四.查看响应信息

  5. Go语言实现的23种设计模式之结构型模式

    摘要:本文主要聚焦在结构型模式(Structural Pattern)上,其主要思想是将多个对象组装成较大的结构,并同时保持结构的灵活和高效,从程序的结构上解决模块之间的耦合问题. 本文分享自华为云社 ...

  6. 解放生产力,自动化生成vue组件文档

    一.现状 Vue框架在前端开发中应用广泛,当一个多人开发的Vue项目经过长期维护之后往往会沉淀出很多的公共组件,这个时候经常会出现一个人 开发了一个组件而其他维护者或新接手的人却不知道这个组件是做什么 ...

  7. 如何在国产龙芯架构平台上运行c/c++、java、nodejs等编程语言

    高能预警:本文内容过于硬核,涉及编译器原理.cpu指令集.机器码.编程语言原理.跨平台原理等计算机专业基础知识,建议具有c.c++.java.nodejs等多种编程语言开发能力,且实战经验丰富的资深开 ...

  8. Unity 添加,修改默认创建脚本模板

    Unity 默认创建的脚本可以添加也可以修改,不需要修改Editor. 一.找到模板目录 \Editor\Data\Resources\ScriptTemplates 二.如果要修改模板,直接打开修改 ...

  9. 关于Word转Markdown的工具Typora安装及使用

    简介 Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别.即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编 ...

  10. Linux-ELK日志收集

    1.ELK简介 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一个FileBeat,它是一个轻量级的日志收集处理工 ...