HDU 1455
来源:互联网 发布:淘宝拍摄模特怎么样 编辑:程序博客网 时间:2024/06/08 06:17
深搜+剪枝,比较容易超时
#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;int mark[111];int len[111];int ans, num, aim, flag;int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b; }void dfs(int now, int finish, int k) {if(finish == ans) {flag = 1;return;}if(flag == 1) return;int j;for(int i = k+1; i < num; i++) {if(mark[i]) continue;if(now+len[i] > aim) return;if(now+len[i] == aim) {mark[i] = 1;dfs(0, finish+1, -1);mark[i] = 0;}if(now+len[i] < aim) {mark[i] = 1;dfs(now+len[i], finish, i);mark[i] = 0;}if(!now) return;if(flag) return;for(j = i+1; j < num; j++)if(len[j] != len[j-1]) break;i = j-1;}}int main() {while(scanf("%d", &num), num != 0) {int sum = 0;for(int i = 0; i < num; i++) {scanf("%d", &len[i]);sum += len[i];}qsort(len, num, sizeof(int), cmp);int i;for(i = num; i >= 2; i--) {if(sum%i) continue;if(len[num-1] > sum/i) continue;memset(mark, 0, sizeof(mark));flag = 0;ans = i;aim = sum/i;dfs(0, 0, -1);if(flag == 1) break;}printf("%d\n", sum/i);}return 0;}
0 0
- HDU 1455
- HDU 1455
- hdu 1455 hdu 1455 Sticks
- HDU 1455 Sticks
- Hdu 1455 Sticks
- hdu 1455 Sticks
- HDU 1455 Sticks
- hdu 1455 Sticks
- hdu 1455 Sticks
- HDU 1455 Sticks
- 【DFS】hdu 1455 Sticks
- Sticks hdu 1455
- hdu 1455 sticks
- hdu 1455 搜索经典
- HDU 1455 Sticks
- HDU 1455 Sticks
- HDU 1455 Sticks
- HDU 1455 Sticks
- procedure show_space
- OpenERP仓库
- cocos2d-x-2.2.3和vs2012环境配置
- java定时任务的实现
- 从Java到C++——常量值的使用和定义
- HDU 1455
- Android 反汇编Smali语言中插入log打印
- procedure show_space_assm
- 深入理解 Java中的 流 (Stream)
- 关于编程语言的演化
- javasript体系结构
- 寻址方式与指令系统
- C# SqlServer操作类
- android检测当前网络是否可用