zoukankan      html  css  js  c++  java
  • 木棍问题

    //木棍问题
    #include<stdio.h>
    #include<stdlib.h>
    bool concatenate(int,int,int,int);
    int compare(const void *arg1,const void *arg2)
    {
    	return *(int *)arg2-*(int *)arg1;
    }
    int sticks[100];
    bool used[100];
    
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	while(n!=0){
    		int i,sum=0,len;
    		for(i=0;i<n;i++){
    			used[i]=false;
    			scanf("%d",&sticks[i]);
    			sum+=sticks[i];
    		}
    		qsort(sticks,n,sizeof(int),compare);
    		len=sticks[0];
    		for(i=len;i<=sum;i++){
    			if(sum%i!=0) continue;
    			if(concatenate(n,n,0,i)){
    				printf("%d
    ",i);
    				break;
    			}
    		}
    		scanf("%d",&n);
    	}
    	return 0;
    }
    
    bool concatenate(int totalSticks,int unusedSticks,int left,int len){
    	int i;
    	if(unusedSticks==0&&left==0) return true;
    	if(left==0) left=len;
    	for(i=0;i<totalSticks;i++){
    		if(used[i]==true) continue;
    		if(sticks[i]>left) continue;
    		used[i]=true;
    		if(concatenate(totalSticks,unusedSticks-1,left-sticks[i],len)) return true;
    		used[i]=false;
    		if(sticks[i]==left||left==len) break;
    	}
    	return false;
    }

  • 相关阅读:
    猫眼电影面试经历
    北京市-钟鼓楼
    vipkid 面试经历
    转转面试经历
    二维数组中的查找
    不用除法来实现两个正整数的除法
    牛客网面试经历
    9. Palindrome Number
    Spring 简介
    mysql8 安装配置教程
  • 原文地址:https://www.cnblogs.com/javafly/p/6037174.html
Copyright © 2011-2022 走看看