POJ2718【DFS】
来源:互联网 发布:手机服装绘图软件 编辑:程序博客网 时间:2024/05/16 09:55
题意:
给你0到9之间的数,然后让你搞成两个数,求一个最小差异值(被组合的数不允许出现前导0)
思路:最小差异那么肯定是有一个整数长n/2,另一个长n-n/2,搜一下就好了。
code:
#include<cstdio>#include<string.h>#include<iostream>#include<algorithm>using namespace std;next_permutation(first,end);按照字典序列,搞出比他下面的那些排列/*int main(){ int a[3]; for(int i=0;i<3;i++) cin>>a[i]; while(next_permutation(a,a+3)) { for(int i=0;i<3;i++) { printf("%d",a[i]); } puts(""); }}*/#define INF 0X3f3f3f3fint a[15];bool vis[15];int b[15];int n;int ans;char s[1010];//另一半直接搞全排列,然后直接判断取小就行了void solve(int aa){ int len=0; int bb; for(int i=0; i<n; i++) { if(!vis[i]) { b[len++]=a[i]; } } bb=0; for(int i=0; i<len; i++) bb=bb*10+b[i]; sort(b,b+len); if(len==1||b[0]!=0) ans=min(abs(bb-aa),ans); while(next_permutation(b,b+len)) { bb=0; for(int i=0; i<len; i++) bb=bb*10+b[i]; if(len==1||b[0]!=0) ans=min(abs(bb-aa),ans); }}//先搜出一个数;void DFS(int k,int res){ if(k==n/2) { solve(res); return; } for(int i=0; i<n; i++) { if(!vis[i]) { if(a[i]==0&&k==0&&n>3) continue; vis[i]=1; DFS(k+1,res*10+a[i]); vis[i]=0; } }}//两个输入方式void made1(){ gets(s); n=0; int len=strlen(s); for(int i=0; i<len; i++) { if(s[i]==' ') continue; else { a[n++]=s[i]-'0'; //printf("%d ",a[n-1]); } }}void made2(){ n=0; char ch; while((ch=getchar())!='\n') { if(ch==' ') continue; a[n++]=ch-'0'; }}int main(){ int T; scanf("%d",&T); getchar(); while(T--) { //made1(); made2(); memset(vis,0,sizeof(vis)); ans=INF; DFS(0,0); printf("%d\n",ans); } return 0;}
0 0
- POJ2718【DFS】
- 特殊dfs--poj2718
- [dfs]poj2718 Smallest Difference
- POJ2718
- poj2718
- poj2718
- poj2718
- 深度优先搜索(DFS):POJ2718--Smallest Difference(解三)
- poj2718 穷举
- 搜索 POJ2718
- package poj2718;
- package poj2718;
- POJ2718题解
- POJ2718(枚举 + 贪心)
- poj2718 Smallest Difference
- poj2718 Smallest Difference
- POJ2718---Smallest Difference
- POJ2718-Smallest Difference
- echarts-循环生成图
- ORACLE系统表大全
- Makefile 条件编译"-y"
- ubuntu-ngnix安装配置[亲测可用]
- 嵌入式Linux基础知识4(ubuntu16安装)
- POJ2718【DFS】
- 视图切换相关
- 3.表单-easyUi
- JS 对象与数组的变化监听
- 图片CSS模糊滤镜浏览器兼容解决方法
- glew库初始化问题
- Swift开篇011->继承
- 如何用DataStage构建企业异构数据库之间的高速通道
- list_entry