【洛谷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 ...
随机推荐
- CSS 内边距 padding 属性
CSS padding 属性定义元素边框与元素内容之间的空白区域. ㈠padding(填充) ⑴当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充. ⑵单独使用 p ...
- 线程Thread、线程池ThreadPool
Thread调用含参方法,参数必须是object类.ThreadPool调用的方法,无论是否含参,方法必须有object类参数(可不用,但得有) [线程] using System; using Sy ...
- C/C++ - 指针 与 引用
一.指针 1.指针与指针变量的区分 a.指针:指针就是内存编号,也就是内存地址,通俗的讲,指针就是变量的地址. 注1:指针的大小是根据计算机的操作系统而定的,跟变量类型无关 注2:如果是32位的操作系 ...
- [CF1223G/1240E]Wooden Raft 题解
前言 上午一场模拟赛(发布前很久,因为这题题解太长了),发现T3特别珂怕,打开题解,发现一行字: 不要再问了,再问就是CF 1240E 当场去世.jpg. 在下文中,我们记 \(A\) 为 \(a\) ...
- Java回调
最近在看Spring的JdbcTemplate,有碰到很多的回调场景,在这里做一个笔记. 示例: 公司的经理出差时打电话给你让你帮他处理件事情,但不能一直通着电话,于是他让你办好事情后打电话告诉他一声 ...
- [洛谷P1501] [国家集训队]Tree II(LCT模板)
传送门 这是一道LCT的板子题,说白了就是在LCT上支持线段树2的操作. 所以我只是来存一个板子,并不会讲什么(再说我也不会,只能误人子弟2333). 不过代码里的注释可以参考一下. Code #in ...
- Android学习_7/23
1. 在活动中使用Menu 1) 什么是Menu? 2) 怎么实现? step1:res目录下创建Menu resource file,使用<item… ...
- C语言中的!!
C语言中!!的作用是?看例子: #include <stdio.h> int main() { ; printf("test=%d !test=%d !!test=%d\n&qu ...
- LeetCode 47. 全排列 II(Permutations II)
题目描述 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 解题思路 类似于LeetCode4 ...
- 环信及时通讯 Laravel 扩展包
laravel-easemob 环信及时通讯 laravel 包开发,用于环信用户.群.聊天室等功能 github 地址 安装 加载包 "link1st/laravel-easemob& ...