zoukankan      html  css  js  c++  java
  • 电路布线最大不想交子集比如(1,2)(2,1)

    /**
     * 电路布线找一个最大不想交子集!比如(1,2),(2,1)最大不想交子集就是1	 
     */
    
    #include<stdio.h>
    
    void MNS(int c[11],int n,int size[11][11]);
    
    int main(){
    
    	int n;
    	while(scanf("%d",&n),n){
    	
    		int c[11]={0};
    		int size[11][11]={0};
    		for(int i=1;i<=n;i++)
    			scanf("%d",&c[i]);
    		/*for(int it=1;it<=n;it++)
    			printf("%d  ",c[it]);
    		putchar('\n');*/
    		MNS(c,n,size);
    		printf("%d\n",size[n][n]);
    		/*for(int ji=1;ji<=n;ji++){
    			for(int ij=1;ij<=n;ij++)
    				printf("%d  ",size[ji][ij]);
    			putchar('\n');
    		}*/
    
    	}
    
    	return 0;
    
    
    }
    
    void MNS(int c[11],int n,int size[11][11]){
    
    	for(int i=1;i<=n;i++)
    		if(i<c[1])
    			size[i][i]=0;
    		else
    			size[1][i]=1;
    	for(int j=2;j<n;j++){
    		for(int k=1;k<c[j];k++)
    			size[j][k]=size[j-1][k];
    		for(int kk=c[j];kk<=n;kk++)
    			size[j][kk]=(size[j-1][kk]>size[j-1][c[j]-1]+1)?size[j-1][kk]:size[j-1][c[j]-1]+1;
    	}
    	size[n][n]=size[n-1][n]>size[n-1][c[n]-1]+1?size[n-1][n]:size[n-1][c[n]-1]+1;
    }
     
     
     
  • 相关阅读:
    文件操作3
    文件操作2
    kubernetes快速应用入门
    kubeadm初始化kubernetes集群
    kubernetes基础概念
    变量
    字面值
    关键字
    标识符
    Ubuntu安装MySql5.7
  • 原文地址:https://www.cnblogs.com/Acmen/p/2247141.html
Copyright © 2011-2022 走看看