USACO 5.3 Milk Measuring dfsid+dp
来源:互联网 发布:权力的游戏侏儒知乎 编辑:程序博客网 时间:2024/06/06 07:24
要用到迭代加深搜索(DFSID)。由于要求输出的是使用最少的牛奶桶,所以要先找牛奶桶数量为1的时候所有的组合,如果没有解再找牛奶桶数量为2...直到牛奶桶数量为P。
当搜索到一个组合,判断用这些牛奶桶是否能组成目标解的时候,可以用动态规划的方法来做。设f[i]是当需求的牛奶为i时,能否形成这个组合,是一个布尔型数组。
- 初始条件 f[0]=true
- 状态转移方程 f[i]=f[i] or f[ i-v[j] ] (j为使用的所有牛奶桶)
- 目标状态 f[Q]
- 如果f[Q]为true,则当前解合法,直接输出即可。
理论上来讲如果数据难一点的话应该是过不了的,但是不知为什么居然过了,还快如闪电。
代码:
{ID: ymwbegi1PROG: milk4LANG: PASCAL}var deep,n,q,i,j,b1:longint; a,b:array[0..100] of longint;procedure print;var i:longint;begin write(b1); for i:=1 to b1 do write(' ',b[i]); writeln; close(input); close(output); halt;end;procedure work;var f:array[0..20000] of boolean; i,j:longint;begin fillchar(f,sizeof(f),false); f[0]:=true; for i:=0 to q-1 do if f[i] then for j:=1 to b1 do if i+b[j]<=q then begin f[i+b[j]]:=true; if i+b[j]=q then print; end;end;procedure dfs(x:longint);var i:longint;begin if b1=deep then begin work; exit; end; for i:=x to n do begin inc(b1); b[b1]:=a[i]; dfs(i+1); dec(b1); end;end;begin assign(input,'milk4.in'); assign(output,'milk4.out'); reset(input); rewrite(output); readln(q); readln(n); for i:=1 to n do readln(a[i]); for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin a[0]:=a[i];a[i]:=a[j];a[j]:=a[0]; end; for deep:=1 to n do dfs(1); close(input); close(output); close(input); close(output);end.
0 0
- USACO 5.3 Milk Measuring dfsid+dp
- USACO Section 5.3 Milk Measuring - DFSID+DP...
- usaco 5.3 Milk Measuring(背包)
- usaco 5.3.1 Milk Measuring
- [usaco]5.3.2 Milk Measuring 动态规划
- usaco training 5.3.1 Milk Measuring 题解
- USACO Milk Measuring 解题报告
- C++——【USACO 5.3.1】——Milk Measuring
- Section 5.3 Milk Measuring
- Milk Measuring
- DFS+DP验证 UScow 5.3.1 Milk Measuring 量取牛奶
- usaco5.3.1 Milk Measuring
- USACO5.3.1 Milk Measuring (milk4)
- USACO5.2.1 Milk Measuring(milk4)
- USACO:Milk
- USACO milk
- 【USACO】milk
- usaco milk
- Android getTopActivity的方法
- 关于spring aop代理不到父接口中的方法
- TCP协议的三次握手
- 每天一个linux命令(14):head 命令
- 不能说的秘密
- USACO 5.3 Milk Measuring dfsid+dp
- 如何训练 时间 频率等
- IOS 时时刷新函数
- 向架构师进军--->架构方法基本原理
- 激励政策制定的三项原则
- iOS中的super关键字
- 初级计划
- mysql 和oracle 在sql 的中查询出来order的值不同
- poj--1321