POJ 1416 Shredding Company <DFS>
2017-07-08 21:04
435 查看
题目:传送门
题目大意:给出一个目标数字和一个用来切分的数字(长度均不大于6,没有前导0),求切分方案,使得切分的各段之和最接近目标数字但是又不大于目标数字。如果不能找到这样的切分,则输出“error”,如果有多个满足要求的方案,则输出“rejected”,否则则输出那个唯一的切分方案。
分析:这本是一道水题,简单DFS。但我还是想纪念一下自己做题水平的一个小小提高。刚开始刷题那会儿,因为是英文题,常常要读很久的题,有时干脆百度看别人解题报告的题目大意,而现在我已经能够很轻松地快速地阅读并理解题目了,这也算英语水平的提高吧。还有就是刚开始常常是看了大牛们的代码才能写出来,而现在我也能独立思考并给出自己的解法,这道题我就是不到一个小时内1A的,虽是水题,但这种完全独立完成,并且发现比网上我经常学习的大牛们的代码还要精简的感觉,还是挺棒的,继续加油吧!
代码:
题目大意:给出一个目标数字和一个用来切分的数字(长度均不大于6,没有前导0),求切分方案,使得切分的各段之和最接近目标数字但是又不大于目标数字。如果不能找到这样的切分,则输出“error”,如果有多个满足要求的方案,则输出“rejected”,否则则输出那个唯一的切分方案。
分析:这本是一道水题,简单DFS。但我还是想纪念一下自己做题水平的一个小小提高。刚开始刷题那会儿,因为是英文题,常常要读很久的题,有时干脆百度看别人解题报告的题目大意,而现在我已经能够很轻松地快速地阅读并理解题目了,这也算英语水平的提高吧。还有就是刚开始常常是看了大牛们的代码才能写出来,而现在我也能独立思考并给出自己的解法,这道题我就是不到一个小时内1A的,虽是水题,但这种完全独立完成,并且发现比网上我经常学习的大牛们的代码还要精简的感觉,还是挺棒的,继续加油吧!
代码:
#include <iostream> #include <algorithm> #include <cstdio> #include <string> using namespace std; int tar,n; string nums; string ans; string cut; int sum; int cans; bool flag; void dfs(int d,int cur){ if(d==n-1){ cut.push_back('1'); sum+=(cur*10+nums[d]-'0'); if(sum>tar) ; else if(sum>cans){ ans=cut; cans=sum; flag=false; } else if(sum==cans){ flag=true; } return ; } string tempS=cut; int temp=sum; cut.push_back('0'); if(sum<=tar) dfs(d+1,cur*10+nums[d]-'0'); cut=tempS+'1'; sum=temp+(cur*10+nums[d]-'0'); if(sum<=tar) dfs(d+1,0); } int main(){ while(cin>>tar>>nums,tar||(nums!="0")){ sum=cans=0; cut.clear(); n=nums.size(); flag=false; dfs(0,0); if(flag) cout<<"rejected"<<endl; else if(!cans) cout<<"error"<<endl; else{ cout<<cans<<' '; for(int i=0;i<n;++i){ cout<<nums[i]; if(ans[i]=='1') printf("%c",i==n-1?'\n':' '); } } } return 0; }
相关文章推荐
- poj1416 Shredding Company dfs 记录路径
- poj-1416 Shredding Company DFS
- poj 1416 Shredding Company dfs
- <poj,sicily>Anti-prime Sequences (DFS)
- poj 4006 Genghis Khan the Conqueror <最小生成树 + dfs + 插入>
- (poj 1020 Anniversary Cake)<DFS的巧妙剪枝>
- poj 1130 Alien Security (dfs+bfs<反向最短路>)
- poj1830 开关问题解题报 <高斯消元>
- POJ 1451 T9 <Trie> 找出现频率最高的字符串
- POJ 2752(不满足P[i]<>P[next[i]] 的next函数)
- POJ 1966 <点连通度>
- <poj 1056>IMMEDIATE DECODABILITY
- poj1006 Biorhythms<中国剩余定理>
- <poj,sicily>Anti-prime Sequences (DFS)
- DP<背包?> POJ 1015
- poj-1416-Shredding Company-dfs
- poj 1845 Sumdiv <数论>
- 树形DP <dfs+floyd> 【hlg】 1329 游乐园
- poj1222 EXTENDED LIGHTS OUT<高斯消元>
- POJ 1416 Shredding Company(DFS)