NOI3.1 6377:生日相同 2.0
来源:互联网 发布:知乎2016年度盘点 编辑:程序博客网 时间:2024/04/30 13:28
在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。
6Avril 3 2Candy 4 5Tim 3 2Sufia 4 5Lagrange 4 5Bill 3 2
3 2 Tim Bill Avril4 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");}
1 0
- NOI3.1 6377:生日相同 2.0
- 3.1数据结构之结构 6377 生日相同 2.0
- OpenJudge 6377:生日相同 2.0——题解
- 6377:生日相同 2.0(3.1数据结构之结构)
- 生日相同
- 生日相同
- 相同生日
- 生日相同 2.0 【open judge】【结构体】
- OpenJudge-计算机概论(A)-1-生日相同 2.0
- java算法:生日相同
- ACM之生日相同
- 1035: 相同生日
- 生日相同的概率
- 2724:生日相同
- 问题 : 相同生日
- Java程序练习-生日相同
- 生日不相同的概率
- 蓝桥杯-生日相同的概率
- Android版本加固后签名
- Oracle模式对象
- 简单splay模板
- iOS学习笔记 系统服务(一)短信和邮件
- (第四周项目6)多项式求和
- NOI3.1 6377:生日相同 2.0
- 浏览器的一个妙用——修改京东商品单价显示
- MFC写Excel文件
- 搜索算法----母亲的牛奶
- 博客搬家
- Android EventBus 3.0 框架用法详解
- Maven 项目不打包 *.hbm.xml 映射文件
- 番外特别篇之 为什么我不建议你直接使用UIImage传值?--从一个诡异的相册九图连读崩溃bug谈起
- 最长公共子串和最长公共子序列