蓝桥杯备考

目录

[P8823 [传智杯 #3 初赛] 期末考试成绩](#3 初赛] 期末考试成绩)

题目描述

输入格式

输出格式

输入输出样例

说明/提示

代码

[P8828 [传智杯 #3 练习赛] 直角三角形](#3 练习赛] 直角三角形)

题目描述

输入格式

输出格式

输入输出样例

代码

[P8833 [传智杯 #3 决赛] 课程](#3 决赛] 课程)

题目背景

题目描述

输入格式

输出格式

输入输出样例

样例解释

代码

[P8840 [传智杯 #4 初赛] 报告赋分](#4 初赛] 报告赋分)

题目描述

输入格式

输出格式

输入输出样例

代码

[B3913 [语言月赛 202401] 装满葡萄汁的酒杯](#B3913 [语言月赛 202401] 装满葡萄汁的酒杯)

题目描述

输入格式

输出格式

输入输出样例

样例解释 #1

数据规模与约定

代码


P8823 [传智杯 #3 初赛] 期末考试成绩

题目描述

传智专修学院的 Java 程序设计课程的评价体系是这样的:

首先,所有学生会有一个卷面得分,这个得分一定是一个[0,100] 之间的整数。

如果卷面得分在 90 分及以上,那么他的 GPA(加权平均成绩) 就是满分 4.04.0。

如果卷面得分在 60∼89 之间,那么他每比 9090 分少 11 分,那么他的分数就会在 4.04.0 的基础上减少 0.1。

如果卷面得分不到 60分,那么善良的老师会给他照顾。具体来说,如果他的分数为 x,那么老师会把他的分数调整为 *10 (向下取整) ,再计算他的 GPA。

如果经过调整该学生的得分依旧没满 60 ,那么他就挂科了,GPA 就是 0 分。

现在给你一个人的期末卷面得分,请你输出他的最终 GPA

输入格式

一行一个整数 x,表示该人的期末得分。

输出格式

一个小数点后只有一位的浮点数,表示该同学获得的GPA。

请注意,如果有.0 请保留。

输入输出样例

输入 #1复制99

输出 #1复制4.0

输入 #2复制88

输出 #2复制3.8

输入 #3复制12

输出 #3复制0.0

说明/提示

对于 20%的数据,满足 90≤x≤100;

对于额外 30% 的数据,满足 60≤≤x≤100;

对于 100% 的数据,满足 0≤x≤100。

代码

cpp 复制代码
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int num,num2;
	double gpa;
	cin>>num;
	if(num>=90)gpa=4;
	if(num>=60&&num<90)
	{
		gpa=4-(90-num)*0.1;
	}
	if(num<60)
	{
		num2=pow(num,0.5)*10;
		if(num2<60)gpa=0.0;
		else
		gpa=4-(90-num2)*0.1;
	}
	printf("%0.1lf",gpa);
	return 0;
 } 

P8828 [传智杯 #3 练习赛] 直角三角形

题目描述

一个直角三角形的两个直角边是 a,b(a≤b),其斜边是 c,且a,b,c 都是正整数。

现在我们已经知道了斜边长度 c,请问这个直角三角形的两个直角边的长度是什么?

输入格式

输入一个整数 c(1≤c≤1.41×104)。

输出格式

输出两个整数 a,b 表示答案。保证有整数解。如果有多个可能的答案,请确保 a 尽可能的小。

输入输出样例

输入 #15

输出 #13 4

代码

cs 复制代码
 #include<iostream>
 #include<cmath>
 using namespace std;
 int main()
 {
 	int a,c,zhengshu=0;
 	double b=0,xiaoshu=0;
 	cin>>c;
 	for(a=1;a<c;a++)
 	{
 		zhengshu=sqrt(c*c-a*a);
 		b=sqrt(c*c-a*a);
 		xiaoshu=b-zhengshu;
 		if(xiaoshu==0)break;
 		
 		
	}
	cout<<a<<' '<<b<<endl;
	return 0;
 }

P8833 [传智杯 #3 决赛] 课程

题目背景

disangan233 喜欢数数,于是他想让你帮他回答一个问题。

题目描述

传智专修学院提供 A,B 两个课程,分别有n,m 个学生报名。报名 A 的学生的编号为,报名 B 的学生的编号为 ​,求有多少个学生同时报名了两个课程。

对于所有数据n,m,,≤20,保证每个课程报名的学生编号不会重复。

输入格式

输入共 3行。

第 1 行输入 2个正整数 n,m。

第 2 行输入 n 个正整数 ​...​,表示报名课程 A 的学生编号。

第 3 行输入m 个正整数 ​...​,表示报名课程 B 的学生编号。

学生编号不保证从小到大排序。

输出格式

输出共 1 行 1个整数,表示答案。

输入输出样例

输入 #1

复制代码
5 5
1 2 3 4 5
1 3 4 5 6

输出 #14

样例解释

我们发现,1,3,4,5这 4名学生同时报名了两门课程,所以答案是 4。

代码

cpp 复制代码
 #include<iostream>
 #include<vector>
 using namespace std;
 int main() 
 {
 	int n,m,num=0;
 	cin>>n>>m;
 	vector <int>arrA(n);
 	vector <int>arrB(m);
 	for(int i=0;i<n;i++)cin>>arrA[i];
 	for(int i=0;i<m;i++)
 	{
 		cin>>arrB[i];
 		for(int j=0;j<n;j++)
 		{
 			if(arrB[i]==arrA[j])num++;
		}
	}
	cout<<num<<endl;
	return 0;	
 }

P8840 [传智杯 #4 初赛] 报告赋分

题目描述

花栗鼠科技大学的计算机组成原理实验最终的结课考核方式是提交一份报告。

然而作为任课老师,萝老师不希望大家过于内卷,所以指定了如下规定:

每份报告有一个卷面基础分 a。

在此基础上:

  • 若是报告字数低于 16 页,则扣 10 分,如果分数低于 0 分了,则记作 0 分。

  • 若是报告字数超过 20 页,每超过 1 页扣 1 分 ,直到分数扣到 0 分为止。

现在你知道了一份报告的卷面基础分 a 和它的页数 p ,请你计算这份报告的最终得分。我们保证 1≤a≤100,1≤p≤50.

输入格式

本题有多组数据。

第一行一个整数 T(1≤T≤1000) ,表示数据组数。

接下来 T 行,每行两个整数a,p,意义如题所示。

输出格式

共 T 行,每行一个整数,表示该次询问的数据最终的得分。

输入输出样例

输入 #1

复制代码
2
70 17
80 10

输出 #1

复制代码
70
70

代码

cpp 复制代码
#include<iostream>
 #include<vector>
 using namespace std;
 int main()
 {
 	int T;
 	cin>>T;
 	int arr[T][2]={0};
	vector <int>sore(T);
	 
 	for(int i=0;i<T;i++)
 	{
 		cin>>arr[i][0]>>arr[i][1];
	}
	
	for(int i=0;i<T;i++)
	{
		if(arr[i][1]<16)
			sore[i]=arr[i][0]-10;
		else if(arr[i][1]>=16&&arr[i][1]<=20)
			sore[i]=arr[i][0];
		else 
			sore[i]=arr[i][0]-arr[i][1]+20;
	}
	for(int i=0;i<T;i++)
	{
		if(sore[i]<0)sore[i]=0;
		cout<<sore[i]<<endl;
	}
	
	return 0;
 }

B3913 [语言月赛 202401] 装满葡萄汁的酒杯

题目描述

小 H 有五个酒杯可供选择,它们的容量分别为 100mL、150mL、300mL、400mL和 1000mL。

现在,小 H 想要在这五个酒杯中选择一个来喝葡萄汁。小 H 打算喝 a mL(a≤1000) 的葡萄汁。请问,小 H 至少需要选择多大容量的酒杯,才能装下 a mL 的葡萄汁(葡萄汁不能溢出)。

输入格式

输入一行共一个整数 a,表示小 H 打算喝的葡萄汁的量(以 mL 为单位)。

输出格式

输出一行共一个整数,表示小 H 至少需要选择的酒杯容量(以 mL 为单位),以确保能够装下 a mL 的葡萄汁。

输入输出样例

输入 #150

输出 #1100

输入 #2112

输出 #2150

输入 #3300

输出 #3300

样例解释 #1

如果要装 50 mL 的葡萄汁,那么用 100 mL 的酒杯就可以了。

数据规模与约定

对于 100% 的数据,满足 1≤a≤1000。

代码

cpp 复制代码
 #include<iostream>
 #include<vector>
 using namespace std;
 int main()
 {
 	vector <int>capacity(5);
 	capacity[0]=100;capacity[1]=150;capacity[2]=300;
	capacity[3]=400;capacity[4]=1000;
	int a=0;
	cin>>a;
	if(capacity[0]>=a)cout<<capacity[0]<<endl;
	for(int i=1;i<5;i++)
	{
		if(capacity[i-1]<a&&capacity[i]>=a)
		{
			cout<<capacity[i];
			break;
		}
	}
	return 0;
 }
相关推荐
Miraitowa_cheems2 小时前
LeetCode算法日记 - Day 73: 最小路径和、地下城游戏
数据结构·算法·leetcode·职场和发展·深度优先·动态规划·推荐算法
Swift社区3 小时前
LeetCode 400 - 第 N 位数字
算法·leetcode·职场和发展
007php00710 小时前
Docker 实战经验之关键文件误删恢复指南(一)
jvm·docker·云原生·容器·面试·职场和发展·eureka
莫叫石榴姐13 小时前
字节数开一面
大数据·数据仓库·职场和发展
测试老哥14 小时前
测试用例之正交试验法、功能图法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
微笑尅乐15 小时前
三种思路彻底掌握 BST 判断(递归与迭代全解析)——力扣98.验证二叉搜索树
算法·leetcode·职场和发展
白云千载尽17 小时前
leetcode 2598 执行操作后最大MEX
算法·leetcode·职场和发展
爱吃生蚝的于勒19 小时前
【Linux】零基础学会linux环境基础开发工具使用(yum,vim,makefile,gdb)
linux·服务器·数据结构·c++·蓝桥杯·编辑器·vim
熬了夜的程序员20 小时前
【LeetCode】74. 搜索二维矩阵
线性代数·算法·leetcode·职场和发展·矩阵·深度优先·动态规划