HDU_1455_dfs
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的更多相关文章
随机推荐
- list的基本方法
数据类型列表 列表的创建 使用[ ]创建列表,元素之间使用逗号隔开, list()创建列表 列表添加新的元素 list.append() 在list末尾增加一个元素 list.insert(n, &q ...
- 利用log4net创建日志文件时过滤日志,这是坑还是?
前言 网上貌似没有太多关于log4net过滤日志的资料,在研究过程中发现一点小问题,这里做下记录,希望对后续有用到的童鞋起到一丢丢帮助作用. log4net日志过滤 由于是在.NET Core中使用, ...
- 《图解机器学习-杉山将著》读书笔记---CH4
CH4 带有约束条件的最小二乘法 重点提炼 提出带有约束条件的最小二乘学习法的缘故: 左图中可见:一般的最小二乘学习法有个缺点----对于包含噪声的学习过程经常会过拟合 右图:有了空间约束之后,学 ...
- CMS总结
过程 初始标记 从roots(例如:thread stack引用的对象,static对象),新生代对象,标记直接引用的老年代对象. 并发标记 利用初始标记阶段标记的对象,递归标记整个老年代. 该阶段与 ...
- django框架中的静态文件引入
首先在项目文件中新建文件夹static 之后在settings.py中配置路径 如下图所示: 下一步在你刚创建的static文件夹中添加app的文件夹名称,例如:teacher,如下图: 之后在tea ...
- 在浏览器窗口内移动的div
------------今天研究了一个最简单的屏保效果----------- 效果图如下:效果很神奇,就是这个div在浏览器窗口不断的灵活移动 代码却很简单 <!DOCTYPE html> ...
- 《深入浅出话数据结构》系列之什么是B树、B+树?为什么二叉查找树不行?
本文将为大家介绍B树和B+树,首先介绍了B树的应用场景,为什么需要B树:然后介绍了B树的查询和插入过程:最后谈了B+树针对B树的改进. 在谈B树之前,先说一下B树所针对的应用场景.那么B树是用来做什么 ...
- React16源码解读:开篇带你搞懂几个面试考点
引言 如今,主流的前端框架React,Vue和Angular在前端领域已成三足鼎立之势,基于前端技术栈的发展现状,大大小小的公司或多或少也会使用其中某一项或者多项技术栈,那么掌握并熟练使用其中至少一种 ...
- OpenGLES思维导图
两本书到头来就只剩下了这三张图了吧.想要原图:https://github.com/wangwangla/biji/blob/master/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8 ...
- Nginx安装目录讲解
查看nginx相关目录 rpm -ql nginx 查看到如下目录 /etc/logrotate.d/nginx 配置文件 作用:nginx日志轮转,用于logrotate(轮替)服务的日志切割 /e ...