[构造 随机乱搞] Codeforces Gym 100608 ASC 47 E. Elegant Square
来源:互联网 发布:宁波电话会议软件 编辑:程序博客网 时间:2024/06/03 17:28
这个题根本没思路 没想到就是乱搞
我们让每个点由三个质数组成 分别为
然后我们取出前n个质数 放在A第一行 接下来每行由上一行位移一下
B和C同理 这样肯定保证了行列乘积一样
但是会有数字重复 遇到重复 xjb交换个几行 就好了
直到没有重复
#include<cstdio>#include<cstdlib>#include<algorithm>#include<ctime>using namespace std;const int maxn=10000;int prime[maxn+5],num;int vst[maxn+5];inline void Pre(){ for (int i=2;i<=maxn;i++){ if (!vst[i]) prime[++num]=i; for (int j=1;j<=num && i*prime[j]<=maxn;j++){ vst[i*prime[j]]=1; if (i%prime[j]==0) break; } }}const int N=35;int n;inline void Swap(int *a,int *b){ for (int i=0;i<n;i++) swap(a[i],b[i]);}int a[N][N],b[N][N],c[N][N];int main(){ srand(time(0)); freopen("elegant.in","r",stdin); freopen("elegant.out","w",stdout); scanf("%d",&n); Pre(); for (int i=1;i<=n;i++) a[0][i-1]=prime[i]; for (int i=1;i<n;i++) for (int j=0;j<n;j++) a[i][j]=a[i-1][(j+1)%n]; for (int i=1;i<=n;i++) Swap(a[rand()%n],a[rand()%n]); for (int i=1;i<=n;i++) b[0][i-1]=prime[n+i]; for (int i=1;i<n;i++) for (int j=0;j<n;j++) b[i][j]=b[i-1][(j+1)%n]; for (int i=1;i<=n;i++) Swap(b[rand()%n],b[rand()%n]); for (int i=1;i<=n;i++) c[0][i-1]=prime[n+n+i]; for (int i=1;i<n;i++) for (int j=0;j<n;j++) c[i][j]=c[i-1][(j+1)%n]; for (int i=1;i<=n;i++) Swap(c[rand()%n],c[rand()%n]); while (1){ int flag=0; for (int i=0;i<n && !flag;i++) for (int j=0;j<n && !flag;j++) for (int k=0;k<i && !flag;k++) for (int t=0;t<j && !flag;t++) if (a[i][j]==a[k][t] && b[i][j]==b[k][t] && c[i][j]==c[k][t]){ flag=1; Swap(a[i],a[rand()%n]); Swap(b[i],b[rand()%n]); Swap(c[i],c[rand()%n]); } if (!flag) break; } for (int i=0;i<n;i++,printf("\n")) for (int j=0;j<n;j++) printf("%d ",a[i][j]*b[i][j]*c[i][j]); return 0;}
0 0
- [构造 随机乱搞] Codeforces Gym 100608 ASC 47 E. Elegant Square
- Codeforces 417E Square Table(随机算法)
- Codeforces 417E Square Table(随机算法)
- Codeforces 432E Square Tiling(构造+贪心)
- codeforces 432E Square Tiling(构造)
- Codeforces 463 E 乱搞
- [构造] Codeforces Gym 100553 NEERC 14 E. Epic Win!
- CodeForces 612e Square Root of Permutation(置换+构造)
- CodeForces Gym 100735E
- Codeforces gym 100685 E
- codeforces [Gym-100814E]
- Codeforces gym 101243 E
- codeforces E Square Table
- codeforces-gym-100187-E【bfs】
- codeforces GYM 101431D(构造)
- 【codeforces 732E】【贪心 map乱搞】
- Educational Codeforces Round 4 E. Square Root of Permutation(置换、构造)
- Codeforces Gym 100741G Yet Another Median Task 二分乱搞
- hdu 1231 最大连续和(一题多解)
- 静态关键字static和静态代码块、局部代码快、构造代码块
- 《Cracking the Coding Interview程序员面试金典》----原串翻转
- vue嵌套路由-params传递参数(四)
- HTK语音识别之MFCC参数基本配置参数解释
- [构造 随机乱搞] Codeforces Gym 100608 ASC 47 E. Elegant Square
- 【四】数据结构之Queue
- 成员变量、类变量、局部变量的区别
- 【转载】傅里叶变换理解
- windows下QT creator+openCV配置和使用
- POJ 3042 Grazing on the Run 区间dp
- 模拟实现strcpy函数,不使用strcpy库函数
- Java 1.8系列之重新认识HashMap
- c语言中全局变量的初始化