题意:
给你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 0X3f3f3f3f
int 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;
}

转载于:https://www.cnblogs.com/keyboarder-zsq/p/5934504.html

POJ2718【DFS】相关推荐

  1. Bailian2815 城堡问题【DFS】

    2815:城堡问题 总时间限制: 1000ms 内存限制: 65536kB 描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | ...

  2. Bailian2816 红与黑【DFS】

    2816:红与黑 总时间限制: 1000ms 内存限制: 65536kB 描述 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动.请写一 ...

  3. NUC1158 Lake Counting【DFS】

    Lake Counting 时间限制: 1000ms 内存限制: 65536KB 通过次数: 1总提交次数: 1 问题描述 Due to recent rains, water has pooled ...

  4. NUC1399 Sum It Up【DFS】

    Sum It Up 时间限制: 1000ms 内存限制: 65535KB 通过次数: 1总提交次数: 1 问题描述 Given a specified total t and a list of n ...

  5. HDU1181 变形课【DFS】(废除)

    新题解参见:HDU1181 变形课[DFS+关系闭包+bitset] 变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 13107 ...

  6. 【DFS】巧妙取量的倒油问题

    题目描述 [题目描述]  有三个容器,容量分别为 a,b,c(a> b > c ),一开始a装满油,现在问是否只靠abc三个容器量出k升油.如果能就输出"yes",并且 ...

  7. [kuangbin]专题三 Dancing Links Squiggly Sudoku HDU - 4069【DFS】【精确覆盖】

    [题目描述] Today we play a squiggly sudoku, The objective is to fill a 9*9 grid with digits so that each ...

  8. 【DFS】不撞南墙不回头—深度优先搜索算法[Deep First Search]

    今天上午听到,那个非常6+1的李咏先生因癌症去世 DFS算法的基本模型 深度下,不撞南墙不回头,就是一直往后找,知道没有路了,向后返回. 想起一首民谣,<可能否>--木小雅 https:/ ...

  9. NUC1333 Knight Moves【DFS】

    Knight Moves 时间限制: 1000ms 内存限制: 65535KB 问题描述 A friend of you is doing research on the Traveling Knig ...

最新文章

  1. 【Unity】使用Resources类管理资源
  2. 美团实习面试:熟悉红黑树是吧?能不能写一下?
  3. Java笔试面试总结—try、catch、finally语句中有return 的各类情况
  4. jquery的$.extent()方法的总结
  5. Common Attention Points
  6. ANSI C中的sizeof详解
  7. [IOC]Unity使用
  8. 实现verilog设计控制交通灯
  9. 【牛客 - 370B】Rinne Loves Graph(分层图最短路 或 最短路dp)
  10. 轻松生成ip地址的姿势,最快得到批量***目标
  11. 如何注册CSDN博客
  12. Python生成自定义表头Excel
  13. 游戏地图主要功能实现
  14. Linux Gnome 桌面美化
  15. 做笔记的方法—— 推荐笔记方法Word方式
  16. 错误解决方案:FATAL: Error inserting cmemk (/lib/modules/2.6.37/kernel/drivers/dsp/cmemk.ko): Bad address
  17. PAT甲级 1027 Colors in Mars (20分)
  18. EOS账户如何工作,我们怎样获得EOS账户?
  19. FMC标准以及FMC连接器介绍
  20. 【iOS】iOS马甲包制作+OC、Swift垃圾代码生成脚本

热门文章

  1. php l方法,ThinkPHP的L方法使用简介
  2. mysql 用户管理表_Mysql—用户表详解(mysql.user)
  3. React条件渲染列表渲染
  4. 四、Web服务器——Session Cookie JSP入门 学习笔记
  5. Web框架——Flask系列之session机制(十六)
  6. LeetCode 1750. 删除字符串两端相同字符后的最短长度(双指针)
  7. bash 不是内部或外部命令_Win10_cmd下提示:‘xxx’不是内部或外部命令,也不是可运行的程序 或批处理文件...
  8. python scipy库函数solve用法_如何在中使用事件scipy.integrate.solve_ivp
  9. 学生成绩统计c语言课程设计,学生成绩管理系统-C语言课程设计
  10. ios 桥接文件找不到文件_电脑文件搜索神器,没有找不到的东西