当前位置: 首页 > wzjs >正文

大网站制作电商营销的策略与方法

大网站制作,电商营销的策略与方法,css美化网站,广东网站建设公司报价题目描述 给定一些不同的十进制数字,您可以通过选择这些数字的一个非空子集并以某种顺序编写它们来形成一个整数。剩余的数字可以以某种顺序写下来形成第二个整数。除非结果整数为 0,否则整数可能不以数字 0 开头。 例如,如果给定数字 0, 1…

题目描述

给定一些不同的十进制数字,您可以通过选择这些数字的一个非空子集并以某种顺序编写它们来形成一个整数。剩余的数字可以以某种顺序写下来形成第二个整数。除非结果整数为 0,否则整数可能不以数字 0 开头。

例如,如果给定数字 0, 1, 2, 4, 6 和 7,您可以编写整数对 10 和 2467。当然,有许多方法可以形成这样的整数对:210 和 764,204 和 176 等。最后一对整数之间的差的绝对值为 28,事实证明,通过上述规则形成的其他整数对都无法实现更小的差。

输入格式

输入的第一行包含要遵循的案例数。

对于每个案例,输入一行,其中包含至少两个但不超过 10 个十进制数字。(十进制数字为 0, 1, …, 9。)一个输入行中的数字不会重复出现。数字将以递增顺序出现,用一个空格分隔。

输出格式

对于每个测试案例,在一行上写下可以从给定数字中按照上述规则编写的两个整数的最小绝对差。

输入输出样例 #1

输入 #1

1
0 1 2 4 6 7

输出 #1

28

提交链接

Smallest Difference

思路分析

题目允许任意顺序组合数字,只要组成两个整数,所以:

  1. 我们不能固定使用某种顺序(例如输入顺序)

  2. 所有可能的数字组合与顺序都可能影响结果。

我们必须考虑所有可能的排列(即:全排列)来保证正确性。

思考:对于一种排列是否需要枚举每一个分割点?

不需要。我们要的是两个数的最小差值。那两个数相差最小的时候,是它们的值本身最接近的时候。所以:只要对每个排列 “从中间分割” 即可。

1️⃣ 提取所有数字 去掉空格,仅保留数字 处理输入格式

string s;
getline(cin, s);
vector<int> a;
for (int i = 0; i < s.size(); i++)
{if (s[i] >= '0' && s[i] <= '9')a.push_back(s[i] - '0');
}

2️⃣ 排序后全排列 枚举所有排列方式 保证覆盖所有顺序

do
{} while (next_permutation(a.begin(), a.end()));

3️⃣ 对每个排列进行中间划分 分成两段构成两个整数 保证平均划分,逼近最小差

do
{int s1 = 0, s2 = 0, pos = a.size() / 2;// 0 ~ pos - 1  vs  pos ~ a.size() - 1for (int i = 0; i < a.size(); i++){if (i < pos)s1 = s1 * 10 + a[i];elses2 = s2 * 10 + a[i];}} while (next_permutation(a.begin(), a.end()));

4️⃣ 检查前导0 多位数不能以 0 开头 保证合法性

do
{int s1 = 0, s2 = 0, pos = a.size() / 2;if (a[0] == 0 || a[pos] == 0)continue;// 0 ~ pos - 1  vs  pos ~ a.size() - 1for (int i = 0; i < a.size(); i++){if (i < pos)s1 = s1 * 10 + a[i];elses2 = s2 * 10 + a[i];}} while (next_permutation(a.begin(), a.end()));

5️⃣ 计算差值并更新最小值 最终目标是最小绝对差值 比较每种合法组合

int mi = 1e9;
do
{int s1 = 0, s2 = 0, pos = a.size() / 2;if (a[0] == 0 || a[pos] == 0)continue;// 0 ~ pos - 1  vs  pos ~ a.size() - 1for (int i = 0; i < a.size(); i++){if (i < pos)s1 = s1 * 10 + a[i];elses2 = s2 * 10 + a[i];}mi = min(mi, abs(s1 - s2));} while (next_permutation(a.begin(), a.end()));

完整代码

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
using namespace std;
int t, x;
int main()
{cin >> t;getchar();while (t--){string s;getline(cin, s);vector<int> a;for (int i = 0; i < s.size(); i++){if (s[i] >= '0' && s[i] <= '9')a.push_back(s[i] - '0');}if (a.size() == 2){cout << abs(a[0] - a[1]) << endl;continue;}int mi = 1e9;// 全排列do{int s1 = 0, s2 = 0, pos = a.size() / 2;// 0 ~ pos - 1  vs  pos ~ a.size() - 1if (a[0] == 0 || a[pos] == 0)continue;for (int i = 0; i < a.size(); i++){if (i < pos)s1 = s1 * 10 + a[i];elses2 = s2 * 10 + a[i];}mi = min(mi, abs(s1 - s2));} while (next_permutation(a.begin(), a.end()));cout << mi << endl;}return 0;
}
http://www.dtcms.com/wzjs/34844.html

相关文章:

  • 嘉峪关市建设路小学新闻网站百度客服电话是多少
  • 上海网站建设开发制作百度搜索量排名
  • 阿里云部署一个自己做的网站吗优帮云查询数据云查询
  • 网页网站开发大概多少钱抖音广告
  • 北京专业做网站的公司淘宝关键词搜索量查询工具
  • 万网做网站seo网站管理招聘
  • 新乡网站建设费用百度有人工客服吗
  • 网站线上体系自动点击关键词软件
  • 网页设计和网站建设的课程设计沧州网站建设
  • 吉林做网站哪家好免费检测网站seo
  • 西安网站品牌建设房地产最新消息
  • 网站管理员要干些什么杭州旺道企业服务有限公司
  • 网站没备案杭州网站优化多少钱
  • 博客网站建设方案百度百科推广联系方式
  • 做营销网站制作营销策划公司的经营范围
  • 成都兼职做网站网上销售
  • 两颗米网站建设杭州网站免费制作
  • 网站建设安全规范网站seo诊断报告
  • 深圳附近建站公司seo教程seo官网优化详细方法
  • 营销网站建设设计网盟推广平台
  • wordpress 访问量seo网站培训班
  • 用asp.net做的网站实例海外营销
  • 网站seo优化要怎么做上海百度推广排名优化
  • 网站登录密码忘记了seo推广案例
  • 一键建站哪家信誉好百度官方app下载
  • 网上购物商城网站建设拼多多关键词排名查询软件
  • 推广是什么志鸿优化网官网
  • 蔺市网站建设优化公司排行榜
  • 面对不法网站该怎样做有利于seo优化的是
  • 优化网站流量服务之家网站推广公司