团体程序设计天梯赛-练习集L2篇⑧

news2024/11/19 2:35:50

🚀欢迎来到本文🚀
🍉个人简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的普通人。
🏀个人主页:@陈童学哦`CSDN
💡所属专栏:PTA
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝
​ ⛱️刷题的当下应是享受的!望与诸君共勉!🏄‍♂️

在这里插入图片描述

下面是PTA的OJ平台

PTA的OJ平台(点击我直跳)

题目汇总

  • 题解
    • L2-027 名人堂与代金券
    • L2-028 秀恩爱分得快
    • L2-029 特立独行的幸福
  • 写在最后

题解

L2-027 名人堂与代金券

对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入课程“名人堂”。本题就请你编写程序,帮助老师列出名人堂的学生,并统计一共发出了面值多少元的 PAT 代金券。

输入格式:
输入在第一行给出 3 个整数,分别是 N(不超过 10 000 的正整数,为学生总数)、G(在 (60,100) 区间内的整数,为题面中描述的代金券等级分界线)、K(不超过 100 且不超过 N 的正整数,为进入名人堂的最低名次)。接下来 N 行,每行给出一位学生的账号(长度不超过15位、不带空格的字符串)和总评成绩(区间 [0, 100] 内的整数),其间以空格分隔。题目保证没有重复的账号。

输出格式:
首先在一行中输出发出的 PAT 代金券的总面值。然后按总评成绩非升序输出进入名人堂的学生的名次、账号和成绩,其间以 1 个空格分隔。需要注意的是:成绩相同的学生享有并列的排名,排名并列时,按账号的字母序升序输出。

输入样例:
10 80 5
cy@zju.edu.cn 78
cy@pat-edu.com 87
1001@qq.com 65
uh-oh@163.com 96
test@126.com 39
anyone@qq.com 87
zoe@mit.edu 80
jack@ucla.edu 88
bob@cmu.edu 80
ken@163.com 70
输出样例:
360
1 uh-oh@163.com 96
2 jack@ucla.edu 88
3 anyone@qq.com 87
3 cy@pat-edu.com 87
5 bob@cmu.edu 80
5 zoe@mit.edu 80

AC代码:

#include<bits/stdc++.h>
using namespace std;
struct node
{
	string name;
	int cj;
}stu[10001];
bool cmp(node a,node b)
{
	if(a.cj==b.cj)
		return a.name<b.name;
	return a.cj>b.cj;
}
int main()
{
	int n,g,k;
	int money=0;
	scanf("%d %d %d",&n,&g,&k);
	for(int i=0;i<n;i++)
	{
		cin>>stu[i].name>>stu[i].cj;
		if(stu[i].cj>=60&&stu[i].cj<g)
		{
			money+=20;
		}
		else if(stu[i].cj>=g&&stu[i].cj<=100)
		{
			money+=50;
		}
	}
	cout<<money<<endl;
	sort(stu,stu+n,cmp);
	int j=0;
	for(int i=0;i<n;i++)
	{
            if(i==0||stu[i].cj!=stu[i-1].cj)
				j=i+1;
            if(j>k)
               break;
		    cout<<j<<" "<<stu[i].name<<" "<<stu[i].cj<<endl;			
	}
}

L2-028 秀恩爱分得快

古人云:秀恩爱,分得快。

互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友?

输入格式:
输入在第一行给出 2 个正整数:N(不超过1000,为总人数——简单起见,我们把所有人从 0 到 N-1 编号。为了区分性别,我们用编号前的负号表示女性)和 M(不超过1000,为照片总数)。随后 M 行,每行给出一张照片的信息,格式如下:

K P[1] … P[K]
其中 K(≤ 500)是该照片中出现的人数,P[1] ~ P[K] 就是这些人的编号。最后一行给出一对异性情侣的编号 A 和 B。同行数字以空格分隔。题目保证每个人只有一个性别,并且不会在同一张照片里出现多次。

输出格式:
首先输出 A PA,其中 PA 是与 A 最亲密的异性。如果 PA 不唯一,则按他们编号的绝对值递增输出;然后类似地输出 B PB。但如果 A 和 B 正是彼此亲密度最高的一对,则只输出他们的编号,无论是否还有其他人并列。

输入样例 1:
10 4
4 -1 2 -3 4
4 2 -3 -5 -6
3 2 4 -5
3 -6 0 2
-3 2
输出样例 1:
-3 2
2 -5
2 -6
输入样例 2:
4 4
4 -1 2 -3 0
2 0 -3
2 2 -3
2 -1 2
-3 2
输出样例 2:
-3 2

AC代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
bool sex[N];
double q[N][N];
 
void print(int a,int b){
	if(!sex[a]) cout<<'-';
	cout<<a<<' ';
	if(!sex[b]) cout<<'-';
	cout<<b<<'\n';
}
 
int main()
{
	int n,m;
	cin>>n>>m;
	while(m--)
    {
		int k; cin>>k;
		double qm = 1.0/k;
		vector<int> ls;
		while(k--)
        {
			string x; cin>>x;
			int num = abs(stoi(x));
			if(x[0] != '-') sex[num] = 1;
			for(int i = 0; i < ls.size(); i++)//计算两两亲密度
				if(sex[num] != sex[ls[i]])
                {
					q[num][ls[i]] += qm;
					q[ls[i]][num] += qm;
				}
			ls.push_back(num);
		}
	}
		
	int a,b; cin>>a>>b;
	a = abs(a), b = abs(b);
	double max1 = 0, max2 = 0;;
	for(int i = 0; i < n; i++)
    {
		if(sex[a] != sex[i])
			max1 = max(max1,q[a][i]);
			
		if(sex[b] != sex[i])
			max2 = max(max2,q[b][i]);
	}
	
	if(q[a][b] == max1 && q[b][a] == max2)
    {
		print(a,b);
		return 0;
	}
	
	for(int i = 0; i < n; i++)
		if(q[a][i] == max1) 
			print(a,i);
			
	for(int i = 0; i < n; i++)
		if(q[b][i] == max2) 
			print(b,i);
	
	return 0;
} 

L2-029 特立独行的幸福

对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 的。而一个特立独行的幸福数,是在一个有限的区间内不依附于任何其它数字的;其独立性就是依附于它的的幸福数的个数。如果这个数还是个素数,则其独立性加倍。例如 19 在区间[1, 100] 内就是一个特立独行的幸福数,其独立性为 2×4=8。

另一方面,如果一个大于1的数字经过数次迭代后进入了死循环,那这个数就不幸福。例如 29 迭代得到 85、89、145、42、20、4、16、37、58、89、…… 可见 89 到 58 形成了死循环,所以 29 就不幸福。

本题就要求你编写程序,列出给定区间内的所有特立独行的幸福数和它的独立性。

输入格式:
输入在第一行给出闭区间的两个端点:1<A<B≤10
4

输出格式:
按递增顺序列出给定闭区间 [A,B] 内的所有特立独行的幸福数和它的独立性。每对数字占一行,数字间以 1 个空格分隔。

如果区间内没有幸福数,则在一行中输出 SAD。

输入样例 1:
10 40
输出样例 1:
19 8
23 6
28 3
31 4
32 3
注意:样例中,10、13 也都是幸福数,但它们分别依附于其他数字(如 23、31 等等),所以不输出。其它数字虽然其实也依附于其它幸福数,但因为那些数字不在给定区间 [10, 40] 内,所以它们在给定区间内是特立独行的幸福数。

输入样例 2:
110 120
输出样例 2:
SAD

AC代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=10010;
int flagn[maxn]={0};
int getnum(int x)
{
	int sum=0;
	while(x)
	{
		sum+=pow((x%10),2);
		x/=10;
	}
	return sum;
}
bool judge(int x)
{
	if(x==1||x==0)
		return false;
	for(int i=2;i<=sqrt(x);i++)
		if(x%i==0)
			return false;
	return true;
}
vector<int>v1,v2;
int main()
{
	int a,b;
	cin>>a>>b;
	for(int i=a;i<=b;i++)
	{
		int x=i;
		int sum=0;
		int flag[maxn]={0};
		while(1)
		{
			x=getnum(x);
			sum++;
			if(x==1)
			{
				if(judge(i))
					sum*=2;
				v1.push_back(i);
				v2.push_back(sum);
				break;
			}
			if(flag[x])
				break;
			flag[x]=1;
			flagn[x]=1;
			}
		}
		if(v1.size()==0)
		{
			cout<<"SAD"<<endl;
				return 0;	
		}
		for(int i=0;i<v1.size();i++)
		{
			if(!flagn[v1[i]])
				cout<<v1[i]<<" "<<v2[i]<<endl;
		}
			
}

写在最后

🍉🍉🍉不必偏执于未知的真实,身处的当下即是意义和真实,爱才是解题的答案,也是刻画人生色彩的笔尖,耐心的走下去,总会遇到你爱的人和爱你的人。

🍁🍁🍁好啦,本文的内容就到此结束啦,我们下期再见哦!另外在祝各位小伙伴们要天天开心哦!
🍂🍂🍂如果你觉得本文对你有帮助的话,还请不要吝惜您的三连哦!您的支持就是我创作的最大动力!!爱你们💕💕💕
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css基础(三)

目录 一、CSS三大特性 1.层叠性 2.继承性 3.行高的继承 4.CSS三大特性之优先级 5.优先级注意的问题 6.CSS权重的叠加 二、盒子模型 1.盒子模型组成部分 2.盒子模型边框border 3.边框的复合写法 4.表格细线边框 5.边框会影响盒子实际大小 6.盒子模型内边距padding 7.盒子模型外边…

文心一言 VS 讯飞星火 VS chatgpt (49)-- 算法导论6.2 1题

一、参照图6-2的方法&#xff0c;说明 MAX-HEAPIFY(A&#xff0c;3)在数组 A(27&#xff0c;17&#xff0c;3&#xff0c;16&#xff0c;13&#xff0c;10&#xff0c;1&#xff0c;5&#xff0c;7&#xff0c;12&#xff0c;4&#xff0c;8&#xff0c;9&#xff0c;0)上的操作…

怪物设计记录

一、怪物的对抗性 《怪物猎人世界》 1.生态系的重视&#xff0c;高低差&#xff0c;怪物密度 3.怪物的活动范围 4.瘴气之谷 设定&#xff1a;鲸落等等 5.设定上的爬升 6.怪物设计原则&#xff1a; 和同一只怪物多次战斗&#xff0c;仍然能感觉到乐趣 让玩家尝试不同种类的…

责任链模式(Chain of Responsibility)

别名 命令链&#xff08;Chain of Command&#xff09;。 定义 责任链是一种行为设计模式&#xff0c;允许你将请求沿着处理者链进行发送。收到请求后&#xff0c;每个处理者均可对请求进行处理&#xff0c;或将其传递给链上的下个处理者。 前言 1. 问题 假如你正在开发一…

监听器-Listener

Servlet规范中的监听器-Listener 观察者设计模式, 所有的监听器都是观察者设计模式的体现。 什么是观察者设计模式呢&#xff1f; 它是事件驱动的一种体现形式。就好比在做什么事情的时候被人盯着。当对应做到某件事时&#xff0c;触发事件。 观察者模式通常由以下三部分组成…

【话题达人】你觉得存款难吗?如何看待半数年轻人存款不住10万?这不是基操

导读 近日&#xff0c;有调查称 大概五分之一的年轻人存款在一万元以内。10万元存款是一个“坎”&#xff0c;存款超过10万就会超过53.7%的人。年轻人(23-28) 和 存款 两个词碰撞在一起&#xff0c;引来了广泛的关注和讨论。你认为年轻人存款难吗&#xff1f; 先说结论&#…

程序员之马上结束任务

计算机系的男同学追班里一女同学&#xff0c;结果此女总是躲躲闪闪。 男的看没戏&#xff0c;就另找了一个去追&#xff0c;结果这女的不满意了&#xff0c;质问这男的为啥抛弃她。 男的问&#xff1a;“请教一个电脑问题&#xff0c;如果你点击一个程序&#xff0c;总是提示…

浓浓书香伴新春,TVP邀你共读7本精选好书!

引言 颜之推在《颜氏家训勉学》中曾云“夫所以读书学问&#xff0c;本欲开心明目&#xff0c;利于行耳。”所谓读书学问&#xff0c;就是要开阔自己的胸襟&#xff0c;提高自己的鉴别力&#xff0c;从而有利于亲身实践。岁末年初&#xff0c;庭前飘雪&#xff0c;TVP 带你赴一场…

刚去了家新公司,发现个个都是卷王 , 真想离职了。。。

个个都说想躺平了&#xff0c;可是有一说一&#xff0c;该卷的还是卷。这不&#xff0c;前段时间我们公司来了个00后&#xff0c;才工作一年&#xff0c;跳槽到我们公司起薪15K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。…

Python元组、集合、字典

总有一天你要一个人在暗夜中&#xff0c;向那座桥走过去 文章目录 一、元组 字符串、元组、列表的总结 二、集合 1.定义空集合 2.创建集合 &#xff08;1&#xff09;直接创建 &#xff08;2&#xff09;set函数 3.列表、元组、字符串、字典的去重 4.向集合中添加元素…

VUE-001-在表格单元格(el-table-column)中添加超链接访问

在进行前端网页开发时&#xff0c;通常列表数据我们使用table展示。那么如何在 el-table-column 单元格中使用超链接呢&#xff1f; 如下即是解决方式的一种&#xff1a; 仅需要将如下代码&#xff1a; <el-table-column prop"url" label"访问链接" …

软件测试入门(测试环境及用例编写)

目录 一、什么是软件环境 二、软件运行环境类型 三、什么是测试用例&#xff08;测试case&#xff09; 四、测试用例包含哪些信息 五、测试用例设计方法 六、如何设计一个功能点的case 一、什么是软件环境 人有人类的生存环境&#xff1b;软件有软件的运行环境 二、软件…

数通王国历险记之TCP协议的三次握手和四次挥手

系列文章目录 数通王国历险记&#xff08;2&#xff09; 目录 前言 一、TCP我们称之为可靠的传输层协议&#xff0c;为什么称它为可靠呢? 二、TCP的建立——三次握手 1&#xff0c;提前知道TCP协议报文中都有些啥&#xff1f; 2.第一次握手 总的来说:就是PC1向PC2发出一个…

MySql进阶篇(附面试快速答法)

文章目录 1、慢查询1.1、如何定位慢查询呢&#xff1f;小总结面试快速答法 1.2、SQL语句执行很慢, 如何分析呢&#xff1f;小总结面试快速答法 2、存储引擎2.1、MySQL体系结构2.2、存储引擎特点小总结 3、索引3.1、什么是索引&#xff1f;小总结面试快速答法 3.2、聚集索引和非…

mesh网格数据解析及cesium可视化实现

代码实现运行效果 技术术语 Mesh通常指网络拓扑中的网状结构。在计算机网络中&#xff0c;Mesh是指每个节点都与其他节点相连&#xff0c;形成一个无中心的网状结构。Mesh网络常见于分布式计算、传感器网络、互联网等场景中。另外&#xff0c;在3D计算机图形学中&#xff0c;M…

SSMP整合案例(8) Restful开发表现层接口

之前几篇文章后面 我们的数据层 和 业务层基本就搭好了 然后 我们就要处理表现层 表现层开发 我们就还是用之前讲过的 Restful 然后 用Postman来做我们接口的测试 那话不多说 直接开干 在启动类同目录下创建一个 controller 包 下面创建一个类 叫 BookController BookControl…

5-3图像处理经典案例:椒盐噪声运算处理(matlab程序)

1.简述 椒盐噪声也称为脉冲噪声&#xff0c;是图像中经常见到的一种噪声&#xff0c;它是一种随机出现的白点或者黑点&#xff0c;可能是亮的区域有黑色像素或是在暗的区域有白色像素&#xff08;或是两者皆有&#xff09;。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干…

C++ 基础知识(1)

文章目录 写在前面1、第一个c程序1.1、输入输出及注释1.2、命名空间 2、变量、数组、指针2.1、基本类型2.2、数组与字符串2.3、指针2.4、指针空值2.5、引用 3、判断与循环3.1、if、else3.2、for、while 4、函数与参数4.1、函数与缺省参数4.2、函数重载4.3、内联函数 写在前面 …

什么是云安全访问服务

云安全访问服务(Cloud Secure Access Service&#xff0c;CSAS)是一种网络安全服务&#xff0c;旨在保护云环境下的应用程序和数据。它提供了一种安全访问云应用程序和数据的方式&#xff0c;同时也可以保护云中的敏感信息不被未经授权的用户访问。CSAS包括多种安全功能&#x…

从程序员到架构师——缓存层场景

读缓存 业务场景 如何将十几秒的查询请求优化成毫秒级&#xff1f; 这次项目针对的系统是一个电商系统。每个电商系统都有个商品详情页。一开始这个页面很简单&#xff0c;只包括商品的图片、介绍、规格、评价等。 刚开始&#xff0c;这个页面打开很快&#xff0c;系统运行…