模拟题
1.CF Square Filling
这道题我最开始想用前缀和来判断结果是我想复杂了,前缀和的判断会有计算过的位置被重新当作起点导致判断无法得出,其实这道题很简单,只需要判断所有的可以改变的位置,然后对比就可以了
2.PTA天梯赛第一场4小孩子才做选择,大人全都要
错的原因是理解错题意了,题目的意思是要是铲屎官的决定让小汪赚了才笑脸意思就是两个都必须是狗粮,不然的话就会比之前的少,就哭脸。
3.PTA天梯赛第一场8机工士姆斯塔迪奥
最开始的想法是对的,错的地方是没有考虑到boss会重复攻击同一个地方,会导致重复减。
4.Spring天梯赛第八题vivo50!
这道题错的原因是一个排名没有写好,这个排名的要求是分数相同的排名一样,而输出排名小于等于k的所有同学的信息,我最开始写的循环的终止条件一直没有写好,加上两个浮点数的大小比较也写的差值太小了,导致并列的获奖最后一名名一直写成k+1,然后再最后还会导致多输出一名。这种结构体的题就是代码比较大,得写的仔细才不会出错。
5.2026Spring天梯赛3第五题出生年
这道题我最开始一直在想一年如果没有四位数应该怎么输入,不知道为什么最近总是容易想到用字符串的来输入,然后就把代码写的很复杂,我最开始把年份的计入弄成一个数组来记录,然后做一个每个数字的表,用这个数组来对这个数字表修改,然后用里面存在的数字个数来判断。这确实是暴力的做法,但是却可以在实现上修改,只需要对这个年份不断的除10,然后取他的个位数,再用这个个位数对表进行修改就可以了。然后应该是状态不好的原因结构也写得很差。最后这道题我感觉应该是可以不用暴力的做法也能写的,只是我还没想到。
6.成信大天体团队赛第八题非凡者评级
链接https://hydro.ac/d/CUIT_DSA/p/877?tid=69be7e9787636554247dc0a0
一个很大很恶心的模拟,错的原因是模拟太大了,思路很乱。冷静下来慢慢做就可以做出来。
7.帅到没朋友
错误原因:
题目的逻辑有个是,如果朋友圈的人数是1,那么这个人可能只是在这个圈子没有朋友,而在其他的圈子有朋友。而这道题选择set的结构是比用map的结构更要方便的。
代码:
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
map<string,int>mp;
vector<string>a;
map<string,int>already;
while(n--){
int k;
cin>>k;
if(k==1){
string s;
cin>>s;
a.push_back(s);
already[s]++;
}else{
while(k--){
string s;
cin>>s;
mp[s]++;
}
}
}
int m;
cin>>m;
int len=mp.size();
map<string,int>vis;
while(m--){
string s;
cin>>s;
if(mp.count(s)==0&&vis.count(s)==0&&!already.count(s)){
a.push_back(s);
vis[s]++;
}
}
if(a.size()==0)
cout<<"No one is handsome"<<endl;
else{
for(int i=0;i<a.size();i++){
cout<<a[i];
if(i!=a.size()-1)
cout<<' ';
}
cout<<endl;
}
}
浙公网安备 33010602011771号