⭐L1-086 斯德哥尔摩火车上的题 (15分)
上图是新浪微博上的一则趣闻,是瑞典斯德哥尔摩火车上的一道题,看上去是段伪代码:
s = ‘’
a = ‘1112031584’
for (i = 1; i < length(a); i++) {
if (a[i] % 2 == a[i-1] % 2) {
s += max(a[i], a[i-1])
}
}
goto_url(‘www.multisoft.se/’ + s)
其中字符串的 + 操作是连接两个字符串的意思。所以这道题其实是让大家访问网站 www.multisoft.se/112358(注意:比赛中千万不要访问这个网址!!!)。
当然,能通过上述算法得到 112358 的原始字符串 a 是不唯一的。本题就请你判断,两个给定的原始字符串,能否通过上述算法得到相同的输出?
输入格式:
输入为两行仅由数字组成的非空字符串,长度均不超过 10
4
,以回车结束。
输出格式:
对两个字符串分别采用上述斯德哥尔摩火车上的算法进行处理。如果两个结果是一样的,则在一行中输出那个结果;否则分别输出各自对应的处理结果,每个占一行。题目保证输出结果不为空。
输入样例 1:
1112031584
011102315849
输出样例 1:
112358
输入样例 2:
111203158412334
12341112031584
输出样例 2:
1123583
112358
⭐Code:
AC代码:
#include<bits/stdc++.h> using namespace std; int main() { string s1,s2; string a="",b=""; int i; cin>>s1>>s2; for(i=1;i<s1.size();i++) { if(s1[i]%2==s1[i-1]%2) { a+=max(s1[i],s1[i-1]); } } for(i=1;i<s2.size();i++) { if(s2[i]%2==s2[i-1]%2) { b+=max(s2[i],s2[i-1]); } } if(a==b) cout<<a; else cout<<a<<endl<<b; }
⭐L1-087 机工士姆斯塔迪奥 (20分)
在 MMORPG《最终幻想14》的副本“乐欲之所瓯博讷修道院”里,BOSS 机工士姆斯塔迪奥将会接受玩家的挑战。
你需要处理这个副本其中的一个机制:N×M 大小的地图被拆分为了 N×M 个 1×1 的格子,BOSS 会选择若干行或/及若干列释放技能,玩家不能站在释放技能的方格上,否则就会被击中而失败。
给定 BOSS 所有释放技能的行或列信息,请你计算出最后有多少个格子是安全的。
输入格式:
输入第一行是三个整数 N,M,Q (1≤N×M≤10
5
,0≤Q≤1000),表示地图为 N 行 M 列大小以及选择的行/列数量。
接下来 Q 行,每行两个数 T
i
,C
i
,其中 T
i
=0 表示 BOSS 选择的是一整行,T
i
=1 表示选择的是一整列,C
i
为选择的行号/列号。行和列的编号均从 1 开始。
输出格式:
输出一个数,表示安全格子的数量。
输入样例:
5 5 3
0 2
0 4
1 3
输出样例:
12
⭐Code:
AC代码:
#include<bits/stdc++.h> using namespace std; int main(){ int N,M,Q; cin>>N>>M>>Q; int sum=0; int a[N][M]; for(int i=0;i<N;i++) { for(int j=0;j<M;j++) { a[i][j]=1; } } for(int j=1;j<=Q;j++) { int T,C; cin>>T>>C; if(T) { for(int i=0;i<N;i++) { a[i][C-1]=0; } } else { for(int i=0;i<M;i++) { a[C-1][i]=0; } } } for(int i=0;i<N;i++) { for(int j=0;j<M;j++) { if(a[i][j]==1) sum++; } } cout<<sum; }
⭐L1-088 静静的推荐 (20分)
天梯赛结束后,某企业的人力资源部希望组委会能推荐一批优秀的学生,这个整理推荐名单的任务就由静静姐负责。企业接受推荐的流程是这样的:
只考虑得分不低于 175 分的学生;
一共接受 K 批次的推荐名单;
同一批推荐名单上的学生的成绩原则上应严格递增;
如果有的学生天梯赛成绩虽然与前一个人相同,但其参加过 PAT 考试,且成绩达到了该企业的面试分数线,则也可以接受。
给定全体参赛学生的成绩和他们的 PAT 考试成绩,请你帮静静姐算一算,她最多能向企业推荐多少学生?
输入格式:
输入第一行给出 3 个正整数:N(≤10
5
)为参赛学生人数,K(≤5×10
3
)为企业接受的推荐批次,S(≤100)为该企业的 PAT 面试分数线。
随后 N 行,每行给出两个分数,依次为一位学生的天梯赛分数(最高分 290)和 PAT 分数(最高分 100)。
输出格式:
在一行中输出静静姐最多能向企业推荐的学生人数。
输入样例:
10 2 90
203 0
169 91
175 88
175 0
175 90
189 0
189 0
189 95
189 89
256 100
输出样例:
8
样例解释:
第一批可以选择 175、189、203、256 这四个分数的学生各一名,此外 175 分 PAT 分数达到 90 分的学生和 189 分 PAT 分数达到 95 分的学生可以额外进入名单。第二批就只剩下 175、189 两个分数的学生各一名可以进入名单了。最终一共 8 人进入推荐名单
⭐Code:
AC代码:
#include<bits/stdc++.h> using namespace std; int a[300]={0}; int main() { int n,k,g; int sum=0; cin>>n>>k>>g; while(n--) { int x,y; cin>>x>>y; if(x>=175) { if(y>=g) sum++; else if(a[x]<k) { a[x]++; sum++; } } } cout<<sum; }
⭐L2二阶题(目前还没有上传哈!!敬请期待!!)
⭐L3三阶题(目前也还没有上传哈!!敬请期待!!)
⭐写在最后
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
万事无往显,很多事物都不会一直停留在一个样子,它会发生改变,所以很多时候我们留恋的事物只是因为我们的执念,我们自己把它定格在了那一瞬间,但其实它可能不似当年模样只是由于我们当前内心的想法导致的,但如果我们不去真正了解此刻当下它的想法,只停留在我们的当前的认知当中,这也是一种偏见。所以需要以行见知,因为实践才是检验真理的唯一标准!
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟