求助!!U249608
  • 板块学术版
  • 楼主jianye
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/10/3 17:05
  • 上次更新2023/10/27 09:01:39
查看原帖
求助!!U249608
477033
jianye楼主2022/10/3 17:05
#include<bits/stdc++.h> 
using namespace std;
int a[100010];
int main()
{
//	freopen("tie.in","r",stdin);
//	freopen("tie.out","w",stdout);
	
	int n,m;
	cin>>n>>m; 
	for(int i=1;i<=n;i++)
	{
	    cin>>a[i];
	}
	if(m!=1)
	{
    	
    	for(int i=1;i<=m;i++)
    	{
    		int x,y;
    		cin>>x>>y;
    		a[x]=y;
    		int ans=0;
    		for(int j=1;j<=n;j++)
    		{		
    			for(int k=j;k<=n;k++)
    			{
    				for(int q=j;q<=k;q++)
    				{
    					if(a[q]!=a[q+1])ans++;
    					if(q==k&&a[q]==a[q+1])ans++;
    				}
    			}
    		}
    		cout<<ans<<endl;
    	} 
	}
	else
	{

    	int x,y;
		cin>>x>>y;
		long long ans=(x-1)*(n-x+1);
		long long o=n*(n+1)/2;
		
		if(a[x]==a[x-1]&&y!=a[x-1]&&y!=a[x+1])
		{
			o+=ans;
		}
		if(a[x]==a[x+1]&&y!=a[x+1]&&y!=a[x-1])
		{
			o+=ans;
		}
		if(a[x]!=a[x-1]&&y==a[x-1]&&a[x]!=a[x+1])o-=ans;
		if(a[x]!=a[x+1]&&y==a[x+1]&&a[x]!=a[x+1])o-=ans;
		cout<<o<<endl;
	}
	return 0;
}

为什么过不了70分啊

2022/10/3 17:05
加载中...