Prosjecni(构造)

Prosjecni

【题目摘要】
描述
Slavko很无聊,所以他把正整数填到N*N的方阵中。
如果他填出来的方阵满足以下条件,他会特别高兴:
●每行中的数字的平均值是一个位于同一行的整数。
●每列中的数字的平均值是一个位于同一列的整数。
●表中的所有数字都不同。
帮助Slavko找到一种会让他开心的填法。
输入
第一行输入包含整数N(1≤N≤100)。表示方阵的行数和列数。
输出
输出N行,每行输出N个由空格分隔的整数。令第i行中的第j个数字对应于Slavko将在方阵的第i行第j列写下的值。
所有数字必须大于0且小于109。
如果有多个解决方案,则输出任意一个。
如果没有任何解决方案,则输出-1。
分数分布
无特殊分数分布。
样例输入1
3
样例输出1
1 2 3
4 5 6
7 8 9
样例输入2
2
样例输出2
-1
注意n=2时的特判

【思路+题解】

这种一看就知道不是平常套路的题
做事原则:多次试验寻找普遍规律暴力打出较简单的一组解

再玄学一波神推搞出规律(maybe not right)

刚开始我就发现n是奇数时直接1~n^2打成矩阵就是一组解了
但偶数的时候呵呵

在之后的评讲当中我重见天日Ac方法见下:

先分类讨论:

1)nnn为奇数:虽然已经知道了结论我们也要严谨推理 让我们花簇矩阵
在这里插入图片描述
申明:这是一个有规律的矩阵第iii行与第111行一样&&jjj列和第111列一样

接下来的证明就以第111行和第111列为例 如果你不信可以从头证到尾俺比较懒

需要等差数列公式

行:S=(1+n)∗n/2S=(1+n)*n/2S=(1+n)n/2

平均数=S/n=(1+n)∗n/2/n=(1+n)/2=S/n=(1+n) *n/ 2 / n= (1+n) / 2=S/n=(1+n)n/2/n=(1+n)/2

nnn为奇数所以n+1n+1n+1一定是偶数

除以222一定为整&&1≤X≤n1\le X\le n1Xn那么一定出现在这一行中

列:(行也可以这么证)

第一个加上最后一个S1:1+1+(n−1)∗nS1:1+1+(n-1)*nS11+1+(n1)n

第二个加上倒数第二个S2:n+1+(n−2)∗n=S1S2:n+1 + (n - 2)*n = S1S2:n+1+(n2)n=S1

…以此类推
nnn为奇数所以(n+1)/2(n+1)/2(n+1)/2就是正中间的数x,xx,xx,x的前一个等于x−nx-nxn

xxx的后一个等于x+nx+nx+n两个相加除以二就刚好等于xxx

结合上面所有的S1,S2,S3S1,S2, S3S1S2,S3相等可知列的平均数也一定出现

2)nnn为偶数 花簇n=4n=4n=4的情况表
在这里插入图片描述
多画几组可以发现前n−1n-1n1个都是连续的

容易发现6=n∗(n−1)/26=n*(n-1)/26=n(n1)/2 那么这一行的和S=n∗(n−1)S=n*(n-1)S=n(n1) 平均数就是S/n=n−1S/n=n-1S/n=n1

第i行的规律均是如此 如果你不信可以从头证到尾本仙女比较懒

因为行的规律出来了那么下一行打头的这个数就可以随意选择,但为了方便,我们可以接
着上一行最后一列的数加一打头,方便且不重复,真是太有心了

BUT唯一的bug就在最后一行的选择上你如果把倒数第二行最后一列直接加111

你发现这一列就满足不了题意,这个时候技巧就在于把行的规律照搬到列上去

而就在这个时候你惊奇地发现最后一行自动满足题意了
在这里插入图片描述
我们以第一列和第二列为例证明(先不看最后一行):

第二列每一个数都比第一列的数大111

按照上面行推出来的结论

自然而然第二列最后一行的数会比第一列最后一行的数大111

如此最后一行自然也满足我们的行结论了

#include <cstdio>
#define MAXN 100
int n, tot;
int num[MAXN][MAXN];
int main() {scanf ( "%d", &n );if ( n == 2 ) return ! printf ( "-1" );if ( n % 2 ) {for ( int i = 1;i <= n;i ++ )for ( int j = 1;j <= n;j ++ )num[i][j] = ++ tot;}else {int sum;for ( int i = 1;i < n;i ++ ) {sum = 0;for ( int j = 1;j < n;j ++ ) {if ( j == 1 ) num[i][j] = num[i - 1][n] + 1;else num[i][j] = num[i][j - 1] + 1;sum += num[i][j];}num[i][n] = num[i][n - 1] * n - sum;}for ( int j = 1;j <= n;j ++ ) {sum = 0;for ( int i = 1;i < n;i ++ )sum += num[i][j];num[n][j] = num[n - 1][j] * n - sum;}}for ( int i = 1;i <= n;i ++ ) {for ( int j = 1;j < n;j ++ )printf ( "%d ", num[i][j] );printf ( "%d\n", num[i][n] );}return 0;
} 

在这里插入图片描述又A一道,来嗨起来!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

撒花!中文翻译仓库链接已加入 ML.NET 官方示例网站首页

从2018年12月02日决定开始做ML.NET 示例中文版https://github.com/feiyun0112/machinelearning-samples.zh-cn&#xff0c;然后以每天一篇的速度进行翻译&#xff0c;总共耗时15天&#xff0c;将现有的官方实例全部翻译成了中文&#xff0c;并提交了添加中文链接PR&#xff0c;…

P3803 【模板】多项式乘法(FFT)

P3803 【模板】多项式乘法&#xff08;FFT&#xff09; 题目描述 给定一个 n 次多项式 F(x)&#xff0c;和一个 m 次多项式 G(x)。 请求出 F(x)和 G(x)的卷积。 从低到高输出F(x)*G(x)的系数 另一种问法&#xff1a; 如果有两个无限序列a和b&#xff0c;那么它们卷积的结果是…

CF666E-Forensic Examination【广义SAM,线段树合并】

正题 题目链接:https://www.luogu.com.cn/problem/CF666E 解题思路 给出一个串SSS和nnn个串TiT_iTi​。mmm次询问Sa∼bS_{a\sim b}Sa∼b​在Tl∼rT_{l\sim r}Tl∼r​中出现的最多次数并且输出这个串的编号。 1≤∣s∣≤5105,∑Ti≤5104,1≤m≤51051\leq |s|\leq 5\times 10^5…

简简单单组合数学

简简单单组合数学 P3158 [CQOI2011]放棋子 \(\uparrow\) 假组合数学&#xff0c;真 \(\text{DP}\) 。 \(f[i][j][k]\) : 用了 \(i\) 行 \(j\) 列&#xff0c;涂了前 \(k\) 种颜色的方案数。 \(g[i][j][k]\) : 用了 \(i\) 行 \(j\) 列&#xff0c;涂了第 \(k\) 种颜色的方案数(用…

YBTOJ:单词频率(AC自动机)

解析 我对力量一无所知 通过这题&#xff0c;可以看出我对AC自动机还是完全没有理解 qwq 首先容易想到&#xff1a; 建一课trie树&#xff0c;然后建树时记录每个串s的终点&#xff0c;这个点后面每被经过一次&#xff0c;就相当于出现一次该单词s 但是&#xff0c;这种“出现”…

一元一次方程

一元一次方程–逆波兰栈 【题目摘要】 题目描述 SLON是一个调皮的学生&#xff0c;为了让他静下心来&#xff0c;老师给他出了一道数学题&#xff1a; 给定表达式A&#xff0c;A中含有变量x和,-,*,(,)这些符号&#xff0c;括号成对出现&#xff0c;一个算术运算符均对应两个操…

.net core上 K8S(七).netcore程序的服务发现

正文上一章我们分享了k8s的网络代理模式&#xff0c;今天我们来分享一下k8s中的服务发现。1.环境变量模式的服务发现k8s默认为我们提供了通过环境变量来实现服务发现的功能&#xff0c;前提是1.需要service在pod之前创建2.适用于同一命名空间1.1创建servicekubectl create -f n…

质数与合数

质数与合数 题意&#xff1a; FFF和GGG正在玩一个质数与合数的游戏 一开始有N个石头 FFF和GGG轮流对这堆石头进行操作&#xff0c;FFF每次选择1到K之间的一个数x&#xff0c;并拿走x个石头&#xff0c;拿走之后剩下的石头数量必须是质数 接着GGG进行同样的操作&#xff0c;但…

P6628-[省选联考 2020 B 卷] 丁香之路【欧拉回路,最小生成树】

正题 题目链接:https://www.luogu.com.cn/problem/P6628 题目大意 给出nnn个点的一张完全无向图&#xff0c;i∼ji\sim ji∼j的边权是∣i−j∣|i-j|∣i−j∣。 然后给出mmm条必经边&#xff0c;和起点sss。 求对于每个终点经过所有必经边的最短路径。 1≤n≤2500,0≤m≤n(n…

ASP.NET Core 实战:使用ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目

一、前言这几年前端的发展速度就像坐上了火箭&#xff0c;各种的框架一个接一个的出现&#xff0c;需要学习的东西越来越多&#xff0c;分工也越来越细&#xff0c;作为一个 .NET Web 程序猿&#xff0c;多了解了解行业的发展&#xff0c;让自己扩展出新的技能树&#xff0c;对…

【CF1199 D,E, F】Welfare State // Matching vs Independent Set // Rectangle Painting 1

2019-08-15下午三道练习题CF1199 思路有点难想 but很好实现 这是原网站链接&#xff1a;传送门 这里只完成D, E, F三题 文章目录D&#xff1a;Welfare State题目大意正解瞅瞅代码E:Matching vs Independent Set题目大意正解代码实现F:Rectangle Painting 1题目大意正解代码实现…

YBTOJ:前缀匹配(AC自动机)

文章目录题目描述解析代码题目描述 解析 做的不错 把trie树真的当成一棵树递归即可 注意一个标记时的问题&#xff1a; void AC(){int lstrlen(s01),pl1;for(int i1;i<l;i){int aask(s0[i]);pltr[pl][a];int kpl;while(k>1){if(ok[k]) break;//注意&#xff01;ok[k]1;…

[HAOI2006]均分数据

[HAOI2006]均分数据 题解&#xff1a; 题目稍微解释一下&#xff1a; 把n个数以分为m组&#xff0c;计算每一组的和&#xff0c;求得到的这m个数的方差。由于分法是任意的&#xff0c;我们要求这些方差中的最小值 我们先用STL中的函数random_shuffle()用来对一个元素序列进行…

开机指南

有些博客上了密码&#xff0c;密码是一个 \(100\) 以内的数字(与ACwisher有关) 腾讯QQ PC版 Notepad Div-c 编译选项&#xff1a; -Wl,--stack1024000000 -Wall -lm -O2 -stdc14 // Author:A weak man named EricQian #include<bits/stdc.h> using namespace std; #defin…

Docker最全教程——从理论到实战(八)

在本系列教程中&#xff0c;笔者希望将必要的知识点围绕理论、流程&#xff08;工作流程&#xff09;、方法、实践来进行讲解&#xff0c;而不是单纯的为讲解知识点而进行讲解。也就是说&#xff0c;笔者希望能够让大家将理论、知识、思想和指导应用到工作的实际场景和实践之中…

CF5E-Bindian Signalizing【单调栈】

正题 题目链接:https://www.luogu.com.cn/problem/CF5E 题目大意 圆上有nnn个山&#xff0c;两个山之间可以看到当且仅当它们之间的两条弧中有一条满足所有山都不高于它们两个。 求可以看到的山的对数。 3≤n≤106,1≤hi≤1093\leq n\leq 10^6,1\leq h_i\leq 10^93≤n≤106,…

不定方程(质数与因数)

文章目录题目描述解析代码题目描述 数据范围有误&#xff01;应该是不超过1e6 解析 容易推出&#xff1a; y&#xff08;x∗*∗n!)/(x-n!) 换元&#xff0c;令tx-n&#xff01; 则&#xff1a; yn!(n!)2/t 因为x、y都与t一一对应 所以本题就是求 (n!)2 的因数个数 我们求出n&…

Matlab快速入门

命令行窗口 clc 清屏 clear 清理变量 常用矩阵&#xff1a; x[0:2] 这是转置符号xlinspace(0,2,5) 从0到2分配5个空间xzeros(2,3)两行三列全为0的矩阵、 ones(2)2行2列全为1的方阵 eye(2)单位阵 rand(1,2)产生一行二列的随机数&#xff08;从0到1之间均匀随机数&#xff09;固…

【CF 1191】Tokitsukaze, CSL and Stone Game//Tokitsukaze and Duel//Tokitsukaze and Strange Rectangle

很难想 but很好实现 博弈论专练 传送门 惯例这里只完成D&#xff0c;E&#xff0c;F 话不多说上代码 文章目录D:Tokitsukaze, CSL and Stone Game题目大意题解代码实现E&#xff1a;Tokitsukaze and Duel题目大意题解代码实现E:Tokitsukaze and Strange Rectangle题目大意题解代…

主席树 - 可持久化线段树

模板 P3834 【模板】可持久化线段树 2(主席树) 区间求第 \(k\) 大 模板代码 #include<bits/stdc.h> using namespace std; #define Maxn 200005 typedef long long ll; inline int rd() {int x0;char ch,t0;while(!isdigit(ch getchar())) t|ch-;while(isdigit(ch)) xx*…