专栏文章

Day10模拟赛复盘

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miof0xbk
此快照首次捕获于
2025/12/02 18:08
3 个月前
此快照最后确认于
2025/12/02 18:08
3 个月前
查看原文

freopen出现莫名问题导致挂160+分,警钟长鸣!!!

T1:

T2:

模拟就行了。
CPP
#include<bits/stdc++.h>
#define N 1005
using namespace std;

int n,ans=0;
int fx[4]={0,0,1,-1},fy[4]={1,-1,0,0};
int cnt[N][N];
bool w[N][N];

signed main(){
	
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	memset(w,0,sizeof(w));
	cin>>n;
	for(int i=1;i<=n;i++){
		int x,y;
		cin>>x>>y;
		x++,y++;
		w[x][y]=1;
		if(cnt[x][y]==3) ans++;
		for(int j=0;j<4;j++){
			int X=x+fx[j],Y=y+fy[j];
			cnt[X][Y]++;
			if(w[X][Y] && cnt[X][Y]==3) ans++;
			else if(cnt[X][Y]==4 && w[X][Y]) ans--;
		}
		cout<<ans<<"\n";
	}
	
	return 0;
}

T3:

对原数组二阶差分,对某一项+1或-1就相当于对原数组+或- 一个等差数列,所以求原数组二阶差分的绝对值之和就行了。
代码仍在施工~

T4:

首先,先手一定能吃下N/2+1N/2+1个蛋糕 , 后手只能吃下 N/21N/2-1个蛋糕。因为先手可以从序列中间合并,并且合并的蛋糕一定不让后手吃到。那么前缀加后缀就是后手吃蛋糕的选择。所以后手吃蛋糕肯定贪心找最大的一段前缀 + 后缀。
代码仍在施工~

T5:

找到距离i最近的"bessie" 串,处理出距离i最近的“b”开头的位置。

T6:

堆优化DP。 我们把G看成是+1操作,把H看成是-1操作,做前缀和sum[i]可以想到一个转移,把第二维看成堆丢进堆优化即可,因为这个部分的贡献是1。

评论

0 条评论,欢迎与作者交流。

正在加载评论...