Luogu 1012 - 拼数
题目链接:https://www.luogu.org/problemnew/show/P1012
题解:
首先,同等长度的数字,用字典序的方法比较大小,和直接比较数字大小是一样的。
其次,对于任意两个数字进行拼接,哪个放在前面哪个放在后面,直接用字符串拼接起来,比较一下两种情况哪个比较大就可以了。
但是,暂时我还没想到怎么证明,在多个数字拼接时,两两比较拼接大小,再加上排序就可以得出正确答案……
AC代码:
#include<bits/stdc++.h>
using namespace std;
int n;
vector<string> v;
bool cmp(const string& a,const string& b) {
return a+b>b+a;
}
int main()
{
cin>>n;
string tp;
while(n--) cin>>tp, v.push_back(tp);
sort(v.begin(),v.end(),cmp);
for(auto s:v) cout<<s;
}
今天想了还有另外一种比较方式,不太确定是不是对的,过到是能过:
#include<bits/stdc++.h>
using namespace std;
int n;
vector<string> v;
bool cmp(const string& a,const string& b)
{
for(int p=;;p++)
{
if(a[p%a.size()]==b[p%b.size()]) continue;
else return a[p%a.size()]>b[p%b.size()];
}
}
int main()
{
cin>>n;
string tp;
while(n--) cin>>tp, v.push_back(tp);
sort(v.begin(),v.end(),cmp);
for(auto s:v) cout<<s;
}
Luogu 1012 - 拼数的更多相关文章
- 洛谷 1012 拼数(NOIp1998提高组)
[题解] 我们要做的就是把这些数排序.排序的时候判断两个数是否交换的方法,就是把这两个数相接形成两个长度相同的数字,比较这两个数字的大小. #include<cstdio> #includ ...
- luogu P1012 拼数
题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4 ...
- P1012 拼数
P1012 拼数 输入输出样例 输入样例 3 13 312 343 输出样例 34331213 注意 当你输入: 6321 32 407 135 13 217 应该输出: 40732321217135 ...
- 【洛谷p1012】拼数
(今天yuezhuren大课间放我们出来了……) (另外今天回了两趟初中部) 拼数[传送门] 洛谷算法标签: (然鹅这两个学的都不好,能过真的how strange) 开始的时候没读题啊,直接暴力so ...
- 洛谷 P1012 拼数
P1012 拼数 标签 字符串 排序 NOIp提高组 1998 云端 难度 普及- 时空限制 1s / 128MB 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例 ...
- NC16783 [NOIP1998]拼数
NC16783 [NOIP1998]拼数 题目 题目描述 设有 \(n\) 个正整数(\(n ≤ 20\)),将它们联接成一排,组成一个最大的多位整数. 例如:\(n=3\) 时,\(3\) 个整数 ...
- P【1012】拼数
十分蒟蒻...(还是看别人的博才过的...) 题解 #include<cstdio>#include<cstring>#include<algorithm>#inc ...
- 1998 NOIP 拼数 string 和sort的新理解
题目:https://www.luogu.org/problemnew/show/P1012 今天真是长了见识.这道题做了十几分钟,用模拟愣是调不出来.直到我看了题解——(当场去世)…… 题的意思是n ...
- NOIP1998 拼数
http://www.luogu.org/problem/show?pid=1012 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,3 ...
随机推荐
- oracle 在已有表新增列内批量加数据
创建每列随机值的语句 create table TEST_ZHAA01A_03 as select rownum as id, to_char(sysdate + rownum/24/3600, 'y ...
- [古怪问题] Marshal.GetActiveObject 在管理员模式下无法正常运行
问题: var obj = Marshal.GetActiveObject("PowerPoint.Application") 该代码在管理员模式下运行无法正常获取正在运行的 PP ...
- 关于APP,原生和H5开发技术的争论 APP开发技术选型判断依据
关于APP,原生和H5开发技术的争论 App的开发技术,目前流行的两种方式,原生和Html5.原生分了安卓平台和ios平台(还有小众的黑莓.死去的塞班就不说了),H5就是Html5. 目前争论不休的问 ...
- linux内核剖析(六)Linux系统调用详解(实现机制分析)
本文介绍了系统调用的一些实现细节.首先分析了系统调用的意义,它们与库函数和应用程序接口(API)有怎样的关系.然后,我们考察了Linux内核如何实现系统调用,以及执行系统调用的连锁反应:陷入内核,传递 ...
- [转]正则表达式的先行断言(lookahead)和后行断言(lookbehind)
正则表达式的先行断言和后行断言一共有4种形式: (?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion) (?!pattern) 零宽 ...
- Android 手机版 ssr
看上去比windows客户端多了很多选项,但实际上只需要设置这五个: 链接:https://pan.baidu.com/s/1PKL0ViJJRJw9zkG8AlvEdQ 提取码:p175 操作步骤: ...
- win下查找端口占用进程并定位到具体程序
很多时候,我们会在服务器上运行多个java程序,但是在任务管理器里看到的都是一样的图标,想要找到我们想要的那个进程咋办呢? 列出所有端口进程 C:\Users\desp>netstat -ano ...
- WCF-Oracel适配器针对UDT的使用配置与注意事项
配置方法 1.针对Oracle UDT 的数据类型需要在开发过程中手动配置生成的DLL位置和Key位置,Visual Studio->添加生成项目->Add Adapter Metadat ...
- 关于web项目创建后WEB-INF下面没有出现web.xml的解决方法
提供两种解决方案: 第一种:创建完项目后,需要手动创建出web.xml 第一步:选取创建的项目名称右击 第二步:eclipse的同学找到 java EE Tools 中的 下图画圈部分. MyEcl ...
- (10) 如何MySQL读压力大的问题
如何进行读写分离 由开发人员根据所执行的SQL类型连接不同的服务器 由数据库中间层实现读写分离 读写分离时,需要注意,对于实时性要求比较高的数据,不适合在从库上查询(因为主从复制存在一定延迟(毫秒级) ...