2.23小记

我不到我今天干啥了。

上午昏厥,下午搬砖,晚上对着前年省选乱胡。


P8217 [THUPC2022 初赛] 数正方体

Zpair:那比赛这种题就交给你啦

害怕.jpg

我会让团队吃一车罚时.jpg

做法倒是挺显著的,就是对每一个层都找露在这层的有多少块就行。因为是凸的,就是从左上到右下高度单调不升,所以记录一下是否已经到了这块,如果从一个位置开始不合法,那这一行之后都不合法了。

代码显然

#include <bits/stdc++.h>
using namespace std;
string s[1002],ss;
int r,c,X,Y,Z;bool vis[300][300];
int main()
{
	//freopen("p.in","r",stdin);
	scanf("%d%d",&r,&c);
	getchar();
	for(int i=1;i<=r;i++)
	{
		getline(cin,ss);	
		s[i]="."; s[i]+=ss;		
//		cout<<ss<<endl;
	}
	Y=1;
	while(s[1][Y]=='.') Y++;
	Y=(Y-1)/2; 
	X=(c-Y*2-1)/4;
	Z=(r-Y*2-1)/3;
	//cout<<X<<" "<<Y<<" "<<Z<<endl;
	int tmp=0,ans=0;
	for(int z=1;z<=Z;z++) 
	{
		int dx=(z-1)*3+1;
		int dy=Y*2+1;
		for(int x=1;x<=Y;x++)
		{
			for(int y=1;y<=X;y++)
			{
				if(vis[x][y])  continue;			
				int nx=dx+(x-1)*2;
				int ny=dy-(x-1)*2+(y-1)*4;
				if(s[nx][ny]=='+'&&s[nx][ny+4]=='+'&&s[nx+2][ny-2]=='+'&&s[nx+2][ny+2]=='+')
				{
	//				printf("%d %d %d : %d %d\n",z,x,y,nx,ny);
					vis[x][y]=1,tmp++;
				}
				else break;
			}
		}	
	//printf("%d\n",tmp);
		ans+=tmp;
	}
	printf("%d\n",ans);
}

CF914E Palindromes in a Tree

未知原因跳到这个题做一下。点分治板子。注意 totsiz 的维护。

我在口胡一个就是如果是严格回文串就是哈希找,不过感觉挺麻烦。等有时间实现一个((


下午给机房搬砖。

然后那个 2021 省选 D2 T2 再说。


我今天听 Zpair 讲了一个有点恐怖的故事。我有点害怕。我最近因为【数据删除】加上这个故事的缘故,在机房里的感觉有了点微妙的变化。我认为这样不好。不过显然我不会在机房打开游戏什么的,所以完全没有担心的必要。但是我经常在机房水群

感觉变化也是因为有点上火或者休息不好。最近太阳穴有时候就像被猛敲一下的疼。

posted @ 2023-02-23 23:06  cc0000  阅读(28)  评论(0)    收藏  举报