一、题意:给定一串数字,数字没有重复,个数为2~10个。求这些数字分为两份,组合成的两个数的差最小是多少

二、思路:首先可以肯定的是,将这n个数平均分成两份,所得到的最小差一定在其某个组合当中。因此可将该序列进行全排列,然后便利每一种情况。这里需要注意以下几点:1、利用next_permutation函数进行全排列前,需要将原序列按从小到大先排个序  2、要考虑这两个数不能以0开头的情况

三、代码:

#include"iostream"
#include"stdio.h"
#include"algorithm"
#include"string.h"
using namespace std; int num[15];
int cnt; int GetDiff(int *a)
{
int n=0,m=0;
if((a[0]==0||a[cnt/2]==0)&&cnt>2) return -1; for(int i=0;i<cnt/2;i++)
{
n=n*10+a[i];
}
for(int j=cnt/2;j<cnt;j++)
{
m=m*10+a[j];
}
return abs(n-m);
} int Permutation()
{
int miniDiff=10000000;
do
{
int diff=GetDiff(num);
if(diff!=-1)
miniDiff=min(miniDiff,diff);
}while(next_permutation(num,num+cnt)); return miniDiff;
} int main()
{
// freopen("in.txt","r",stdin);
int t;
cin>>t;
getchar();
while(t--)
{
char input[100];
gets(input);
cnt=0;
for(int i=0;i<strlen(input);i++)
{
if(isdigit(input[i]))
num[cnt++]=input[i]-'0';
}
sort(num,num+cnt);
cout<<Permutation()<<endl;
}
return 0;
}

  

poj2718的更多相关文章

  1. poj2718 Smallest Difference(dfs+特判,还可以贪心更快)

    https://vjudge.net/problem/POJ-2718 其实不太理解为什么10超时了.. 这题似乎是有贪心优化的方法的,我下面直接暴力了.. 暴力之余要特判两个点:1.超时点就是n=1 ...

  2. 《挑战程序设计竞赛》2.1 穷竭搜索 POJ2718 POJ3187 POJ3050 AOJ0525

    POJ2718 Smallest Difference Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6509   Acce ...

  3. POJ-2718 Smallest Difference---DFS

    题目链接: https://vjudge.net/problem/POJ-2718 题目大意: 有一列数,对其任意分成两组,每组按一定顺序可以组成一个数.问得到的两个数的差最小是多少. 思路: 直接d ...

  4. (DFS、全排列)POJ-2718 Smallest Difference

    题目地址 简要题意: 给若干组数字,每组数据是递增的在0--9之间的数,且每组数的个数不确定.对于每组数,输出由这些数组成的两个数的差的绝对值最小是多少(每个数出现且只出现一次). 思路分析: 对于n ...

  5. POJ-2718 Smallest Difference

    http://poj.org/problem?id=2718 从一些数里面选择一个子集组成一个数,余下的数组成另外一个数,(数不能以0开头)问两个数的差的绝对值最小是多少! 不管是奇数还是偶数,要想绝 ...

  6. POJ2718 递归套递归

    就是给你一个数,排列组合,然后问如何排列之间的差值最小. 我之前的想法是一个递归,然后两个for循环枚举L1和L2,结果TLE了,然后想了一下剪枝发现没办法剪,然后看了一下别人的代码,用了next_p ...

  7. 【搜索】POJ-2718 贪心+枚举

    一.题目 Description Given a number of distinct decimal digits, you can form one integer by choosing a n ...

  8. 【搜索】POJ-2718 全排列+暴力

    一.题目 Description Given a number of distinct decimal digits, you can form one integer by choosing a n ...

  9. POJ-2718

    Smallest Difference Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12158   Accepted: 3 ...

随机推荐

  1. Entity Framework 6.0 Tutorials(9):Stored Procedure Mapping

    Code First - Insert, Update, Delete Stored Procedure Mapping: Entity Framework 6 Code-First provides ...

  2. C高级第一次作业

    未来两周学习内容 复习指针的定义和引用 指针的应用场景: 指针作为函数参数(角色互换) 指针作为函数的参数返回多个值 指针.数组和地址间的关系 使用指针进行数组操作 数组名(指针)作为函数参数(冒泡排 ...

  3. Schwartz kernel theorem施瓦兹核定理

    In mathematics, the Schwartz kernel theorem is a foundational result in the theory of generalized fu ...

  4. 第一章:HTTP服务器,客户端简易代码解析

    HTTP服务器: 方法{ main service } service:读取HTTP请求信息    解析HTTP请求  决定HTTP相应正文的类型   创建HTTP相应结果  发送HTTP相应结果 读 ...

  5. postfix 安装配置详解

    [ref: http://blog.51yip.com/server/1382.html] [http://blog.chinaunix.net/uid-174325-id-1744019.html] ...

  6. XE改变图标颜色

    放一个image,load 一张png/..图片 再放一个FillRGBEffect, 将此控价拖到image下 改变FillRGBEffect的Color,就改变了image图标上的颜色. 原图为黑 ...

  7. 20145218张晓涵_Exp5 MSF基础应用

    20145218张晓涵_Exp5 MSF基础应用 实验原理 MS08-067漏洞描述 MS08-067漏洞的全称为"Windows Server服务RPC请求缓冲区溢出漏洞",如果 ...

  8. 关于 href="\\#" 和 return false

    href="\\#"  跳转到本页 return false 相当于不刷新 href="javascript:void(0)"   或者 href=" ...

  9. asp.net站点阻止某个文件夹或者文件被浏览器访问

    一个站点根目录下面有一个Config文件夹,这个文件夹里面都是一些json格式的txt文本,文本是一种静态资源,如果知道这个文本的地址,就可以在浏览器中输入地址打开这个文本,别人就可以看到站点的配置, ...

  10. 死磕Java之聊聊LinkedList源码(基于JDK1.8)

    工作快一年了,近期打算研究一下JDK的源码,也就因此有了死磕java系列 LinkedList 是一个继承于AbstractSequentialList的双向链表,链表不需要capacity的设定,它 ...