csp2023 第二轮游记

发布时间 2023-12-10 16:57:42作者: cq_irritater

csp2023 第二轮游记

Day -1

就在自己的学校 (而且甚至是我上信息技术课的教室) ,所以试机了和没试机没有任何区别 qwq

Day 0

正序开题,发现 T1 好像是 \(5\)for 循环,然后觉得不对就没写(哭

T2 放一下赛场代码吧 (码风奇怪请勿介意)

// game
// code by:fish_szyawa
// time:2023/10/21
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 8010, maxn = 2e6 + 10;

int n, ans;
int f[MAXN][MAXN], v[MAXN][MAXN];

char a[maxn];

int main()
{
	scanf("%d", &n);
	scanf("%s", a + 1);
	for (int k = 2; k <= n; k += 2)
	{
		for (int i = 1; i <= n - k + 1; i++)
		{
			if (k == 2)
			{
				if (a[i] == a[i + 1])
				{
					f[i][i + 1] = 1;
					v[i][++v[i][0]] = i + 1;
					ans++;
				}
				continue;
			}
			int l = i, r = i + k - 1;
			if (a[1] == a[r] && f[l + 1][r - 1])
			{
				f[l][r] = 1;
				v[i][++v[i][0]] = r;
				ans++;
			}
			else if (a[r - 1] == a[r] && f[l][r - 2])
			{
				f[l][r] = 1;
				v[i][++v[i][0]] = r;
				ans++;
			}
			else if (a[l] == a[l + 1] && f[l + 2][r])
			{
				f[l][r] = 1;
				v[i][++v[i][0]] = r;
				ans++;
			}
			else
			{
				int nn = v[1][0];
				for (int i = 1; i <= nn; i++)
				{
					if (f[v[l][i] + 1][r])
					{
						f[l][r] = 1;
						v[l][++v[l][0]] = r;
						ans++;
						break;
					}
				}
			}
		}
	}
	printf("%d", ans);
	return 0;
}

T3、T4 不会 (谁能想到 T3 大模拟???)

啥都不说了,-s 预估 \(10\) 分,彻底 AFO。

Day 10

出分数线,emm,退役了。

Day 23

出奖项,三等无缘。