https://vjudge.net/problem/POJ-2718 其实不太理解为什么10超时了.. 这题似乎是有贪心优化的方法的,我下面直接暴力了.. 暴力之余要特判两个点:1.超时点就是n=10的时候,直接算一下247 2.WA点就是如果有两个数,且一个为0,那样不算先导零,结果按我的代码也是要特判的. #include<iostream> #include<cstdio> #include<queue> #include<cstring> #inc…
http://poj.org/problem?id=2718 从一些数里面选择一个子集组成一个数,余下的数组成另外一个数,(数不能以0开头)问两个数的差的绝对值最小是多少! 不管是奇数还是偶数,要想绝对值最小,那么两个数的位数就要尽量接近,所以每一个数的位数都是n/2,枚举这些数的全排列,然后去找这个最小值. 注意的是直接枚举会超时,需要剪枝. #include <iostream> #include <cstdio> #include <cmath> #include…
[题目大意] 按升序输出几个不同的数字,任意组成两个数字,输出最小的差值. [思路] 虽然是在穷竭搜索的章节里找到的题目,但是我觉得不需要穷竭搜索,枚举一下就可以了,0MS.分为一下三种情况: (1)如果只有两个数字,且其中第一个数字为0,则第二个数字就是答案. (2)如果有奇数个数字,分为长度为l+1和l的两部分,则较大数为从小到大的l+1个数字,较小数为从大到小的l个数字.如果首位是0,就和第二个数字预先交换位置. (3)如果有偶数个数字,则两个数字长度必定一致.枚举两个数的首位数字,较大数…
题目地址 简要题意: 给若干组数字,每组数据是递增的在0--9之间的数,且每组数的个数不确定.对于每组数,输出由这些数组成的两个数的差的绝对值最小是多少(每个数出现且只出现一次). 思路分析: 对于n个数,必定为分成两个位数分别为n/2和n-n/2的数时才可能取得差的绝对值最小.两组数分别进行全排列比较大小,这样比较次数最大为(10A5)*(5A5)=10!,在可以接受的范围内. 参考代码: #include<stdio.h> #include<cstring> #include…
思路: 暴力乱搞. 实现: #include <iostream> #include <cstdio> #include <sstream> #include <algorithm> #include <vector> #include <cmath> using namespace std; const int INF = 0x3f3f3f3f; ]; ]; string s; stringstream ss; int minn =…
Smallest Difference Description Given a number of distinct decimal digits, you can form one integer by choosing a non-empty subset of these digits and writing them in some order. The remaining digits can be written down in some order to form a second…
Smallest Difference Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19528   Accepted: 5329 Description Given a number of distinct decimal digits, you can form one integer by choosing a non-empty subset of these digits and writing them in…
 Smallest Difference(最小差) Time Limit: 1000MS    Memory Limit: 65536K Description - 题目描述 Given a number of distinct decimal digits, you can form one integer by choosing a non-empty subset of these digits and writing them in some order. The remaining d…
-->Smallest Difference 直接写中文了 Descriptions: 给定若干位十进制数,你可以通过选择一个非空子集并以某种顺序构建一个数.剩余元素可以用相同规则构建第二个数.除非构造的数恰好为0,否则不能以0打头. 举例来说,给定数字0,1,2,4,6与7,你可以写出10和2467.当然写法多样:210和764,204和176,等等.最后一对数差的绝对值为28,实际上没有其他对拥有更小的差. Input  输入第一行的数表示随后测试用例的数量.对于每组测试用例,有一行至少两个…
Binary search. class Solution { int _findClosest(vector<int> &A, int v) { , e = A.size() - ; int ret = INT_MAX; while(s <= e) { ; int vmid = A[mid]; int dist = abs(vmid - v); ret = min(ret, dist); ; if(vmid < v) { s = mid + ; } else if(vmi…