[DFS]poj1416
来源:互联网 发布:滴滴待遇 知乎 编辑:程序博客网 时间:2024/05/22 11:58
题意:
如果输入的串分割后的和最小都比Target大,那就输出error.
如果有多种结果一样,那么就输出rejected.
否则,输出最大的和 和分别是哪些子串。
这个题都是整数,所以比较简单。
直接搜索所有的情况就好了,还有一点是打印路径,一般可以用path[]或者pre[]的数组表示,但是这里数据有点大我就用的map水过了。。
#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <vector>#include <map>#include <queue>#include <algorithm>#define read freopen("q.in","r",stdin)#define LL long long#define maxn 10000000using namespace std;int t,a;int flag,res,kk;map<int,int> pre;int pow(int x,int n){ int res=1; for(int i=0;i<n;i++) { res*=x; } return res;}void dfs(int x,int s,int k,int d){ if(s>t)return ; if(x==0) { if(res==s)flag=1; else if(s>res && s<=t) { kk=d; res=s; flag=0; } return ; } int i,j,cnt=0; int tmp=x; int b[10]; while(tmp) { b[cnt++]=tmp%10; tmp/=10; // cout<<b[cnt-1]<<" "; } //cout<<endl; tmp=0; j=1; for(i=0;i<cnt;i++,j++) { tmp+=(b[i]*(pow(10,j-1))); pre[s+tmp]=s; dfs(x/(pow(10,j)),s+tmp,tmp,d+1); } return ;}bool check(){ int tmp=a,res=0; while(tmp) { res+=(tmp%10); tmp/=10; } return res>t;}int main(){ // read; while(~scanf("%d%d",&t,&a) && t+a) { if(t==a) { cout<<a<<" "<<a<<endl; continue; } else if(check()) { cout<<"error"<<endl; continue; } res=0; flag=0;kk=0; dfs(a,0,0,0); if(flag)cout<<"rejected"<<endl; else { cout<<res; for(int i=0;i<kk;i++) { cout<<" "<<res-pre[res]; res=pre[res]; } cout<<endl; } }}
0 0
- [DFS]poj1416
- poj1416 dfs 碎纸机
- POJ1416--DFS入门
- POJ1416 DFS+剪枝
- POJ1416 切纸片 (DFS
- POJ1416 切割纸条(DFS+剪枝)
- poj1416~简单dfs枚举题
- POJ1416
- poj1416
- poj1416
- Poj1416
- poj1416
- poj1416
- poj1416
- poj1416 Shredding Company dfs 记录路径
- poj1416——Shredding Company(dfs)
- POJ1416 Shredding Company ACM解题报告(DFS回溯+剪枝)
- poj1416--Shredding Company(搜索练习4,按位dfs)
- linux基本命令
- iOS 创建文件夹
- 弹出一个图片进度框
- 安卓自定义图表----柱状图
- Android设置EditText只能输入数字,不包含小数点
- [DFS]poj1416
- 个人PHP学习笔记(四)--数组
- js和Jquery获取选中select值和文本对比
- 贝叶斯滤波器解释
- Notification与多线程
- Linux系统只能连上内网不能够连上外网。Unit network.service entered failed state.
- 猫猫学iOS(四十五)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。
- HSF入门例子
- Bluemix云平台实践:初试DevOps(2)