zoukankan      html  css  js  c++  java
  • 【UOJ #201】【CTSC 2016】单调上升路径

    http://uoj.ac/problem/201
    别人都一眼秒的题对我而言怎么那么难qwq
    这道题就是要构造一个n*n的邻接矩阵,满足矩阵(A)是一个拉丁方阵(也是数独?),(a_{ij}=a_{ji}),并且(i,jin{1,2dots n},a_{ii}=a_{jj})
    我乱画了一下,找到了一个比较有规律且满足条件的矩阵。
    这是n=10的情况:

    规律很显然吧qwq

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    const int N = 503;
    
    int n, a[N][N], num, c[N];
    
    int main() {
    	scanf("%d", &n);
    	for (int i = 1; i <= (n >> 1); ++i) {
    		num = n;
    		for (int j = n - i + 1; j > i; --j)
    			a[i][j] = --num;
    	}
    	
    	num = 2;
    	for (int i = 2; i <= (n >> 1); ++i) {
    		a[i][n] = num;
    		num += 2;
    	}
    	num = 1;
    	for (int i = (n >> 1) + 1; i < n; ++i) {
    		a[i][n] = num;
    		num += 2;
    	}
    	
    	for (int j = n - 1; j > (n >> 1); --j) {
    		num = 0;
    		for (int i = n - j + 2; i < j; ++i)
    			a[i][j] = ++num;
    	}
    	
    	c[1] = 0;
    	for (int i = 2; i < n; ++i) c[i] = c[i - 1] + (n >> 1);
    	for (int i = 1; i <= n; ++i) {
    		for (int j = i + 1; j <= n; ++j)
    			printf("%d ", ++c[a[i][j]]);
    		puts("");
    	}
    	return 0;
    }
    
  • 相关阅读:
    网络流模型之二分图匹配问题
    省选测试8
    省选测试9
    省选测试7
    省选测试6
    网络流最大流、最小割学习笔记
    kruskal重构树学习笔记
    省选测试5
    Python 打包成exe 方式
    JQuery
  • 原文地址:https://www.cnblogs.com/abclzr/p/6517887.html
Copyright © 2011-2022 走看看