zoukankan      html  css  js  c++  java
  • JZOJ6406. 【NOIP2019模拟11.05】小 D 与原题

    Description

    在这里插入图片描述
    n<=1000n<=1000

    Solution

    • 构造题,做法简单,思路奇妙(打表找规律)。
    • 一种构造方法是按顺序将(1,2)(1,3)…(1,n)(2,3)(2,4)…(n-1,n)加入n-1组里面。
      如果上一个加到了第i组里面,那么下一个就要从i+1组开始判断能不能加进去。
    • 还有另一种构造是这样的:
      在这里插入图片描述
      相当于是枚举匹配的(i,j)的中间点(可以假定将n翻成2n),还剩下一个就是2p了。
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    #define maxn 1005
    using namespace std;
    
    int n,i,j,k,bz[maxn][maxn];
    
    int main(){
    //	freopen("problem.in","r",stdin);
    //	freopen("problem.out","w",stdout);
    	scanf("%d",&n);
    	for(i=0;i<n;i++){
    		for(j=0;j<n;j++) if ((j+j)%(n-1)==i){
    			printf("%d %d ",j+1,n),bz[j][n-1]=bz[n-1][j]=1;
    			break;
    		}
    		for(j=0;j<n-1;j++){
    			k=(i+n-1-j)%(n-1);
    			if (!bz[j][k]&&j!=k) {
    				printf("%d %d ",j+1,k+1),bz[j][k]=bz[k][j]=1;
    			}
    		}
    		printf("
    ");
    	}
    }
    
    
  • 相关阅读:
    Linux忘了root的密码怎么办
    缩略图的实现
    ASP.NET程序编写注意 (转载)
    太极拳
    Linux系统管理技巧大荟萃
    茶经(转载)
    datagrid的显示控制
    太极功
    Linux下硬盘分区详解
    Tomcat4.0中文问题简单解决方法
  • 原文地址:https://www.cnblogs.com/DeepThinking/p/13090919.html
Copyright © 2011-2022 走看看