记参加第四届CCCC团体程序设计天梯赛

本来不想记的,因为打的太差了,感觉拖了队伍和学校的后腿。(第三行是我)
记参加第四届CCCC团体程序设计天梯赛_第1张图片

但还是记一下,时刻提醒自己,学如逆水行舟,不进则退。

第一次参加天梯赛,赛点在中南大学新校区,上午十点半左右到达,登记好后拍了合照,然后参加开幕式,开完后在休息室休息了一会儿,然后工作人员贴心地把饭送到了休息室,伙食挺好(真•蹭饭),12:50左右去找考场。

13:00开考,做L1-1的时候就没看全题目提了三次才过,把我给紧张的,幸好做L1-2到L1-7还是挺顺利的,基本一遍过,然后出去上了个厕所,将近有一个小时了吧(做题速度有点慢了),做L1-8的时候看到题目就暗道不妙,字符串大模拟,瞎搞一通交了一次出现了格式错误,然后前前后后调了这个题半个多小时,还是有格式错误,也不知道哪儿多了空格或者其他什么的,时间不多了我就去看L2了,L2-1似曾相识,增添了些条件,花了二十分钟左右过了(做题速度有点慢了),然后翻L2-2,L2-3,L2-4感觉L2-4好做点,结果。。信心满满的交上去只过了三个点,然后就一直在那改来改去,时间越来越少,每次交的还是不对,我就知道我凉了༼༎ຶᴗ༎ຶ༽。

出考场,问了一下Oj,他(第一行)说L2-3挺好写的,我那个后悔。

所幸最后我们二队在几位大佬的带领下还是拿到了省铜(第7),一队还是强(第2)。 
记参加第四届CCCC团体程序设计天梯赛_第2张图片

晚上在知乎上刷到了这个问题,那些都是什么神仙啊。

希望能赶快水完模型机(这学期一本书能分成三门课讲,让我大开眼界,三倍的任务三倍的快乐,呵呵),希望能认真学习算法,希望能慢慢进步。

-----------------------------------------
2019-4-8更新
今天做了一下L2-4,我知道当时怎么错了,stack没有判断empty吧或者把没有把empty判断放在前面,其实是个很简单的题,我就是个zz!!

//CSDN博客:https://blog.csdn.net/qq_40889820
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define random(a,b) (rand()%(b-a+1)+a)
#define ull unsigned long long
#define e 2.71828182
#define Pi 3.141592654
using namespace std;
const int MAXN=1e3+10;
stack s;
int a[MAXN];
int N,M,K;
bool solve()
{
	while(!s.empty()) s.pop();
	int cur=1;//当前要摆放的编号 
	for(int i=1;i<=N;++i)
	{
		if(a[i]==cur) 
		{
			cur++;
			while(!s.empty()&&s.top()==cur) 
			//这里太坑了,一开始把s.top()==cur放在前面第一个样例就卡出去了
			//下次不要写成while(s.top()==cur&&!s.empty())了,当s是空栈的时候就凉凉!! 
			{
				s.pop();
				cur++;
			}
		}
		else 
		{
			s.push(a[i]);
			if(s.size()>M) 	
			return false;		
		}
		
	}

	if(cur==N+1) return true;
	else return false;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>N>>M>>K;
	while(K--)
	{
		for(int i=1;i<=N;++i) cin>>a[i];
		if(solve()) cout<<"YES\n";
		else cout<<"NO\n";
	}
}

你可能感兴趣的:(∨∨所思所想)