首页 > 其他分享 >CF1734E Rectangular Congruence 题解

CF1734E Rectangular Congruence 题解

时间:2023-02-19 21:14:21浏览次数:64  
标签:le 题目 int 题解 质数 Congruence CF1734E times

可能更好的阅读体验

题目传送门 to luogu

为什么只有 VP 才会遇到这种简单 E。

题目大意

给定一个质数 \(n\) 和长度为 \(n\) 的序列 \(b\),要求构造一个 \(n\times n\) 矩阵 \(a\),满足所有 \(r_1,r_2,c_1,c_2\)(\(1\le r_1<r_2\le n\),\(1\le c_1<c_2\le n\)),有 \(a_{r_1,c_1}+a_{r_2,c_2}\not\equiv a_{r_1,c_2}+a_{r_2,c_1}\pmod n\),同时 \(a_{i,i}=b_i\)。
数据范围:\(2\le n\le 350\)。

题目解析

对原式移项,得到 \(a_{r_1,c_1}-a_{r_1,c_2}\not\equiv a_{r_2,c_2}-a_{r_2,c_2}\pmod n\)。
也就是说,对于任意的 \(1\le l<r\le n\),\((a_{l,i}-a_{r,i})\bmod n\) 两两不同,换句话说,构成一个 \(0\sim n-1\) 的一个排列。
注意到我们如果给一行都加上一个数不会影响 \(a_{l,i}-a_{r,i}\),所以 \(a_{i,i}=b_i\) 的限制可以忽略,只需要最后整行加上一个数即可。

接下来考虑如何得到一个任意的合法的 \(a\)。
首先假设 \(a_{2,i}-a_{1,i}=i\),然后考虑怎么构造 \(a_{3,i}\)。
我们发现直接让 \(a_{3,i}-a_{2,i}=i\) 即可。
换句话说可以直接,\(a_{i,j}=i\times j\bmod n\)。
我们来证明这样是正确的。

换句话说,对于任意的 \(0\le x<n\),\(xy\bmod n\)(\(0\le y<n\))两两不同。
使用反证法,假设 \(0\le i<j<n\) 有 \(xi\equiv xj\pmod n\)。
发现因为 \(n\) 是质数,\(\gcd(x,n)=1\),所以 \(i\equiv j\pmod n\),得到 \(i=j\),矛盾,所以假设不成立,证毕。(类似于欧拉定理证明里的一步)

最后为了让 \(a_{i,i}=b_i\),所以得到 \(a_{i,j}\) 的通项:

\[a_{i,j}=(i\times j-i\times i+b_i)\bmod n \]

int n,b[maxn];
int main(){
	n=read(); int i,j; for(i=1;i<=n;i++) b[i]=read();
	for(i=1;i<=n;i++) for(j=1;j<=n;j++) print((i*j-i*i%n+b[i]+n)%n),pc(" \n"[j==n]);
	return 0;
}

标签:le,题目,int,题解,质数,Congruence,CF1734E,times
From: https://www.cnblogs.com/jiangtaizhe001/p/17135585.html

相关文章

  • VNCTF 2023-Web&Misc 部分题解
    WebBabyGo各个路由:r.GET("/",func(c*gin.Context){userDir:="/tmp/"+cryptor.Md5String(c.ClientIP()+"VNCTF2023GoGoGo~")+"/"ses......
  • vue-跨域问题解决方案
    1.使用django-cors-headers解决跨域问题1.使用pip安装pipinstalldjango-cors-headers2.添加到setting的app中INSTALLED_APPS=( ... 'corsheaders', ...)//......
  • 【题解】P4389 付公主的背包 / Euler 变换
    思路EGF+Euler变换.(有仙人搞出来解析组合做法,但是解析组合是什么?)Euler变换处理一类无标号计数问题。对于这道题而言,无序选取若干物品,使得其体积之和为\(m\),是无标......
  • Atcoder题解:Arc156_c
    数据范围\(10^5\),但是介绍一个\(O(n\logn)\)做法。我们考虑观察样例,发现样例都很小,而且\(\text{LCS}\)的长度都是\(1\),那么我们就猜答案最多为\(1\),并尝试去构造......
  • 2023 年 CCF 春季测试赛模拟赛 - 1 题解
    T1美丽校园标准解法很容易想到:从\(1\)出发向\(t\)走的路径不容易得到,而从\(t\)向\(1\)的路径只需要每次走到当前点的父节点。因此问题转化为:求从\(t\)向根......
  • ACwing 区间最大公约数题解 线段树(附证明)
    算进区间最大公因数单点线段树 https://www.acwing.com/problem/content/247/题目:给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:Clrd,表......
  • ABC261E 题解
    前言题目传送门!更好的阅读体验?这题另外两篇题解写的啥啊,这里提供一个非常好理解的做法。思路......
  • k8s学习-记录一次集群kube-controller,scheduler等多个pod重启的问题解决
    问题一次,集群的kube-controller,scheduler等容器重启,查看日志,发现时间很集中,在秒级范围内多个pod同时重启。查看pod状态kubectlgetpod-nkube-system|grepkube-contro......
  • ModuleNotFoundError: No module named 'selenium'问题解决
    1.打开Python文件的安装目录python3.exe所在文件夹,按住Shift键+鼠标右击,然后输入python3.exe-mpipinstall--upgradepip,跟新pip。 2.打开Python文件的安装目录Script......
  • DCDC电源SW电压尖峰过冲问题解析
    BUCK电源SW电压尖峰过冲问题产生原因:  (示波器正常测试时须关闭20M带宽限制)  ①器件本身的寄生电感以及寄生电容造成的,主要是电感电容器件的谐振频率。  ②功率电感......