poj 2718

【题解】POJ 2718 Smallest Difference(搜索) POJ 2718 Smallest Difference 原题 https://vjudge.net/problem/POJ-2718 Given a number of distinct decimal digits, you can form one integer by choosing a non-empty subset of these digits and writing th... 阅读详情

给定一个N个数字(N不小于2且不大于10),这些数字取值范围为0到9且互不相同,且升序排列,将这些数字组成两组数,使得这两组数的绝对差最小。注:这两组数字均不能以0开头。

不用傻乎乎的去搜索,因为差值最小数的长度的一定是2/len和len-2/len,所以可以直接求全排列,然后取前半段和后半段

1.忘记0 9 的情况,输出了一个INF,wa了一次

#include <iostream>
#include <cstdio>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <cstring>
#include <queue>
#include <set>
#include <vector>
#include <map>
#include <algorithm>
#include <cmath>
#include <stack>
#include <stdlib.h>
#include <stdio.h>

#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define ll long long
#define ull unsigned long long
#define uint unsigned int
#define l(x) x<<1
#define r(x) x<<1|1
#define ms(a,b) memset(a,b,sizeof(a))

using namespace std;

int t,len, k,demo[20],ans,a,b;

int get(int be, int en) {
	int temp = 0;
	for (int i = be; i < en; i++)  temp = temp * 10 + demo[i];
	return temp;
}

int main() {
	ios::sync_with_stdio(false);
	cin >> t;
	while (t--) {
		ans = INF;
		len = 0;
		do {
			cin >> demo[len++];
		} while (cin.get() != '\n');
		k = len / 2;

		if (len == 2) {
			cout << abs(demo[0] - demo[1]) << endl;
			continue;
		}

		while (next_permutation(demo, demo + len)) {
			if (demo[0] == 0 || demo[k] == 0)
				continue;
			a = get(0, k);
			b = get(k, len);
			ans = min(ans, abs(a - b));
		}
		cout << ans << endl;
	}

	return 0;
}
poj部分水题代码 poj部分水题代码描述,为初学者提供一些必要的基础 立即下载

相关推荐

POJ 1027 官方测试数据

POJ1027的官方测试数据

POJ 2718-Smallest Difference

题意:一组数分成两个数得到最小差~ 思路:得到最小

Halo 796

从零构建FOC:手把手教你实现无刷电机磁场定向控制

本文是一份详尽的FOC(磁场定向控制)实战教程,指导开发者从零开始构建无刷电机驱动系统。文章深入解析了FOC的核心算法,包括坐标变换(Clarke/Park)、SVPWM调制和双环PI控制,并对比了有感与无感方案的实现差异。通过分步调试指南,帮助读者亲手实现稳定、高效的无刷电机控制,彻底掌握其底层原理。

h3i4j的博客 514

POJ2718(贪心最巧妙的解法:视频讲解)

题目时间和内存要求: Time Limit: Memory Limit: 1000MS 65536K 题目翻译: Description: 给定许多不同的十进制数字,您可以通过选择这些数字的非空子集并按一定顺序写入它们来形成一个整数。剩下的数字可以按某种顺序写下来形成第二个整数。除非得到的整数是0,否则整数不能以数字0开头。 例如,如果给定数字0、1、2、4、6和7,则可以写入整数对10和2467。当然,形成这样的整数对的方法有很多:210和764、204和176等等,最后一对整数之间

stn54999的博客 350

FPGA实战笔记——SDRAM乒乓缓存与OV5640视频采集(VGA显示优化篇)

本文详细介绍了基于FPGA的SDRAM乒乓缓存技术在OV5640视频采集与VGA显示优化中的应用。通过设计多时钟域同步和双Bank乒乓缓存策略,有效解决了摄像头30fps输出与VGA 60fps显示之间的帧率不匹配问题,实现了720P高清视频的流畅稳定显示,为实时图像处理系统提供了可靠的硬件解决方案。

ss78901的博客 882

MacOS多次踩坑后成功安装Homebrew

来一次性成功安装Homebrew吧 官网提供的安装脚本无法成功安装Homebrew,原因大家都懂的,故采用脚本安装的方式。 下载homebrew的安装脚本brew_install 在Download路径下执行如下脚本 curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install 修改brew_install脚本 修改brew_install脚本。如果你的脚本打开之后是如下

weixin_41847116的博客 1982

POJ2718

POJ2718(Smallest Difference)题目大意输入输出解题思路用到的函数1.next_permutation()2.abs()需要注意的问题问题1问题2问题3AC代码 题目大意 给定一组递增序列的数字(这些数字是唯一的),用这些数字组成两个数,使得这两个数的差最小(正数)。例如,给定序列[0,1,2,4,6,7],最小差等于204-176=28。 输入 第一行 输入用例的个数 第二行 不超过10个数字的输入(数量未知,升序排序) 输出 组成两个数字的最小差(最后有一个换

jiaweilovemingming的博客 349

【电子通识】TINA-TI怎么使用受控源向导创建受控源

TINA-TI怎么使用受控源向导创建受控源

一点硬件 357

POJ 1979 Red and Black

编程语言:Java 题目链接:http://poj.org/problem?id=1979 题解:简单DFS 结果:AC import java.io.*; import java.util.Scanner; public class Main { static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); static PrintWriter

ZDQQQqq的博客 281

R语言机器学习:XGBoost线性回归模型的SHAP值

SHAP(SHapley Additive exPlanations)值是一种基于博弈论Shapley值的机器学习模型解释方法,能够解释任何模型的预测结果。其主要用途包括:1)提高模型的可解释性,帮助非技术用户理解模型预测;2)识别对模型预测最重要的特征,辅助特征选择;3)调试模型,发现预测中的异常;4)评估模型公平性,避免偏见。SHAP值的计算方法包括初始化、迭代计算、归一化和解释,常用工具如Python的shap库支持多种计算方式(如TreeSHAP、KernelSHAP等)。本文还提供了基于R语言计算

专注生信领域 3441

在Windows 10/11上使用Qt和SOEM构建EtherCAT主站:工业控制新纪元

☑️ Windows平台上的EtherCAT主站☑️ 微秒级精度的实时控制☑️ 动态设备配置与管理☑️ 直观的Qt监控界面☑️ 分布式时钟同步“技术不是取代人类的工具,而是拓展人类能力的翅膀。当我们在Windows上实现微秒级精度的工业控制时,不是在征服机器,而是在创造人与机器和谐共舞的新舞台。集成AI异常检测算法支持EtherCAT G协议云端监控与远程诊断完整项目代码预编译SOEM库示例视频教程。

QQ_778132974的博客 633

全排列两种实现方式(java)—poj2718

以前遇到的全排列,清一色的dfs回溯,自己知道时间复杂度挺高的,最近遇到poj2718认真总结了下全排列。 全排列:给定几个数,要求找出所有的排列方式。 法一:dfs回溯法: 思路:回溯法的核心思路就是模拟过程,其实它相对简单因为你往往不需要考虑它的下一步是什么,你只需关注如果操作这些数。你往往可能不在意数的规则规律但是也能搞出来。 举个例子。有1,2,3,4,5五个数需要全排列。我用回溯...

weixin_33981932的博客 5452

【图像超分】论文精读:SRConvNet: A Transformer-Style ConvNet for Lightweight Image Super-Resolution

本文提出了一种轻量级图像超分辨率重建方法SRConvNet,结合了卷积神经网络和Transformer的优势。针对传统Transformer计算复杂度高的问题,设计了傅立叶调制注意力(FMA)替代自注意力机制,通过区域频率空间调制实现高效的全局依赖建模;同时引入动态混合层(DML),采用混合尺度动态卷积结合通道拆分机制增强局部特征提取。实验表明,SRConvNet在计算效率和参数数量上显著优于现有轻量级超分方法,同时保持了优异的重建性能。该方法为移动端部署提供了有效的解决方案,在精度与复杂度间取得了良好平衡

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 807

poj2718

poj2718题解

幽涧恋桥 398

白鲸优化算法(BWO)详解:从生物灵感 to 工程实践

白鲸优化算法(BWO)是一种新型的群体智能优化算法,模拟白鲸的游泳、捕食和鲸落行为。该算法通过平衡因子控制探索与开发阶段的转换:探索阶段采用正弦/余弦函数模拟白鲸的同步游泳,开发阶段引入莱维飞行增强局部搜索,鲸落阶段通过随机更新避免局部最优。BWO具有参数少、实现简单、收敛速度快等优点,已在多个优化问题上展现出优异性能。其数学模型将白鲸的三种核心行为抽象为位置更新公式,实现了全局搜索与局部开发的自然平衡。

qq_42212808的博客 290

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

POJ 2718 暴力枚举

POJ2718 Smallest Difference Time Limit:1000MS Memory Limit:65536K Total Submissions:19013 Accepted:5181 Description Given a number of distinct decimal digits, you can form o...

CC_且听风吟丶的博客 495

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

POJ 2718 搜索+思维

一道思维细节题,没有什么难点。这种题想到就行,没想到错误找一辈子.../(ㄒoㄒ)/~~   POJ 2718:http://poj.org/problem?id=2718 题意: 给出最多10个不重复的从小到大的个位数, 将它们任意组合为两个数字,不能有前导0。             求出,所有排列中,两个数的最小差值。   网上很多人都是用new_permution还是什么的ST...

Hide_in_Code 576

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

poj2718 穷举

POJ 2718 Smallest Difference 将一个数切一刀拆成两个数,两个数每一位数字的顺序都可改变,但是不能有前导0。求这两个数之差的最小值。 我使用了搜索并且避免了递归,自认为是比较好的算法。 一开始我想到的是枚举,并且很快给出了实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

zht的专栏 530

POJ 2718 Smallest Difference(最小差)

POJ2718SmallestDifference(最小差) TimeLimit:1000MSMemoryLimit:65536K Description- 题目描述   Given a number of distinct decimal digits, you can form one integer by choosing a n...

270

POJ 2718 Smallest Difference(DFS或者贪心)

题目链接:http://poj.org/problem?id=2718 就是求给n个数字,n小于10,然后问组成两个数差值最小是多少,可以用dfs,但是做的时候想到贪心,但是偶数的情况我没有想到特别好的贪心方法。 奇数个:排序,如果第一个为0,和第二个交换,然后取前n/2+1个组成数,后n/2个逆序组成数,相减就可以了。 偶数个:两个的时候特判,然后取差值最小的两个且都不为0的数,大

Algobird 919

POJ2718的一些技巧

题目链接:http://poj.org/problem?id=2718 首先关于输入的问题,因为这道题不像其他题目一样先告诉你输入的数字有多少个,这就需要我们进行一波骚操作。 输入数据的代码: int a[15]; char ch; while((ch = getchar()) != '\n') { if(ch != ' ') a[j++] = ch - '0'; } 特别注...

D.k的博客 292

POJ 2718 Smallest Difference(dfs 全排列)

http://poj.org/problem?id=2718 这道题就把所有给出的数全排列,然后把数字划分为数量靠近的两堆,数量要么都一样,要么后面一堆比前面一堆少一个,然后两堆中的数字按照顺序组成数,绝对值不断更新最小值。要让difference最小,那么一定是数字划分成两堆的时候数量也要靠近。这样划分方法加上全排列,可以确保把所有的情况都考虑进去了。注意0不能为数字之首,但是要特判一

Muya 369

POJ 2718 Smallest Difference 枚举

给你一些数字(单个),不会重复出现且从小到大。他们可以组成两个各个位上的数字均不一样的数,如 0, 1, 2, 4, 6 ,7可以组成10 和 2467,但最小的差值由204和176组成,差值为28,这题就是求最小的差值。

细语呢喃 1517
上一篇: poj 3669
下一篇: poj 3187
FawkesLi
博客等级 码龄8年 21粉丝 170原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值