520争霸赛 c++/c语言题解

编程入门 行业动态 更新时间:2024-10-04 19:27:16

520<a href=https://www.elefans.com/category/jswz/34/1264583.html style=争霸赛 c++/c语言题解"/>

520争霸赛 c++/c语言题解

7-1 520表白

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

输入格式:

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

输入样例:

233

输出样例:

233! 520!
#include<bits/stdc++.h>
using namespace std;int main(){int N;cin >> N;printf("%d! 520!",N);return 0;
} 

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!。

#include<bits/stdc++.h>
using namespace std;int main(){int N,M,K;cin >> N >> M >> K;if(M == N*K){printf("zheng hao mei ren %d!",K);}else if(M > N*K){printf("hai sheng %d!",M-N*K);}else{printf("hai cha %d!",N*K-M);}return 0;
} 

7-3 约会App

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

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

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

随后一行给出一个正整数 N≤100,随后 N 行,每行给出一位系统中登记的约会对象的信息,格式如下:性别 年龄 身高
这里保证年龄和身高(包括上、下限)均为不超过 200 的正整数,同行数字间以 1 个空格分隔。

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

#include<bits/stdc++.h>
using namespace std;int main(){int sex;int a,b,c,d;cin >> sex >> a >> b >> c >> d;int N;cin >> N;sex = 1-sex;for(int i=1;i<=N;i++){int s,age,h;cin >> s >> age >> h;if(sex == s && age>=a && age<=b && h>=c && h<=d){printf("%d %d %d\n",s,age,h);}}return 0;
} 

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 是给定的上界。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main(){int n,m;cin >> n >> m;bool f = false;for(int x=1;x<=m;x+=2){for(int y=x+2;y<=m;y+=2){for(int z=y+2;z<=m;z+=2){LL ans1 = 3LL*x*y*z;LL ans2 = 1LL*n*(y*z+z*x+x*y);if(ans1 == ans2){cout << x << " " << y << " " << z << endl;f = true;break; }}if(f){break;}}if(f){break;}}if(!f){printf("No solution in (%d, %d].",3,m);}return 0;
} 

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 为“我侬数
 

#include<bits/stdc++.h>
using namespace std;
int hashT1[15];
int hashT2[15];int main(){string s1,s2;cin >> s1 >> s2;int len1 = s1.size();int len2 = s2.size();bool f1 = false;bool f2 = false;for(int i=0;i<len1;i++){if(f1 == false && s1[i] == '0'){continue;}else{f1 = true;hashT1[s1[i]-'0']++;}}for(int i=0;i<len2;i++){if(f2 == false && s2[i] == '0'){continue;}else{f2 = true;hashT1[s2[i]-'0']++;}}while(1){memset(hashT2,0,sizeof(hashT2));cin >> s1 >> s2;len1 = s1.size();len2 = s2.size();if(len1 == 1 && len2 == 1 && s1[0] == '0' && s2[0] == '0'){break;}f1 = false;f2 = false;for(int i=0;i<len1;i++){if(f1 == false && s1[i] == '0'){continue;}else{f1 = true;hashT2[s1[i]-'0']++;}}for(int i=0;i<len2;i++){if(f2 == false && s2[i] == '0'){continue;}else{f2 = true;hashT2[s2[i]-'0']++;}}bool f = false;for(int i=0;i<=9;i++){if(hashT1[i] == hashT2[i]){continue;}else{f = true;break;}}if(f){printf("No\n");}else{printf("Yes\n");}}return 0;
} 

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。
 

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3+5;
int a[maxn][maxn];
int main(){int n,m;cin >> n >> m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin >> a[i][j];}}int r,c;cin >> r >> c;int res;cin >> res;int maxm = 1e7;for(int i=1;i<=m;i++){if(a[r][i]!=-1 && abs(a[r][i]-res)<maxm){maxm = abs(a[r][i]-res);}}for(int i=1;i<=n;i++){if(a[i][c]!=-1 && abs(a[i][c]-res)<maxm){maxm = abs(a[i][c]-res);}}for(int i=1;i<=m;i++){if(a[r][i]!=-1 && abs(a[r][i]-res) == maxm){printf("(%d:%d)\n",r,i);}}for(int i=1;i<=n;i++){if(a[i][c]!=-1 && i!=r && abs(a[i][c]-res) == maxm){printf("(%d:%d)\n",i,c);}}return 0;
} 

更多推荐

520争霸赛 c++/c语言题解

本文发布于:2024-03-13 18:12:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1734533.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:争霸赛   题解   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!