【洛谷p1781】宇宙总统
关于题目算法,其实就是考排序,那我们直接sort不就好啦,显然不能。
这个题让我重新认识了cmp函数;
以下是我的心路历程:
看到这个题,嗯?这么简单的吗,我直接sort不就好啦✿✿ヽ(°▽°)ノ✿
再看一眼,不会这么简单的吧(⊙▽⊙)#
往下一看:
(微笑)
废话 is over
MY SOLUTION:
这个题其实开始是想手写高精度排序的,好像手写排序也不是特别难?然后在讨论版发现了一个用sort的算法,于是我也就用sort做啦,然后成功对sort函数中的cmp有了新的认识:
- 首先当然是读入啦,结构体读入,方便排序;
- 然后sort(p+1,p+n+1,cmp)
- 接下来就是响当当的cmp函数啦:
- 首先这让人忍不住想起了【6.12校内test】T3 城市交通费中的cmp:
int cmp(int x,int y)
{
return p[x]<p[y];
}内心os:还可以这么玩qwq(这里是给出两个下标x,y,按它们的繁华度从小到大排序)
- 从网上并没有找到有关cmp是怎么用的,只找到一句话:cmp函数的含义:如果返回值是 True,表示 要把 序列 (X,Y),X放Y前。(这是我感觉唯一有用的qwq)对于这种:
bool cmp(int x,int y){
return x>y;
}的cmp,其实就是比较x与y如果x>y return 1;否则 return 0;
- 那么按照这个思想,我们可以开始编写我们的cmp了:首先求这两个字符串的长度(因为我用的char型所以是用strlen(n))比较两个串的长度,如果strlen(x)>strlen(y)(但是好像不能直接写if(strlen(x)>strlen(y)))return 1;表示把x放在y前,反之return 0;然后当这两个字符串长度相同时,我们运用一个神奇的函数strcmp——字符串比较函数;strcmp(字符串1,字符串2) 如果字符串1>字符串2,会返回一个大于0的数,如果字符串1<字符串2,会返回一个小于0的数,如果字符串1=字符串2,返回0;因此我们可以写完程序啦(不想解释啦我相信后面是很好理解的)
- 首先这让人忍不住想起了【6.12校内test】T3 城市交通费中的cmp:
CODE:
#include<bits/stdc++.h>
#include<string>
#include<algorithm> using namespace std; int n;
struct node{
int num;
char a[];
}p[]; bool cmp(node x,node y){
int xx=strlen(x.a),yy=strlen(y.a);
if(xx>yy) return ;
if(xx<yy) return ;
if(strcmp(x.a,y.a)<) return ;
return ;
} int main(){
scanf("%d",&n);
for(int i=;i<=n;i++)
cin>>p[i].a,p[i].num=i;
sort(p+,p+n+,cmp);
cout<<p[].num<<endl<<p[].a<<endl;
}
想手写一个字符串比较函数qwq
算了懒死啦(主要没有搞明白传值调用和传址调用然后不会写)
【洛谷p1781】宇宙总统的更多相关文章
- 洛谷 P1781 宇宙总统
P1781 宇宙总统 题目背景 宇宙总统竞选 题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出 ...
- 洛谷——P1781 宇宙总统
https://www.luogu.org/problem/show?pid=1781 题目背景 宇宙总统竞选 题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人 ...
- (Java实现) 洛谷 P1781 宇宙总统
题目背景 宇宙总统竞选 题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出格式 输入格式: pr ...
- 洛谷 P1781 宇宙总统:sort(string)
题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出格式 输入格式: 第一行为一个整数n,代表竞选 ...
- 洛谷P1781 宇宙总统【排序+字符串】
地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出格式 输入格式: president.in 第一行为一个 ...
- 洛谷P1781——宇宙总统(高精度排序)
题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竟选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出格式 输入格式: 第一行为一个整数n,代表竞选 ...
- 洛谷P1781宇宙总统题解
题目 此题原本是一个简单的排序,但因为数据范围的限制,所以变成了一个需采用字符串排序的题目,接下来我将给大家讲一下如何字符串排序. 首先先判断为位数上是否相同,如果不同再比较那一位的数就可以了 #in ...
- 洛谷P1781 宇宙总统
https://www.luogu.org/problem/show?pid=1781 高精比较大小: #include<iostream> #include<cstdio> ...
- (大数 string easy。。。)P1781 宇宙总统 洛谷
题目背景 宇宙总统竞选 题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出格式 输入格式: pr ...
随机推荐
- C# 使用vs2013 写 windows服务
第一步:添加windows服务项目 并起一个 好看的名字 第二步:添加安装程序 第三步:右键点击serviceProcessInstaller1属性,在Account中选择LocalSystem 第四 ...
- Java多线程和并发(十一),CAS(Compare and Swap)
目录 1.CAS简介 2.CAS多数情况下对开发者来说是透明的 3.CAS缺点 十一.CAS(Compare and Swap) Synchronized直观意义上是一种悲观锁 cas则是乐观锁的一种 ...
- Web大文件上传断点续传解决方案
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...
- MySQL数据库入门——备份数据库
mysqldump可以针对单个表.多个表.单个数据库.多个数据库.所有数据库进行导出的操作 mysqldump常用选项 -h, --host=name:服务器IP -u, --user=name:登录 ...
- linux查看端口占用情况,python探测端口使用的小程序
Linux如何查看端口 1.lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000 # lsof -i:8000 COMMAND PID USER ...
- Docker入门-Dockerfile的使用
使用Dockerfile定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,这个脚本就是Dockerfile. Dockerfile ...
- centos6 centos7 配置开机启动服务
centos 6 :使用chkconfig命令即可. 我们以apache服务为例: #chkconfig --add apache 添加nginx服务 #chkconfig apache on 开机自 ...
- JVM----堆上为对象动态分配内存
jvm中内存划分: 如上图,一共分为五块,其中: 线程共享区域为: 1.java堆 2.方法区 线程私有区域为: 3.JVM栈 4.本地方法栈 5.程序计数器 java技术体 ...
- js 函数定义的方式
js 函数定义的方式 一.总结 一句话总结: 最常见就下面三种 最常见:function func1([参数]){/*函数体*/} 将匿名函数赋值给变量:var func2=function([参数] ...
- sql server中 设置与查看锁的超时时间(ZT) @@LOCK_TIMEOUT
在数据库的应用系统中,死锁是不可避免的.通过设置死锁的处理优先级方法,可以在数据库引擎中自动检测到死锁,对发生的死锁会话进行干预,从而达到解除死锁的目点,但在这种情况下,会话只能被动的等待数据库引 ...