NOI3.1 6377:生日相同 2.0
描述
在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。
输入
第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字母大写,其余小写,不含空格,且长度小于20)和出生月(1 ≤ m ≤ 12)日(1 ≤ d ≤ 31)。名字、月、日之间用一个空格分隔
输出
每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的名字,数字、名字之间都用一个空格分隔。对所有的输出,要求按日期从前到后的顺序输出。 对生日相同的名字,按名字从短到长按序输出,长度相同的按字典序输出。如没有生日相同的学生,输出”None”
样例输入
6
Avril 3 2
Candy 4 5
Tim 3 2
Sufia 4 5
Lagrange 4 5
Bill 3 2
样例输出
3 2 Tim Bill Avril
4 5 Candy Sufia Lagrange
开始觉得这题只需要结构体排序,但要写两个结构体,有点烧脑,但这并不重要
这题主要实现介绍如何结构体套结构体,方法如下:
struct ill{
		char name[21];
};
struct node{
	int num;
	ill ren[185];//用于访问“ill”结构体
}day[16][35];不要笑结构体的名字…………
千万不要这样写:
struct node{
int num;
struct ill{
char name[20];
}ren[180];
};
不然在写排序函数时会报错
题目很简单,只是想介绍结构体的特性…………
AC代码如下:
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
struct ill{
		char name[21];
};
struct node{
	int num;
	ill ren[185];
}day[16][35];
bool fuu(ill x,ill y)
{
	if(strlen(x.name)<strlen(y.name))
		return 1;
	if(strlen(x.name)==strlen(y.name)&&strcmp(x.name,y.name)<0)
		return 1;
	return 0;
}
int main()
{
	int n,m,d,i,j,k;
	bool p=0;
	char a[21];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s%d%d",a,&m,&d);
		strcpy(day[m][d].ren[day[m][d].num].name,a);
		day[m][d].num++;
	}
	for(i=1;i<=12;i++)
		for(j=1;j<=31;j++)
			if(day[i][j].num)
				sort(day[i][j].ren,day[i][j].ren+day[i][j].num,fuu);
	for(i=1;i<=12;i++)
		for(j=1;j<=31;j++)
			if(day[i][j].num>1)
			{
				p=1;
				printf("%d %d",i,j);
				for(k=0;k<day[i][j].num;k++)
					printf(" %s",day[i][j].ren[k].name);
				printf("\n");
			}
	if(!p)
		printf("None");
}NOI3.1 6377:生日相同 2.0的更多相关文章
- 投入OJ的怀抱~~~~~~~~~~
		OpenJudge C20182024 信箱(1) 账号 修改设定 退出小组 管理员 frank 林舒 Dzx someone 李文新 公告 11-05 程序设计与算法(大学先修课) 成员(61910 ... 
- 概率 light oj 1104
		t个数据 n天一年 至少2个人在同一天生日的概率>=0.5 问至少多少人 显然要从反面考虑 设365天 都在不同一天的概率 p(num)=1*364/365*363/365...; =(day ... 
- Redis-分布式
		package test.jedis; import java.util.HashSet; import java.util.Set; import org.junit.Test; import re ... 
- WPF的数据绑定详细介绍
		数据绑定:是应用程序 UI 与业务逻辑之间建立连接的过程. 如果绑定正确设置并且数据提供正确通知,则当数据的值发生更改时,绑定到数据的视觉元素会自动反映更改. 数据绑定可能还意味着如果视觉元素中数据的 ... 
- hpu第五届acm比赛
		vijos P1211生日日数 描述 CCC老师的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天). 格式 输入格式 从文件的第一行分别读入YY,MM,DD其中1 ... 
- 一些实用的mysql语句(不断积累更新)
		1.数据表里仅仅有生日字段,想计算出其年龄的mysql语句: SELECT *,DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW( ))-TO_DAYS(生日字段)),'%Y')+0 ... 
- 爬取拉勾网招聘信息并使用xlwt存入Excel
		xlwt 1.3.0 xlwt 文档 xlrd 1.1.0 python操作excel之xlrd 1.Python模块介绍 - xlwt ,什么是xlwt? Python语言中,写入Excel文件的扩 ... 
- PAT (Basic Level) Practise (中文)-1028. 人口普查(20)
		PAT (Basic Level) Practise (中文)-1028. 人口普查(20) http://www.patest.cn/contests/pat-b-practise/1028 某 ... 
- Python输入输出及其他
		print用法 print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果.回车 \r 本义是光标重 ... 
随机推荐
- SQL语句之子语句
			子语句之间的顺序: WHERE GROUP ORDER LIMIT 
- git无密码push
			近来项目中调研,jupyterlab和git的整合内容,git server我使用的gitbucket和bitbucket.(项目要求使用bitbucket,看错一个字母下载了两个镜像) gitbuc ... 
- ES安装&常见错误
			ES常见错误 案例一 [2018-06-20T02:35:47,152][INFO ][o.e.b.BootstrapChecks ] [SUcoFrg] bound or publishing to ... 
- C++ 动态加载 DLL 时,GetProcAddress() 返回 NULL,GetLastError() 获取错误代码为 127
			1.问题现象: 采用“运行期间动态链接”自己的 dll 文件,LoadLibrary() 成功获取 dll 模块句柄,但是 GetProcAddress() 返回 NULL. 2.问题分析: 调用 G ... 
- VRchat模型之unity
			VRChat模型制作及上传总篇(包含总流程和所需插件):https://www.cnblogs.com/raitorei/p/12015876.html 0.新建工程, 导入VRCSDK及动态骨骼插件 ... 
- 6.ChannelPipeline
			pipeline和handler ChannelPipline ChannelHandler ChannelHandlerContext pipeline的初始化 handler的添加和删除 hand ... 
- Kubernetes从私有镜像仓库中拉取镜像
			当我们尝试从私有仓库中拉取镜像时,可能会收到这样提示:requested access to the resource is denied Error response from daemon: pu ... 
- 最长无重复子串问题 leetcode 3
			一.代码及注释 class Solution { public: int lengthOfLongestSubstring(string s) { int n = s.size(); //字符串的长度 ... 
- DOCKER学习_008:Docker容器的运行最佳实践
			一 容器分类 容器按用途大致可分为两类: 服务类容器,如 web server. database等 工具类容器,如cur容器, Iredis-cli容器 通常而言,服务类容器需要长期运行,所以使用 ... 
- Tomcat从安装到配置Https SSL证书
			为什么要写本文? 今天一个群友在群里问怎么给Tomcat配置SSL,也就是HTTPS,他买的阿里云的服务器,自带公网ip,还找到了免费的SSL证书 既然@我了,我就帮忙搞一搞呗,我就要了一个带sudo ... 
