POJ2718【DFS】
题意: 
给你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;
}
POJ2718【DFS】的更多相关文章
- 【第40套模拟题】【noip2011_mayan】解题报告【map】【数论】【dfs】
		
目录:1.潜伏者 [map] 2.Hankson的趣味题[数论]3.mayan游戏[dfs] 题目: 1. 潜伏者(spy.pas/c/cpp)[问题描述]R 国和S 国正陷入战火之中,双方都互派间谍 ...
 - Kattis - glitchbot 【DFS】
		
Kattis - glitchbot [DFS] 题意 有一个机器人 刚开始在(0, 0),然后给出一个目标点,并且会给出一系列指令,但是其中会有一个指令是错误的.我们需要找出那个指令,并且改成正确的 ...
 - HDU 6113 度度熊的01世界 【DFS】(2017"百度之星"程序设计大赛 - 初赛(A))
		
度度熊的01世界 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
 - 【dfs】P1331 海战
		
题目描述 在峰会期间,武装部队得处于高度戒备.警察将监视每一条大街,军队将保卫建筑物,领空将布满了F-2003飞机.此外,巡洋船只和舰队将被派去保护海岸线.不幸的是因为种种原因,国防海军部仅有很少的几 ...
 - 【dfs】p1731 生日蛋糕
		
1441:[例题2]生日蛋搞 [题目描述] 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体.设从下往上数第i(1≤i≤M)层蛋糕是半径为Ri, 高 ...
 - 【dfs】LETTERS
		
1212:LETTERS [题目描述] 给出一个roe×colroe×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母.问最多可以经过几个字母. [ ...
 - 洛谷P1605 迷宫【dfs】
		
题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...
 - 【dfs】BZOJ1703-[Usaco2007 Mar]Ranking the Cows 奶牛排名
		
[题目大意] 农夫约翰有N(1≤N≤1000)头奶牛,每一头奶牛都有一个确定的独一无二的正整数产奶率.约翰想要让这些奶牛按产奶率从高到低排序,约翰已经比较了M(1≤M≤10000)对奶牛的产奶率,但他 ...
 - 【DFS】BZOJ3522-[Poi2014]Hotel
		
[题目大意] 给出一棵树,求三个节点使得它们两两之间的距离相等,问共有多少种可能性? [思路] 显然,这三个节点是关于一个中心点对称地辐射出去的. 枚举中心点,往它的各个子树跑Dfs.tmp[i]表示 ...
 
随机推荐
- three.js 源代码凝视(九)Math/Matrix4.js
			
商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 - 本博客专注于 敏捷开发 ...
 - 【Objective-C】09-空指针和野指针
			
一.什么是空指针和野指针 1.空指针 1> 没有存储不论什么内存地址的指针就称为空指针(NULL指针) 2> 空指针就是被赋值为0的指针.在没有被详细初始化之前.其值为0. 以下两个都是空 ...
 - 细说linux IPC(三):mmap系统调用共享内存
			
[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途] 前面讲到socket的进程间通 ...
 - FastDFS的配置、部署与API使用解读(4)FastDFS配置详解之Client配置(转)
			
一种方式是通过调用ClientGlobal类的初始化方法对配置文件进行加载,另一种是通过调用API逐一设置配置参数.后一种方式对于使用Zookeeper等加载属性的方式很方便. 1. 加载配置文件: ...
 - 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成物理查询计划
			
淘宝数据库OceanBase SQL编译器部分 源码阅读--生成物理查询计划 SQL编译解析三部曲分为:构建语法树,制定逻辑计划,生成物理执行计划.前两个步骤请参见我的博客<<淘宝数据库O ...
 - 图像处理之基础---ffmpeg 中的图像缩放
			
http://blog.csdn.net/bweaglegao/article/details/8540860 http://www.cnblogs.com/acloud/archive/2011/1 ...
 - C++ 四种强制类型转变与区别之处
			
使用标准C++的类型转换符:static_cast.dynamic_cast.reinterpret_cast和const_cast.1.static_cast 用法:static_cast&l ...
 - 用 querySelectorAll 来查询 DOM 节点
			
用 querySelectorAll 来查询 DOM 节点 Document.querySelectorAll - Web API 接口 | MDN https://developer.mozilla ...
 - CentOS 7.2安装Jenkins自动构建Git项目
			
1.环境 本文使用VMWare虚拟机进行实验. 最终实现目标,在Jenkins服务器上新建构建任务,从Git服务器上拉取master HEAD(不编译,仅演示),部署到"目标服务器" ...
 - vue2实现自定义样式radio单选框
			
先上效果 <div class="reply"> 主编已回复: <div class="radio-box" v-for="(ite ...