第四次pta认证P测试

news/2024/11/30 0:44:59/

第一题

试题编号:
试题名称:整数排序
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
老师给定 10 个整数的序列,要求对其重新排序。排序要求:
1.奇数在前,偶数在后;
2.奇数按从大到小排序;
3.偶数按输入顺序逆序排序。
【输入描述】
输入一行,包含 10 个整数,彼此以一个空格分开,每个整数的范围是大于等于 0,小于等于 100。
【输出描述】
按照要求排序后输出一行,包含排序后的 10 个整数,数与数之间以一个空格分开。
【输入样例】
4 7 3 13 11 12 0 47 34 98
【输出样例】
47 13 11 7 3 98 34 0 12 4
【数据规模】

#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;int a[10],b[10];
int m,n,x;
vector<int> v;int main()
{for (int i = 0; i < 10; ++i){cin >> x;if (x%2==0){v.push_back(x);m++;} else {a[n]=x;n++;}}sort(a,a+n,greater<int>());reverse(v.begin(),v.end());for (int i = 0; i < n; ++i){cout << a[i] << " ";}for (int i = 0; i < m; ++i){cout << v[i] << " ";}return 0;
}

第二题

试题编号:
试题名称:志愿者选拔
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
学生志愿者选拔活动正在展开,首先进行笔试,笔试分数达到面试分数线的选手方可进入面试。
面试分数线根据计划录取人数的 150%划定,即如果计划录取 m 名志愿者,则面试分数线为排名
第 m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所
有选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。
【输入描述】
第一行两个整数 n,m(5≤n≤5000,3≤m≤n),中间用一个空格隔开,其中 n 表示报名参加笔试的
选手总数,m 表示计划录取的志愿者人数。输入数据保证 m×150% 向下取整后小于等于 n。
第 二 行 到 第 n+1 行 , 每 行 包 括 两 个 整 数 , 中 间 用 一 个 空 格 隔 开 , 分 别 是 选 手 的 报 名
号 k(1000≤k≤9999)和该选手的笔试成绩 s(1≤s≤100)。数据保证选手的报名号各不相同。
【输出描述】
第一行,有 2 个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的
选手的实际人数。
从第二行开始,每行包含 2 个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和
笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。
【输入样例】
6 3
1100 85
1200 85
1009 90
1004 91
3927 92
8700 84
【输出样例】
85 5
3927 92
1004 91
1009 90
1100 85
1200 85
【样例说明】
m×150%=3×150%=4.5,向下取整后为 4。保证 4 个人进入面试的分数线为 85,但因
为 85 有重分,故最终有 5 个人进入面试。

#include <iostream>
#include <algorithm>
using namespace std;struct student{int id;int score;
};
student s[5001];
int n,m,num,socre_line;bool compare(student a,student b){if (a.score>b.score){return true;}return false;
}int main()
{cin >> n >> m;for (int i = 1; i <= n; ++i){cin >> s[i].id >> s[i].score;}num = m*1.5;sort(s+1,s+n+1,compare);for (int i = num; i <= n ; ++i){if (s[i+1].score==s[i].score){//说明同分,一样录取num++;} else {break;}}cout << s[num].score << " " << num << endl;for (int i = 1; i <= num; ++i){cout <<  s[i].id << " " << s[i].score << endl;}return 0;
}

第三题

试题编号:
试题名称:富有的大壮
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
给在一个神秘的国度,有一种多拿多得的疯狂游戏,某日大壮去参赛,在规定区域内里面有 N(N≤100)
堆金币,第i堆金币的总重量和总价值分别是��,��(1≤ ��,��≤100)。大壮有一个承重量为T(T≤1000)
的背包,但并不一定有办法将全部的金币都装进去。但肯定想装走尽可能多价值的金币。所有金币都
可以随意分割,分割完的金币重量价值比(也就是单位价格)不变。请问大壮最多可以拿走多少价值
的金币?
【输入描述】
第一行两个整数 N,T。
接下来 N 行,每行两个整数��,��。
【输出描述】
一个实数表示答案,输出两位小数。
【输入样例】
4 50
10 60
20 100
30 120
15 45
【输出样例】
240.00
【数据规模】
100%的数据满足 1 ≤ � < 10
2,��,��(1≤ ��,��≤100),1 ≤ � < 10
3。

#include <iostream>
#include <algorithm>
using namespace std;struct gold{int m;int v;
};
gold g[101];int n,t,j;
double total_v;bool compare(gold a,gold b){if ((double)a.v/a.m>(double)b.v/b.m){return true;}return false;
}int main()
{cin >> n >> t;for (int i = 0; i < n; ++i){cin >> g[i].m >> g[i].v;}sort(g,g+n,compare);while(t-g[j].m>0){t-=g[j].m;total_v+=g[j].v;j++;}if (t!=0){//说明还有空间total_v+= (double)g[j].v/g[j].m*t;}t=0;cout << total_v << endl;return 0;
}

第四题

试题编号:
试题名称:
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
小聪最近学会了一个数组魔法,她会在 n×n 二维数组上将一个奇数阶方阵按照顺时针或者逆时针旋
转 90 度。
首先,小聪会把 1 到 n
2 的正整数按照从左往右,从上至下的顺序填入初始的二维数组中,然后她会施
放一些简易的魔法。
小聪现在提供给你她的魔法执行顺序,想让你来告诉她魔法按次执行完毕后的二维数组。
【输入描述】
输第一行两个整数 n,m,表示方阵大小和魔法施放次数。
接下来 m 行,每行 4 个整数 x,y,r,z,表示在这次魔法中,小聪会把以第 x 行第 y 列为中心的 2r+1 阶
方阵按照某种时针方向旋转,其中 z=0 表示顺时针,z=1 表示逆时针。
【输出描述】
输出 n 行,每行 n 个用空格隔开的数,表示最终所得的方阵。 【输入样例】
5 4
2 2 1 0
3 3 1 1
4 4 1 0
3 3 2 1
【输出样例】
5 10 3 18 15
4 19 8 17 20
1 14 23 24 25
6 9 2 7 22
11 12 13 16 21
【数据规模】
对于 50%的数据,满足 r=1
对于 100%的数据 1≤n,m≤100,满足 1≤x−r≤x+r≤n,1≤y−r≤y+r≤n。

第五题

试题编号:
试题名称:购物计划
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
共有 4 种硬币。面值分别为 c1,c2,c3,c4。
某人去商店买东西,去了 n 次,对于每次购买,他带了 di 枚 i 种硬币,想购买 s 的价值的东西。请问
每次有多少种付款方法。
【输入描述】
输入的第一行是五个整数,分别代表 c1,c2,c3,c4,n。
接下来 n 行,每行有五个整数,描述一次购买,分别代表 d1,d2,d3,d4,s。
【输出描述】
对于每次购买,输出一行一个整数代表答案。 【输入样例】
1 2 5 10 2
3 2 3 1 10
1000 2 2 2 900
【输出样例】
4
27
【数据规模】
对于 100% 的数据,保证 1≤ci,di≤10
3,1≤s≤10
4 ,1≤n≤1000。


http://www.ppmy.cn/news/1198326.html

相关文章

Markdown语法教程

Markdown&#xff1a;一种轻量级语言&#xff0c;有简洁的编写方式&#xff0c;能够提高大家的工作效率。 一、标题 1.1 标题 标题的编写格式以#号开始&#xff0c;分别表示h1 ~ h6&#xff0c;注意&#xff1a;# 后面有空格&#xff01; # 一级标题 ## 二级标题 ### 三级标题…

rust入门基础案例:猜数字游戏

案例出处是《Rust权威指南》&#xff0c;书中有更加详细的解释。从这个例子中&#xff0c;我们可以了解到 rust 的两个操作&#xff1a; 如何从控制台读取用户输入rust 如何生成随机数 代码格式化 编译器可在保存时对代码做格式化处理&#xff0c;底层调用 rustfmt 来实现&a…

HDU 2648:Shopping ← STL map

【题目来源】http://acm.hdu.edu.cn/showproblem.php?pid2648【题目描述】 Every girl likes shopping,so does dandelion.Now she finds the shop is increasing the price every day because the Spring Festival is coming .She is fond of a shop which is called "m…

微积分第一章函数与极限

1.正反三角函数的导数 2.常用等价无穷小 3.正反三角函数转化&#xff1a; 1.secx1/cosx 2.cecx1/sinx 3.cotx1/tanx 4.基本数学思想&#xff1a; 1.有限式子与无限式子&#xff1a;在面对无限个式子运算时&#xff0c;大体思路为两个方面&#xff0c;第一个为放缩&#xff…

【Linux系统编程】系统用户和权限的操作

目录 一&#xff0c;Linux的用户 1&#xff0c;用户之间的切换 2&#xff0c;超级用户权限的使用 二&#xff0c;Linux的文件权限 1&#xff0c;文件信息的介绍 2&#xff0c;文件权限的修改 3&#xff0c;用户的修改 3-1&#xff0c;拥有者的更改 3-2&#xff0c;所属…

leetcode 684. 冗余连接

树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1&#xff5e;n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间&#xff0c;且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges &#xff0c;edges[i] …

Redis-命令操作Redis->redis简介,redis的安装(Linux版本windows版本),redis的命令

redis简介redis的安装&#xff08;Linux版本&windows版本&#xff09;redis的命令 1.redis简介 Redis是一个开源&#xff08;BSD许可&#xff09;&#xff0c;内存存储的数据结构服务器&#xff0c;可用作数据库&#xff0c;高速缓存和消息队列代理。 它支持字符串、哈…