POJ 1252 Euro Efficiency
背包 要么 BFS
意大利是说给你几个基本的货币,组成 1~100 所有货币,使用基本上的货币量以最小的。
出口 用法概率。和最大使用量。
能够BFS 有可能 。
只是记得数组开大点。 可能会出现 100 = 99+99 -98 的情况。
背包是先做一个全然背包,求得最少可能由多少相加。
然后做一个 01背包,看是否能被 减。
背包:
#include<cstdio> #include<cstring> #include<string> #include<queue> #include<algorithm> #include<map> #include<stack> #include<iostream> #include<list> #include<set> #include<cmath> #define INF 0x7fffffff #define eps 1e-6 #define LL long long using namespace std; int dp[10002]; int value[7]; int main() { int t; scanf("%d",&t); while(t--) { int m=10001; for(int i=0; i<6; i++) scanf("%d",&value[i]); for(int i=1; i<m; i++) dp[i]=10001; dp[0]=0; for(int i=0; i<6; i++) { for(int j=value[i]; j+value[i]<m; j++) { dp[j]=min(dp[j-value[i]]+1,dp[j]); // printf("%d :%d==\n",j,dp[j]); } } for(int i=0; i<6; i++) { for(int j=m-value[i]; j>0; j--) { dp[j]=min(dp[j+value[i]]+1,dp[j]); // printf("%d :%d==\n",j,dp[j]); } } double ans=0; int maxn=0; for(int i=1; i<=100; i++) { // printf("%d : %d\n",i,dp[i]); ans+=dp[i]; maxn=max(maxn,dp[i]); } printf("%.2f %d\n",ans/100.0,maxn); } }
BFS:
#include<cstdio> #include<cstring> #include<string> #include<queue> #include<algorithm> #include<map> #include<stack> #include<iostream> #include<list> #include<set> #include<cmath> #define INF 0x7fffffff #define eps 1e-6 #define LL long long using namespace std; struct lx { int ans,lv; }; int ans[2051]; int value[7]; void bfs() { queue<lx>q; bool vis[2051]; memset(vis,0,sizeof(vis)); lx now,tmp; tmp.ans=0,tmp.lv=0; q.push(tmp); vis[0]=1; while(!q.empty()) { tmp=q.front();q.pop(); ans[tmp.ans]=tmp.lv; for(int i=0;i<6;i++) { int num1=tmp.ans+value[i]; int num2=tmp.ans-value[i]; now.lv=tmp.lv+1; if(!vis[num1]&&num1>0&&num1<2000) { vis[num1]=1; now.ans=num1; q.push(now); } if(!vis[num2]&&num2>0&&num2<2000) { vis[num2]=1; now.ans=num2; q.push(now); } } } } int main() { int t; scanf("%d",&t); while(t--) { for(int i=0; i<6; i++) scanf("%d",&value[i]); bfs(); double an=0; int maxn=0; for(int i=1;i<=100;i++) { an+=ans[i]; maxn=max(maxn,ans[i]); // printf("%d : %d\n",i,ans[i]); } printf("%.2f %d\n",an/100,maxn); } }
版权声明:本文博客原创文章。博客,未经同意,不得转载。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
2014-08-14 ExtJs自学教程(1):一切从API開始
2014-08-14 Linux之旅(1): diff, patch和quilt (下)
2014-08-14 第十一届GPCT杯大学生程序设计大赛完美闭幕
2014-08-14 前端学习——JQuery Ajax使用经验
2014-08-14 VC中获取窗体句柄的各种方法
2014-08-14 简单工厂模式
2014-08-14 2014 ACM省赛总结