求助 100 -> 0 原因
查看原帖
求助 100 -> 0 原因
754021
fish_love_cat楼主2024/6/12 22:02
#include<bits/stdc++.h>
#define int long long
using namespace std;
int f[2][2000010];
int mini,maxx;
signed main(){
    int n;
    cin>>n;
	memset(f,-1145141919,sizeof f);//看这里的数字
	f[0][1000005]=0;
	for(int i=1,s=0,c=0;i<=n;i++,s=0,c=0){
		string x;
		cin>>x;
		for(int j=0;j<x.size();j++)
		s+=(x[j]=='s'),c+=(x[j]=='c');
		int v=s,w=s-c;
		mini=min(mini,mini+w),maxx=max(maxx,maxx+w);
		for(int j=mini;j<=maxx;j++)
		f[i%2][j+1000005]=
		max({f[i%2][j+1000005],
		    f[(i+1)%2][j+1000005],
		    f[(i+1)%2][j-w+1000005]+v});
	}
	cout<<f[n%2][1000005];
	return 0;
}

https://www.luogu.com.cn/record/161983224


#include<bits/stdc++.h>
#define int long long
using namespace std;
int f[2][2000010];
int mini,maxx;
signed main(){
    int n;
    cin>>n;
	memset(f,-114514191,sizeof f);//再看这里的数字
	f[0][1000005]=0;
	for(int i=1,s=0,c=0;i<=n;i++,s=0,c=0){
		string x;
		cin>>x;
		for(int j=0;j<x.size();j++)
		s+=(x[j]=='s'),c+=(x[j]=='c');
		int v=s,w=s-c;
		mini=min(mini,mini+w),maxx=max(maxx,maxx+w);
		for(int j=mini;j<=maxx;j++)
		f[i%2][j+1000005]=
		max({f[i%2][j+1000005],
		    f[(i+1)%2][j+1000005],
		    f[(i+1)%2][j-w+1000005]+v});
	}
	cout<<f[n%2][1000005];
	return 0;
}

https://www.luogu.com.cn/record/161983554


啊?

2024/6/12 22:02
加载中...