『ACM C++』 PTA 天梯赛练习集L1 | 034-035
在一个团队里,一群人一起为一件事情努力奋斗的过程,真的很值得享受,真希望我能拥有很多这样的团队。
------------------------------------------------L1-034----------------------------------------------------------
点赞
微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。
输入格式:
输入在第一行给出一个正整数N(≤),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1⋯FK”,其中1,Fi(,)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。
输出格式:
统计所有被点赞的博文中最常出现的那个特性标签,在一行中输出它的编号和出现次数,数字间隔1个空格。如果有并列,则输出编号最大的那个。
输入样例:
4 3 889 233 2 5 100 3 233 2 73 4 3 73 889 2 2 233 123
输出样例:
233 3
------------------------------------------------L1-034----------------------------------------------------------
注解:水题,主要是把握次数最大项的保存,难度不大
#include<stdio.h> struct max { int count = 0; int pos = -1; }m; int times,K; int temp[99999999]; int main() { scanf("%d",×); for(int i = 0;i<times;i++) { scanf("%d",&K); for(int u = 0;u<K;u++) { int p; scanf("%d",&p); temp[p]++; if(temp[p] > m.count) { m.count = temp[p]; m.pos = p; } else if(temp[p] == m.count && p > m.pos) { m.count = temp[p]; m.pos = p; } } } printf("%d %d",m.pos,m.count); return 0; }
------------------------------------------------L1-035----------------------------------------------------------
情人节
以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋。
输入格式:
输入按照点赞的先后顺序给出不知道多少个点赞的人名,每个人名占一行,为不超过10个英文字母的非空单词,以回车结束。一个英文句点.
标志输入的结束,这个符号不算在点赞名单里。
输出格式:
根据点赞情况在一行中输出结论:若存在第2个人A和第14个人B,则输出“A and B are inviting you to dinner...”;若只有A没有B,则输出“A is the only one for you...”;若连A都没有,则输出“Momo... No one is for you ...”。
输入样例1:
GaoXZh
Magi
Einst
Quark
LaoLao
FatMouse
ZhaShen
fantacy
latesum
SenSen
QuanQuan
whatever
whenever
Potaty
hahaha
.
输出样例1:
Magi and Potaty are inviting you to dinner...
输入样例2:
LaoLao
FatMouse
whoever
.
输出样例2:
FatMouse is the only one for you...
输入样例3:
LaoLao
.
输出样例3:
Momo... No one is for you ...
------------------------------------------------L1-035----------------------------------------------------------
注解:难度不大,利用函数strcpy可以巧妙解决:
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; char A[9999]; char B[9999]; char temp[99999]; int i; int main() { for(i = 0;temp[0] != '.';) { scanf("%s",&temp); if(temp[0] == '.') break; if(i == 1) strcpy(A,temp); else if(i == 13) strcpy(B,temp); i++; } if(i<2) printf("Momo... No one is for you ...\n"); else if(i<13) cout<<A<<" is the only one for you...\n"; else if(i>=13) cout<<A<<" and "<<B<<" are inviting you to dinner...\n"; return 0; }
注:如果有更好的解法,真心希望您能够评论留言贴上您的代码呢~互相帮助互相鼓励才能成长鸭~~