谁给我hack数据,我给他敲两年木鱼
  • 板块灌水区
  • 楼主zhujiangyue
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/14 19:59
  • 上次更新2023/11/2 13:48:50
查看原帖
谁给我hack数据,我给他敲两年木鱼
751907
zhujiangyue楼主2023/10/14 19:59

洛谷P5640,50'暴力

#include <bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int a[N],b[7005];
int n,m,flag1=3500,flag2=3500,ans,dp[2][3339],flag[3339];
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin >> n >> m;
	for(int i=1;i<=n;i++)
	cin >> a[i];
	for(int i=0;i<=3338;i++)
	{
		dp[0][i]=1;
	}
	memset(flag,0,sizeof(flag));
	for(int i=1;i<=m;i++)
	{
		int opt,ch;
		cin >> opt >> ch;
		ans=0;
		if(opt==0)
		{
			for(int x=i;x>=1;x--)
			{
				if(dp[0][x-1]==1)
				{
					if(ch!=a[x])
					{
						ans++;
						dp[1][x]=1;
					}
					else dp[1][x]==0;
				}
				else
				{
					dp[1][x]==0;
				}
			}
			for(int i=0;i<=3338;i++)
			{
				dp[0][i]=dp[1][i];
			}
			dp[0][0]=1;
			b[flag2++]=ch;
			flag[i]=ans;
		}
		else
		{
			ans=flag[i-1];
			b[flag1--]=ch;
			int temp=i,flag3=1;
			for(int x=1,y=flag1+1;x<=temp;x++,y++)
			{
				if(b[y]==a[x])flag3=0;
			}
			if(flag3)
			{
				dp[0][i]=1;
				ans++;
			}
			else
			{
				dp[0][i]=0;
			}
			flag[i]=ans;
		}
		cout << ans << endl;
	}
	return 0;
}
2023/10/14 19:59
加载中...