前言

单身狗不就来刷刷题咯,今年比较简单


文章目录

  • 前言
  • 7-1 520表白
  • 7-2 分糖豆
  • 7-3 约会App
  • 7-4 关于奇数的等式
  • 7-5 我侬数
  • 7-6 非诚勿扰
  • 7-7 新式六合彩
  • 7-8 521序列

7-1 520表白

在 520 这个日子里,拼题 A 请你实现一个小功能,帮助用户向自己喜欢的数字表白。

输入格式:
输入在一行中给出一个不超过 1000 的正整数 N,是用户最喜欢的一个数字。

输出格式:
在一行中按以下格式输出对 N 的表白:

N! 520!
输入样例:
233
输出样例:
233! 520!

#include <bits/stdc++.h>
using namespace std;
int main() {int n;scanf("%d", &n);printf("%d! 520!", n);
}

7-2 分糖豆

N 个宝宝分 M 颗 m&m 糖豆,如果每人分 K 个,够不够分呀?

输入格式:
输入在一行中给出 3 个正整数,分别是 N(不超过 100),是宝宝们的总人数;M(不超过 1000),是糖豆的总颗数;K(不超过 10),是要分给每个宝宝的糖豆数。

输出格式:
如果每人 K 个正好能够分完,输出 zheng hao mei ren K!;如果分完了还剩 X 颗糖豆,则输出 hai sheng X!;如果不够分的,还差 X 颗糖豆,则输出 hai cha X!。

输入样例 1:
10 50 5
输出样例 1:
zheng hao mei ren 5!
输入样例 2:
12 30 2
输出样例 2:
hai sheng 6!
输入样例 3:
15 40 3
输出样例 3:
hai cha 5!

#include <bits/stdc++.h>
using namespace std;
int main() {int n, m, k;scanf("%d%d%d", &n,&m,&k);if(n * k == m)printf("zheng hao mei ren %d!", k);else if(n * k > m)printf("hai cha %d!",  n * k - m);else printf("hai sheng %d!", m - n * k);
}

7-3 约会App

在 520 这个日子里,没有比开发一个约会 App 更合适做的事情了。这个软件的需求很简单,用户输入自己的性别、想要约会的异性的年龄范围 [a,b]、身高范围 [c,d],你要帮用户筛选出系统中满足其约会条件的所有异性。注意:性别、年龄、身高的要求必须全都符合要求才可以。

输入格式:
输入第一行首先给出一个用户自己输入的信息,格式如下:

性别 a b c d
其中 性别 为 0 表示女性,1 表示男性,是该用户自己的性别;后面四个数字依次表示该用户想要约会的异性的年龄下限、年龄上限、身高下限、身高上限 —— 注意这里的范围都是闭区间。

随后一行给出一个正整数 N≤100,随后 N 行,每行给出一位系统中登记的约会对象的信息,格式如下:

性别 年龄 身高
这里保证年龄和身高(包括上、下限)均为不超过 200 的正整数,同行数字间以 1 个空格分隔。

输出格式:
按照输入的顺序,输出每个满足用户约会条件的约会对象的信息,输出格式与输入格式相同。题目保证至少有一个人可以被输出。

输入样例:
1 20 25 160 175
6
0 28 165
1 21 170
0 25 160
0 22 180
1 20 175
0 20 175
输出样例:
0 25 160
0 20 175

#include <bits/stdc++.h>
using namespace std;
int main() {int n, sex, a1, a2, b1, b2;cin >> sex >> a1 >> a2 >> b1 >> b2;cin >> n;while(n--) {int x, a, b;cin >> x >> a >> b;if(x != sex && a >= a1 && a <= a2 && b >= b1 && b <= b2)printf("%d %d %d\n", x, a, b);}
}

7-4 关于奇数的等式

给定任一正奇数 n>3 和一个解的上界 m>3,求三个正奇数 x、y、z,满足 0<x<y<z≤m 且有等式 3/n=1/x+1/y+1/z。

输入格式:
输入给出正奇数 3<n<400 和解的上界 m≤1000。

输出格式:
在一行中输出给定范围内最小的一组解 x y z(即存在多组解时取最小的 x,并列时取最小的 y)。数字间以 1 个空格分隔,行首尾不得有多余空格。

如果给定范围内无解,则输出 No solution in (3, m]. 其中 m 是给定的上界。

输入样例 1:
27 500
输出样例 1:
11 55 495
输入样例 2:
27 50
输出样例 2:
No solution in (3, 50].

#include <bits/stdc++.h>
using namespace std;
int main() {int n,m;scanf("%d%d", &n, &m);for(int i = 3; i < m; i += 2) {for(int j = i + 2; j < m; j += 2) {for(int k = j + 2; k <= m; k += 2) {if(3*i*j*k == n*(i*j+j*k+i*k)) {printf("%d %d %d\n", i, j, k);return 0;}   }}  }printf("No solution in (3, %d].", m);
}

7-5 我侬数

元初的中国书画大家赵孟頫的妻子管道升曾经写过一首脍炙人口的《我侬词》,词中道:“把一块泥,捻一个你,塑一个我。将咱们两个一齐打破,用水调和。再捏一个你,再塑一个我。我泥中有你,你泥中有我。”
给定一对正整数 A 和 B,将它们的各位数字收集到一起,再重新分成两个数 A′和 B′,我们称这样的 A′和 B′互为基于 A 和 B 的“我侬数“。本题就请你判断任一对数字是否是基于给定 A 和 B 的“我侬数“。

输入格式:
输入首先在第一行中给出两个不超过 104位的正整数 A 和 B,为“我侬数“的基础数。随后每行给出一对不超过 2×104位的正整数 A ′和 B ′。数字间以 1 个空格分隔。
输入以一对 0 结束,这一对 0 不要处理。题目保证至少有一对需要判定的数字。

输出格式:
对每一对 A ′和 B ′,判断其是否是基于给定 A 和 B 的“我侬数“。如果是,则在一行中输出 Yes,否则输出 No。

注意:所有数字均不考虑前导 0。例如 A=101,B=2021,则我们不能判定 012 和 0121 为“我侬数“。

输入样例:
521212577999 21100008482136
521212577999 21100008482136
00210908482136 512121257799
123456789012597890 11100222
786238645254 19024781758903
21100008482136 521212577999
90 52121257792110008482136
0 0
输出样例:
Yes
No
Yes
No
Yes
No

#include <bits/stdc++.h>
using namespace std;
void f(int a[], string s) {for(int i = s.find_first_not_of("0"); i < s.length(); ++i)a[s[i]-'0']++;
}
int main(){ int a[10] = {0};string s1, s2;cin >> s1 >> s2;f(a, s1); f(a, s2);while(cin >> s1 >> s2) {if(s1 == "0" && s2 == "0") break;int b[10] = {0}, flag = 1;f(b, s1); f(b, s2);for(int i = 0; i < 10; ++i) {if(a[i] != b[i])flag = 0;}if(flag)printf("Yes\n");elseprintf("No\n");}
}

7-6 非诚勿扰

“非诚勿扰”是江苏台一款非常受欢迎的相亲节目,台上的女嘉宾们可以从出场的男嘉宾中选择自己喜欢的牵手离开。问题是怎样才能选到最适合自己的男嘉宾呢?这是个概率问题。

解决这个问题有一种随机算法:假设女嘉宾知道自己最多能在台上录几期节目,也就知道自己最多能见到 N 位男嘉宾,那么她可以选择一个随机数 R(<N),对她见到的前 R 位男嘉宾,一个都不牵,只是以他们中最合适的那位作为一个标准,从第 R+1 位男嘉宾开始,只要遇到一个比标准更合适的,就决定牵手。理论上可以证明,当 R=N/e (其中 e 是自然常数,约等于 2.718)时,这样做能牵手最合适的男嘉宾的概率最高。

本题就请你根据男嘉宾的出场顺序,预测一下女嘉宾会牵手哪一位。

输入格式:
输入首先在第一行中给出正整数 N(3≤N≤104),即男嘉宾的数量。第二行给出 N 个互不相同的正整数,第 i 个数字表示第 i 位男嘉宾在女嘉宾心目中的得分。数字均不超过 105,之间以空格分隔。

输出格式:
女嘉宾将以 R=⌊N/e⌋ 为线,采用题面中描述的算法选择牵手的男嘉宾。这里我们取 e=2.718。请在一行中输出她牵手的男嘉宾的序号和真正最适合她的男嘉宾的序号(从 1 开始),数字间以 1 个空格分隔。

如果她一直没有遇到比标准更合适的人,就会独自离开,此时对应的序号输出为 0。

输入样例 1:
10
23 84 15 29 17 56 85 40 91 28
输出样例 1:
7 9
输入样例 2:
10
56 85 17 23 84 15 29 40 31 28
输出样例 2:
0 2

#include <bits/stdc++.h>
using namespace std;
int main() {int n,x;scanf("%d", &n);int r = n/2.718, max1 = 0, max2 = 0, l1 = 0, l2 = 0, flag = 1;for(int i = 1; i <= n; ++i) {scanf("%d", &x);if(i <= r) max1 = max(max1, x);else if(x > max1 && flag){l1 = i;flag = 0;}if(x > max2) {max2 = x;l2 = i;}}printf("%d %d\n", l1, l2);
}

7-7 新式六合彩

新式六合彩跟传统六合彩其实没有半点关系,只是姥姥为了出题杜撰出来的一种玩法——每位玩家可以下注一个六位数,如果跟开出来的幸运六位数最接近就可以获奖(所谓最接近,是指该数字与幸运数之差的绝对值最小)。

但规则如果这么简单就没什么可玩的了…… 我们把规则搞复杂一点:首先创建一个有 n×m 个格子的矩阵,保证格子总数不小于玩家总数,可以把所有玩家下注的数字随机放进格子里,每个格子最多放一个。然后我们随机生成一个幸运行号 r (1≤r≤n)和幸运列号 c (1≤c≤m),再随机生成一个幸运六位数。中奖者是第 r 行和第 c 列的所有六位数中与幸运数最接近的那个数字的主人。

本题就请你写个程序实现这个抽奖功能。

输入格式:
输入第一行给出 2 个正整数 n 和 m(1≤n,m≤1000),随后 n 行,每行给出 m 个数字,对应该位置格子里玩家下注的数字。如果这个格子是空的,就用 −1 表示。最后一行给出幸运行号 r、幸运列号 c 和幸运六位数。同行数字间以空格分隔。

注意:行号从上向下递增,列号从左向右递增,均从 1 开始计数。

输出格式:
按照 (行号:列号) 的格式输出中奖者的位置。如果中奖者不唯一,则按照首先在幸运行中从左到右,然后在幸运列中从上到下的顺序输出,每行输出一位中奖者的位置。注意同一个位置只能输出一次。题目保证至少存在一位中奖者。

输入样例:
4 5
233333 000001 -1 888888 666666
001010 369624 777888 -1 999999
480735 100000 591846 369623 123123
456456 591846 000000 501000 233333
2 3 480735
输出样例:
(2:2)
(3:3)

#include <bits/stdc++.h>
using namespace std;
int a[1500][1500];
struct node{int x, y;
};
vector<node> v;
int main() {int n, m, r, c, k, dis = 1e9;scanf("%d%d", &n, &m);for(int i = 1; i <= n; ++i)for(int j = 1; j <= m; ++j)scanf("%d", &a[i][j]);scanf("%d%d%d", &r, &c,&k);for(int i = 1; i <= m; ++i) {if(a[r][i] == -1) continue;if(abs(a[r][i] - k) < dis) {dis = abs(a[r][i] - k);v.clear();v.push_back({r, i});} else if(abs(a[r][i]-k) == dis) {v.push_back({r, i});}}for(int i = 1; i <= n; ++i) {if(a[i][c] == -1 || i == r) continue;if(abs(a[i][c] - k) < dis) {dis = abs(a[i][c] - k);v.clear();v.push_back({i, c});} else if(abs(a[i][c] - k) == dis) {v.push_back({i, c});}}for(int i = 0; i < v.size(); ++i)printf("(%d:%d)\n", v[i].x, v[i].y);
}

7-8 521序列

所谓“521 序列”是指将一个原始整数序列 S 中的每个数字分别乘以 5、2、1 后形成的序列,例如 S= { 5, 2, 1 } 时,其对应的 521 序列就是 { 25, 10, 5, 10, 4, 2, 5, 2, 1 } —— 这里我们不要求这个序列一定具有某种顺序,即 521 序列中元素的顺序是可以打乱的。给定 S 后,计算其对应的 521 序列是很简单的。但给定一个 521 序列,恢复其对应的原始序列 S 就略微复杂一点了。本题就请你恢复任意给定的 521 序列的原始序列。

输入格式:
输入第一行给出正整数 N(<105),为 521 序列的长度。随后一行给出 N 个整数,即给定的 521 序列。所有数字的绝对值不超过 105,以空格分隔。

输出格式:
在一行中按照非递增序输出 521 序列对应的原始序列。数字间以 1 个空格分隔,行首尾不得有多余空格。

题目保证原始序列是存在的。

输入样例:
12
1 -5 10 -1 2 4 5 -2 5 25 10 2
输出样例:
5 2 1 -1

#include <bits/stdc++.h>
using namespace std;
multimap<int, int> m;
vector<int> v;
int main(){int n,x;scanf("%d",&n);for(int i = 0; i < n; ++i){scanf("%d",&x);m.insert({x, 1});}while(m.size()) {x = m.begin()->first;if(x < 0) x /= 5;m.erase(m.find(x));m.erase(m.find(x*2));m.erase(m.find(x*5));    v.push_back(x);}sort(v.begin(), v.end(), greater<int>());for(int i = 0; i < v.size(); ++i) cout << v[i] << " \n"[i == v.size() - 1];
}

520 钻石争霸赛 2022(满分)相关推荐

  1. 520 钻石争霸赛 2023

    活动链接 520 钻石争霸赛 2023 520-1 520无尽爱 520-2 心动指数 520-3 不要怕,爱! 520-4 天生一对 520-5 翻倒数 520-6 情侣数 520-7 撒狗粮 52 ...

  2. 520 钻石争霸赛 2021 PTA 1-6题

    520 钻石争霸赛 2021 PTA 7-1 自动编程 (5 分) 7-2 加油冲鸭 (10 分) 7-3 520的表白 (10 分) 7-4 奇葩楼层 (15 分) 7-5 大勾股定理 (15 分) ...

  3. PAT 520 钻石争霸赛 2021 118分题解(满分120)

    序: 为了锻炼自己的编程水平,参加了此次520的编程比赛,因此没有好好准备520礼物(大哭.png),下次520练习赛再也不参加了,还是npy更重要.但不过这次既然参加了,就总结一下吧.这次总分118 ...

  4. 520 钻石争霸赛 7-8浪漫侧影(二叉树的遍历)

    "侧影"就是从左侧或者右侧去观察物体所看到的内容.例如上图中男生的侧影是从他右侧看过去的样子,叫"右视图":女生的侧影是从她左侧看过去的样子,叫"左视 ...

  5. 520 钻石争霸赛 题解

    说好的钻石难度,结果本人菜的一地..只有88分.... 文章目录 7-1 考试周 7-2 真的恭喜你 7-3 平均成绩 7-4 古风A+B 难度开始上升 7-5 猜近似数字 7-6 随机输一次 7-7 ...

  6. 【PTA】520 钻石争霸赛 2021,119分

    序 大概写了30mins多点,后来有事情去了就溜了没打完 勾股定理最后一个点WA了少了1分,错误数据是1e4大概暴力T了,不过没时间改了 7-1 自动编程 (5 分) 7-1 自动编程 (5 分) 输 ...

  7. 520 钻石争霸赛 2021 7-8 浪漫侧影 (25 分)

    题目描述 "侧影"就是从左侧或者右侧去观察物体所看到的内容.例如上图中男生的侧影是从他右侧看过去的样子,叫"右视图":女生的侧影是从她左侧看过去的样子,叫&qu ...

  8. PTA 520 钻石争霸赛 2021

    有一道题没来得及做,目前的排名是57,不知道后面会被挤到哪里. 文章目录 7-1 自动编程 (5 分) 7-2 加油冲鸭 (10 分) 7-3 520的表白 (10 分) 7-4 奇葩楼层 (15 分 ...

  9. 【拼题A】 520 钻石争霸赛 2023 题解

    520-1 520无尽爱 分数 5 作者 陈越 单位 浙江大学 <I Love You 1000 Times>是 The Platters 于 2019 年演唱的歌曲.在 520 这个日子 ...

最新文章

  1. CSDN湘苗培优|保持热情,告别平庸
  2. sed当中使用变量替换以及执行外部命令
  3. Qt:Qt使用WM_COPYDATA消息进行进程通信
  4. ssh 连接超时 不断开
  5. apache-ab并发负载压力测试(转)
  6. SQL ALTER TABLE 语句在项目中的使用
  7. 用Word2007写Blog
  8. 全国市场调查大赛经验分享(二)
  9. 关于DM MPP的搭建
  10. Python 错误重试库 tenacity retry
  11. 线性代数(预备知识)
  12. mysql的连接配置时区语句
  13. 使用百度翻译api支持中转英,中简转中繁等等
  14. ARM服务器搭建 我的世界(MC) 1.18.2 版私服教程
  15. Linux系统中errno对应的中文意思 errno.h
  16. jsch sftp工具包连接未释放
  17. silverlight技术
  18. mysql 密码问题_MySQL密码问题
  19. Coursera | Introduction to Data Analytics(IBM) | Quiz答案
  20. Unity -- 按钮的使用

热门文章

  1. java版mc哪个版本好玩_我的世界哪个版本好玩(我的世界各版本区别介绍)
  2. 用python编写蝴蝶曲线的动画
  3. Windows Installer打包
  4. 软件设计全程演练与最佳实践
  5. Mysql导出数据库脚本
  6. css如何使字上下居中,css如何让字上下居中?
  7. K8S之Flannel的vxlan网络模式初步源码解析
  8. 与 python 中的 os.system(cmd) 返回值与linux 命令返回值对应关系
  9. 2021年9月16日
  10. 免费PDF转Word?有这几个网站就够了。