http://acm.hdu.edu.cn/showproblem.php?pid=1455

int dfs(int all,int sum,int now),all代表剩余总长,sum,代表每段长,now代表当前拼接的长度。

if(a[i]+now == sum || now == 0) return 0;
while(a[i+1] == a[i]) i++;

这两句话剪枝很重要。

#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std; int a[],used[],n; bool cmp(int a,int b)
{
return a>b;
} int dfs(int all,int sum,int now)
{
if(all == && now == sum) return ;
if(now == sum) now = ;
for(int i = ;i <= n;i++)
{
if(used[i] || a[i]+now > sum) continue;
used[i] = ;
if(dfs(all-a[i],sum,now+a[i])) return ;
used[i] = ;
if(a[i]+now == sum || now == ) return ;
while(a[i+] == a[i]) i++;
}
return ;
}
int main()
{
while(cin >> n && n)
{
int sum = ;
for(int i = ;i <= n;i++)
{
cin >> a[i];
sum += a[i];
}
sort(a+,a+n+,cmp);
for(int i = a[];i <= sum;i++)
{
if(sum%i) continue;
memset(used,,sizeof(used));
if(dfs(sum,i,))
{
cout << i << endl;
break;
}
}
}
return ;
}

HDU_1455_dfs的更多相关文章

随机推荐

  1. 01_console 你真的了解吗,不曾了解过得console~

    对于 console 你只知道 console.log 吗? 那你就 out 啦!!! // 1. 显示信息 console.log('hello'); console.info('信息'); con ...

  2. docker-覆盖网络

    docker network rm docker_gwbridge Error response from daemon: Error response from daemon: network ne ...

  3. 你的java服务挂了吗

    问题背景 最近测试环境服务总是崩溃,运维小哥全部重启后还是崩溃,查看了服务运行情况占用内存确实挺高的,看来是时候优化一波jvm参数了. 优化前 top $(ps -e | grep java | aw ...

  4. html 贪吃蛇代码

    最近在搞自己的网站,维护的时候准备放个贪吃蛇上去,顶一下原有的页面. 这个贪吃蛇有一点毒.原来设定了100级:100级刚开局就挂了.后来改掉了选项菜单,修复了. 还有什么bug,欢迎点击侧边的QQ按钮 ...

  5. hexo博客零基础搭建系列(一)

    文章目录 其他搭建 1.简介 2.安装Node和Git 3.安装Hexo 4.Hexo的目录结构 5.我的版本 其他搭建 不好意思,下面的链接都是CSDN的链接,如果要在博客园看,请点我的分类查看.因 ...

  6. MySQL定时备份(全量备份+增量备份)

    MySQL 定时备份 参考 zone7_ 的 实战-MySQL定时备份系列文章 参考 zmcyu 的 mysql数据库的完整备份.差异备份.增量备份 更多binlog的学习参考马丁传奇的 MySQL的 ...

  7. Ubuntu16安装NVIDIA驱动后重复登录 简单粗暴

    第一步 卸载所有NVIDIA的东西 第二步 开机,应该能进入默认驱动的桌面了,在设置里关闭开机密码,开机自动登录 第三步 安装英伟达驱动

  8. window 10 安装Oracle odac 64位

    下载地址:https://www.oracle.com/cn/database/technologies/windows/downloads.html 可以下载XCopy版,也可以继续往下看下载安装文 ...

  9. SpringCloud之Ribbon(四)

    一:Ribbon是什么? Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连接 ...

  10. isStatic:检测数据是不是除了symbol外的原始数据

    function isStatic(value) { return( typeof value === 'string' || typeof value === 'number' || typeof ...