栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1011 Sticks

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1011 Sticks

#include<iostream>#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( "%dn", i );break;}}scanf( "%d", &n );}}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;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374277.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号