题意: 给一个已经排序号的数字,从中间切一刀,成两个数,要求这两个数的差最小

思路:暴力比较差最小值

  1. stl中的next_permutation()函数进行排列  注意:这个函数必须从小到大才可以排序
  2. 把所有排序写出,从中间切,前面一个数,后面一个数,找到最小

    if (a[mid])
    {
    int x = a[0]; int y = a[mid];
    for (int i = 1; i < mid; i++)
    x = x * 10 + a[i];
    for (int i = mid + 1; i < n; i++)
    y = y * 10 + a[i];
    if (ans > abs(x - y))
    ans = abs(x - y);
    }

解决问题的代码:

#include <iostream>
#include <math.h>
#include <algorithm>
#include <string.h>
#include <cstdio>
using namespace std;
int n, a[];
void solve()
{
while (a[] == ) next_permutation(a, a + n);
int ans = ;
int mid = (n + ) / ;
do {
if (a[mid])
{
int x = a[]; int y = a[mid];
for (int i = ; i < mid; i++)
x = x * + a[i];
for (int i = mid + ; i < n; i++)
y = y * + a[i];
if (ans > abs(x - y))
ans = abs(x - y);
}
} while (next_permutation(a, a + n));
printf("%d\n", ans);
return;
}
int main()
{
int t;
char c;
scanf("%d", &t);
getchar();
while (t--)
{
n = ;
memset(a, , sizeof(a));
while ((c = getchar()) != '\n')
{
if (c != ' ')
a[n++] = c - '';
}
if (n == ) printf("%d\n", a[]);
if (n == ) printf("%d\n", abs(a[] - a[]));
else solve();
}
return ;
}

poj 2718 切数问题 穷竭搜索的更多相关文章

  1. poj 3187 Backward Digit Sums(穷竭搜索dfs)

    Description FJ and his cows enjoy playing a mental game. They write down the numbers to N ( <= N ...

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

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

  3. 1.初级篇——最基础的"穷竭搜索”

    A.Lake Counting(POJ 2386) 题意: 由于最近的降雨,农夫约翰田地的各个地方都有水汇聚,用N x M(1 <= N <= 100; 1 <= M <= 1 ...

  4. 穷竭搜索: POJ 2718 Smallest Difference

    题目:http://poj.org/problem?id=2718 题意: 就是输入N组数据,一组数据为,类似 [1  4  5  6  8  9]这样在0~9之间升序输入的数据,然后从这些数据中切一 ...

  5. poj 2718 Smallest Difference(穷竭搜索dfs)

    Description Given a number of distinct , the integer may not start with the digit . For example, , , ...

  6. 穷竭搜索:POJ 3187 Backward Digit Sums

    题目:http://poj.org/problem?id=3187 题意: 像这样,输入N : 表示层数,输入over表示最后一层的数字,然后这是一个杨辉三角,根据这个公式,由最后一层的数,推出第一行 ...

  7. AOJ 0525 Osenbei【穷竭搜索】

    AOJ 0525 题意: 有一个烤饼器可以烤r行c列的煎饼,煎饼可以正面朝上(用1表示)也可以背面朝上(用0表示).一次可将同一行或同一列的煎饼全部翻转.现在需要把尽可能多的煎饼翻成正面朝上,问最多能 ...

  8. 挑战程序2.1.4 穷竭搜索>>深度优先搜索

      深度优先搜索DFS,从最开始状态出发,遍历一种状态到底,再回溯搜索第二种. 题目:POJ2386  思路:(⊙v⊙)嗯  和例题同理啊,从@开始,搜索到所有可以走到的地方,把那里改为一个值(@或者 ...

  9. 挑战程序2.1.5 穷竭搜索>>宽度优先搜索

    先对比一下DFS和BFS         深度优先搜索DFS                                   宽度优先搜索BFS 明显可以看出搜索顺序不同. DFS是搜索单条路径到 ...

随机推荐

  1. SQL SERVER 同一个表并且是同一个时间字段进行相减

    表AID NUM TIEM1 10 2012-06-10 10:10:002 20 2012-06-10 20:10:003 20 2012-06-10 20:10:004 10 2012-06-10 ...

  2. 记一次NegativeArraySizeException

    问题描述:服务器接收后台返回的报文时,提示java.lang.NegativeArraySizeException 分析:这种异常返回的原因,一般情况下没有报文提示为返回空报文,初步分析是响应报文流长 ...

  3. 用Node+wechaty写一个爬虫脚本每天定时给女(男)朋友发微信暖心话

    wechatBot 微信每日说,每日自动发送微信消息给你心爱的人 项目介绍 灵感来源 在掘金看到了一篇<用Node + EJS写一个爬虫脚本每天定时女朋友发一封暖心邮件>后, 在评论区偶然 ...

  4. Cordova for iOS

    Cordova,对这个名字大家可能比较陌生,大家肯定听过 PhoneGap 这个名字,Cordova 就是 PhoneGap 被 Adobe 收购后所改的名字. Cordova 是一个可以让 JS 与 ...

  5. SQL Server 父子迭代查询语句

    -- 根据父ID得到所有子ID -- Get childs by parent idWITH TreeAS( SELECT Id,ParentId FROM dbo.Node P WHERE P.Id ...

  6. 将服务器上的文件通过HttpWebRequest下载到本地

    外网地址需要先映射. string path=""; path=@"http://222.92.71.116/P2Foundation/Images/logo.gif&q ...

  7. Kail安装后的配置

    安装完Kail系统后进行简单的几项配置可以让使用更方便 VMware安装Kail系统这里就不介绍了,大家可以参考这个博客:http://www.cnblogs.com/xuanhun/p/568831 ...

  8. 洛谷 P1079 Vigenère 密码

    题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南 ...

  9. 【exFat】利用命令提示符在windows 7 及 windows server 2008 r2 中将卷(分区)格式化为exFAT

    步骤 运行cmd.exe: 查看磁盘信息.输入diskpart并回车: 选择磁盘.输入select disk 0(“0”代表要选择的磁盘号)并回车: 查看所选硬盘的分区.输入list partitio ...

  10. 使用代码获得Netweaver里某个software component和C4C的版本

    有同事问如何通过代码的方式获得Netweaver里某个Software component的版本信息,以及Cloud for Customer(C4C)的版本信息. Netweaver 点了Detai ...