社区讨论

75pts RE on #7,8,11,19,20 求救

P11361[NOIP2024] 编辑字符串参与者 2已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@mid4h744
此快照首次捕获于
2025/11/24 20:27
3 个月前
此快照最后确认于
2025/11/24 21:01
3 个月前
查看原帖
本地测了 #7 是过了的,洛谷上就 RE 了,不知道为什么。
CPP
#include<bits/stdc++.h>
using namespace std;
template <typename T> inline T in(){
	T x=0,f=1;int c=getchar();
	while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}
	while(c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
	return x*f;
}
template <typename T> inline void out(T x){
	if(x<0) putchar('-'),x=-x;
	if(x<10) putchar(x^48);
	else out<T>(x/10),putchar((x%10)^48);
}
int Tex=in<int>(),n,ans,num,NUM,con0[100005],con1[100005],CON0[100005],CON1[100005],g[100005],G[100005];
bool s[100005],S[100005],t[100005],T[100005];
int main(){
	while(Tex--){
		n=in<int>(),ans=t[0]=T[0]=0;
		for(int i=1;i<=n;i++) s[i]=getchar()-48;getchar();
		for(int i=1;i<=n;i++) S[i]=getchar()-48;getchar();
		for(int i=1;i<=n;i++) t[i]=getchar()-48;getchar();
		for(int i=1;i<=n;i++) T[i]=getchar()-48;getchar();
		for(int i=1;i<=n;i++){
            if(!(t[i]&&t[i-1])) num++;
            if(!(T[i]&&T[i-1])) NUM++;
            g[i]=num,G[i]=NUM;
            if(s[i]) con1[num]++;
            else con0[num]++;
            if(S[i]) CON1[NUM]++;
            else CON0[NUM]++;
        }
        for(int i=1;i<=n;i++)
            if(con1[g[i]]&&CON1[G[i]]) ans++,con1[g[i]]--,CON1[G[i]]--;
            else if(con0[g[i]]&&CON0[G[i]]) ans++,con0[g[i]]--,CON0[G[i]]--;
            else if(con1[g[i]]) con1[g[i]]--,CON0[G[i]]--;
            else con0[g[i]]--,CON1[G[i]]--;
        out<int>(ans),putchar('\n');
	}
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...