2022.3.16赛后总结
Posted 大闸蟹不要闸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022.3.16赛后总结相关的知识,希望对你有一定的参考价值。
一、今日训练赛题目总结
总体来说,今天的题目偏纯数学题目(恰好戳中我的软肋),自然比赛结果也异常惨烈,不过遗憾的是B题我在最后有了思路,可是我没有把握住最后的时间,强迫自己冷静下来深入思考。
但是也有些意外收获吧。
本次比赛的A题中用到了一个我比较不常用的容器——stack,以前只知道这玩意遵循后进先出,却从来没想过用它来求个数为偶数的回文串(本质上统计的是位置对称且相同的字母对)。另外,第一题虽然走了很多弯路,但是我学会了STL容器中如何删除,里面容器(详情见大佬博文:STL容器中erase的一些注意事项,priority_queue中的一些细节用法)。
二、训练赛习题
1.A题
题意:找出字符串中的所有处于对称位置且相等的字母对数,然后转化为步数,步数为偶数则B win,若步数为奇数 ,则A win。
题解:利用stack的FIFO特性,统计处于对称位置且相等的字母对数
查看代码
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<vector>
#include<cmath>
using namespace std;
#define maxn 100020
#define inf 1e8
// const int N=1e5+10;
stack<char>t;
int main()
int ans=0;
std::ios::sync_with_stdio(false);
std::cin.tie(0);
string s;
cin>>s;
int len=s.size();
for(int i=0;i<len;i++)
if(t.size()==0)
t.push(s[i]);
else
if(s[i]==t.top())
ans++;
t.pop();
else
t.push(s[i]);
if(ans&1) cout<<"Yes";
else
cout<<"No";
return 0;
三、今日结语
今天的每日一题没有完成,明天一定给它补回来。另外,我的复习计划最近恐怕很难搞起来,所以我准备在4.9赛后开启整个复习项目。
忙碌的一天,明天加油!!!
以上是关于2022.3.16赛后总结的主要内容,如果未能解决你的问题,请参考以下文章