首页 > 其他分享 >Codeforces Round #822 (Div. 2) - E. Rectangular Congruence

Codeforces Round #822 (Div. 2) - E. Rectangular Congruence

时间:2022-09-26 22:35:15浏览次数:84  
标签:int Congruence 矩阵 Codeforces Rectangular ++ 左下角 include

同余

Problem - E - Codeforces

题意

给一个长度为 \(n(2<=n<350)\) 的数组 \(b_i\), \(0<=b_0,b_1...b_n<n\)

要构造一个大小为 \(n*n\) 的矩阵 A,\(a_{i,i}=b_i\), 并且满足对于任意的 \(0<=r_1<r_2<n,0<=c_1<c2<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\)

即任意一个子矩阵,满足在模 n 意义下,左上角 + 右下角 != 左下角 + 右上角

思路

可以将上述限制移项,得到 \(A_{r_1,c_1}-A_{r_1,c_2}\not\equiv A_{r_2,c_1}-A_{r_2,c_2}\pmod n\)

即对于任意一个子矩阵,在模 n 意义下,左上角 - 右上角 != 左下角 - 右下角

因此只需要让每一行为公差不同的等差数列即可

代码

#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <cmath>
using namespace std;
#define endl "\n"

typedef long long ll;
typedef pair<int, int> PII;

const int N = 360;
int a[N][N];
int n;
int b[N];

void print()
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
			cout << a[i][j] << " ";
		cout << endl;
	}
}
int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> b[i];
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			a[i][j] = (j - i) * i + b[i];
			a[i][j] = (a[i][j] % n + n) % n;
		}
	}
	print();
    return 0;
}

标签:int,Congruence,矩阵,Codeforces,Rectangular,++,左下角,include
From: https://www.cnblogs.com/hzy717zsy/p/16732790.html

相关文章

  • Codeforces Round #822 (Div. 2)
    D.SlimeEscape被greedy整破防了。这是转换后的题面。考虑使用调整法构造,记2个序列分别为\(f,g\),那么一种调整法是,\(f\)加了没事就加了不管,否则我们再考虑往当......
  • [CF1734E]Rectangular Congruence
    做题时间:2022.9.23\(【题目描述】\)给定一个质数\(n(2\leqn<350)\)以及\(n\)个整数\(b_1,b_2,...,b_n(0\leqb_i<n)\),构造一个\(n\timesn\)的矩阵,要求满足:\(0......
  • Codeforces Round #822
    目录写在前面ABCDEF写在最后写在前面比赛地址:https://codeforces.com/contest/1734。复健后第一场div2,感觉有19年水平了。哈哈。A\(t\)组数据,每组数据给定一长......
  • Codeforces Round #822 (Div. 2)
    比赛链接CodeforcesRound#822(Div.2)D.SlimeEscape给一个长度为\(n\)的序列以及一个\(k\),表示当前位于\(k\)这个位置,要求该位置的数往左或者右,每次只能加上......
  • Codeforces Round #822 (Div. 2) D
    https://codeforces.com/contest/1734/problem/D题意有n只史莱姆,每只都有一个值,其中第k只被你控制,你希望能走到0或n+1这两个位置,也就是说遇到路上的史莱姆需要......
  • CodeForces 比赛记录
    带星号的表示vp。\(*\)CFRound601Div.1做出A和B1。B2.SendBoxestoAlice(HardVersion)考虑\(a\)的前缀和数列\(S\),在\(a\)中移动一个数,相当于在\(S......
  • Codeforces Round #822 D,E
    E.RectangularCongruence我们考虑对ar1,c1+ar2,c2≢ar1,c2+ar2,c1(modn)(同余情况下不同也是可以同时加任意数的可以感性理解一下)ar1,c1-ar1,c2≢ar2,c1......
  • Codeforces Round #822 Div.2 整场题解
    目前还有E,F没有更新。A.SelectThreeSticks直接对\(a\)排序,选出来的木棍一定是相邻三项,都往中间靠更优。B.Bright,Nice,Brilliant最优方案就是每一行第一个......
  • Codeforces Round #640 (Div. 4) D. Alice, Bob and Candies
    CodeforcesRound#640(Div.4)翻译岛田小雅D.Alice,BobandCandies出题人MikeMirzayanov\(n\)个糖果排成一排,从左到右分别被编号为\(1\)到\(n\)。第\(i\)......
  • Roadside Trees (Simplified Edition) CodeForces - 265B
    RoadsideTrees(SimplifiedEdition)CodeForces-265B松鼠Liss喜欢坚果。一条街上有n棵树(从西到东编号为1到n),每棵树的顶部都有一颗美味的坚果。树的高度我很高。......