爆搜小议-洛谷2744[USACO5.3]量取牛奶Milk Measuring
来源:互联网 发布:淘宝返利哪个 编辑:程序博客网 时间:2024/06/05 15:14
我一开始用dp做的,后来发现好像子状态的最优解未必能构成最终答案的最优解,挣扎一会就放弃了;
后来去看看别人的题解,发现是爆搜;
爆搜啊…….
于是就爆搜了,却还是超时;
我和别人的程序对拍一下,发现大同小异,但细节决定成败,小异像大坝的蚁穴,把我程序打垮了;
现在想想preyer的劝告:
前两题一定要AC,后两题分分必争!
是极其正确的啊
#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;int a[101],an[101],ans[101];int n,m,x,sum;bool p;void getnew(int z){ sum=z; for(int i=1;i<=z;i++)ans[i]=an[i];}void dfs(int x,int y,int z){//第x位,剩余y,当前已买了z个桶 if(z>sum)return; an[z]=a[x]; if(y%a[x]==0){ if(z>sum)return;else if(z<sum)getnew(z);else{ for(int i=1;i<=z;i++)if(an[i]!=ans[i]){ if(an[i]<ans[i])getnew(z); break; } } return; } if(x==n)return; for(int j=1;j<=y/a[x];j++)dfs(x+1,y-a[x]*j,z+1); dfs(x+1,y,z);}int main(){ scanf("%d%d",&m,&n); for(int i=1;i<=n;i++)scanf("%d",&a[i]); sum=1e9; sort(a+1,a+n+1); dfs(1,m,1); printf("%d",sum); for(int i=1;i<=sum;i++)printf(" %d",ans[i]);}
1 0
- 爆搜小议-洛谷2744[USACO5.3]量取牛奶Milk Measuring
- 【洛谷2744 】【CJOJ1804】[USACO5.3]量取牛奶Milk Measuring
- [USACO5.3]量取牛奶Milk Measuring
- 洛谷P2744 [USACO5.3]量取牛奶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)
- 量取牛奶
- 量取牛奶
- 量取牛奶
- 量取牛奶codevs2094
- Milk Measuring
- |洛谷|贪心|P1208 [USACO1.3]混合牛奶 Mixing Milk
- 洛谷1208[USACO1.3]混合牛奶 Mixing Milk
- 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
- 洛谷 2P1208 [USACO1.3]混合牛奶 Mixing Milk
- 洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk
- Bootstarp 基础 栅格系统的使用
- 37-3-lesson excerses
- (五)常驻后台
- anaconda 2-4.3.0 在win10-64 下安装后不能启动的问题
- 【Java语言程序设计(基础篇)第10版 练习题答案】Practice_6_3
- 爆搜小议-洛谷2744[USACO5.3]量取牛奶Milk Measuring
- 交换与路由练习(十二、route-map)
- 最短路径算法
- MATLAB”奇淫技巧“(Updating。。)
- CodeForces 761F. Dasha and Photos
- centos7下使用yum安装mysql
- 如何用一根网线实现在两台电脑之间传输数据
- 【Java笔记】动态绑定
- Oracle 数据库的数据泵和流池(streams pool)的文章