「AGC027D」Modulo Matrix
「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的更多相关文章
- 「AGC032E」 Modulo Pairing
「AGC032E」 Modulo Pairing 传送门 如果所有数都 \(<\lfloor \frac m 2\rfloor\),一个自然的想法是对所有数排序过后大小搭配,这样显然是最优秀的. ...
- Loj 3058. 「HNOI2019」白兔之舞
Loj 3058. 「HNOI2019」白兔之舞 题目描述 有一张顶点数为 \((L+1)\times n\) 的有向图.这张图的每个顶点由一个二元组 \((u,v)\) 表示 \((0\le u\l ...
- 「CSA49」Bunny on Number Line
「CSA49」Bunny on Number Line 题目大意:有一个人从0开始走,每次可以向前走一步或者回到1,那么会产生一个位置序列,其中给出 \(k\) 个位置是好的.定义一个位置序列是好的, ...
- 「Luogu4321」随机游走
「Luogu4321」随机游走 题目描述 有一张 \(n\) 个点 \(m\) 条边的无向图,\(Q\) 组询问,每次询问给出一个出发点和一个点集 \(S\) ,求从出发点出发随机游走走遍这个点集的期 ...
- LOJ3044. 「ZJOI2019」Minimax 搜索
LOJ3044. 「ZJOI2019」Minimax 搜索 https://loj.ac/problem/3044 分析: 假设\(w(1)=W\),那么使得这个值变化只会有两三种可能,比\(W\)小 ...
- 「HNOI2013」游走
「HNOI2013」游走 题目描述 一个无向连通图,顶点从 \(1\) 编号到 \(N\) ,边从 \(1\) 编号到 \(M\) .小 \(Z\) 在该图上进行随机游走,初始时小 \(Z\) 在 \ ...
- loj #2143. 「SHOI2017」组合数问题
#2143. 「SHOI2017」组合数问题 题目描述 组合数 Cnm\mathrm{C}_n^mCnm 表示的是从 nnn 个互不相同的物品中选出 mmm 个物品的方案数.举个例子, 从 ...
- Loj #3044. 「ZJOI2019」Minimax 搜索
Loj #3044. 「ZJOI2019」Minimax 搜索 题目描述 九条可怜是一个喜欢玩游戏的女孩子.为了增强自己的游戏水平,她想要用理论的武器武装自己.这道题和著名的 Minimax 搜索有关 ...
- 【LOJ】#3098. 「SNOI2019」纸牌
LOJ#3098. 「SNOI2019」纸牌 显然选三个以上的连续牌可以把他们拆分成三个三张相等的 于是可以压\((j,k)\)为有\(j\)个连续两个的,有\(k\)个连续一个的 如果当前有\(i\ ...
随机推荐
- curl测试代理连接某个域名的连接时间
缘由:需要查询一下某些代理访问指定域名所消耗的时间,来判断是否是代理连接受限 以下代理均为示例代理,无法真正连接 1. 通过curl方式来测试指定代理的连接情况,代理无账号密码 curl -x 127 ...
- GO学习-(34) Go实现日志收集系统3
Go实现日志收集系统3 再次整理了一下这个日志收集系统的框,如下图 这次要实现的代码的整体逻辑为: 完整代码地址为: etcd介绍 高可用的分布式key-value存储,可以用于配置共享和服务发现 ...
- clone() java 简单的复制
Java的复制有的 deepcopy 和 shapecopy 之分,这里简单的采用shapecopy 的 clone ( ) 方法, 但是指向的是同一个对象, 关于对象的问题,这里不做展开: / ...
- sql server 操作(不定期更新)
要求:基本的语法要清楚. sql server疑难点: 1.Partition by可以理解为 对多行数据分组后排序取每个产品的第一行数据 先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查 ...
- 面部表情视频中进行远程心率测量:ICCV2019论文解析
面部表情视频中进行远程心率测量:ICCV2019论文解析 Remote Heart Rate Measurement from Highly Compressed Facial Videos: an ...
- pytorch空间变换网络
pytorch空间变换网络 本文将学习如何使用称为空间变换器网络的视觉注意机制来扩充网络.可以在DeepMind paper 阅读更多有关空间变换器网络的内容. 空间变换器网络是对任何空间变换的差异化 ...
- MinkowskiNonlinearities非线性
MinkowskiNonlinearities非线性 MinkowskiReLU class MinkowskiEngine.MinkowskiReLU(*args, **kwargs) __init ...
- Python神经网络集成技术Guide指南
Python神经网络集成技术Guide指南 本指南将介绍如何加载一个神经网络集成系统并从Python运行推断. 提示 所有框架的神经网络集成系统运行时接口都是相同的,因此本指南适用于所有受支持框架(包 ...
- HAL库|神器cubemx的正确打开方式
前言 工欲善其事,必先利其器.HAL库的开发不一定必须使用cubemx,但是使用了cubemx,你绝对不会后悔.基于一些小伙伴对cubemx的使用还有一些疑问,本次小飞哥从新建工程到生成工程,编写应用 ...
- java后端知识点梳理——web安全
跨域 当浏览器执行脚本时会检查是否同源,只有同源的脚本才会执行,如果不同源即为跨域. 这里的同源指访问的协议.域名.端口都相同. 同源策略是由 Netscape 提出的著名安全策略,是浏览器最核心.基 ...