RE求助
  • 板块灌水区
  • 楼主Fu_Tao
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/10/2 16:57
  • 上次更新2024/10/2 19:31:46
查看原帖
RE求助
169736
Fu_Tao楼主2024/10/2 16:57

其他OJ上的题,莫名RE(文件读入读出),不知道为什么,谁能帮忙看看有没有基础性的错误

#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <string>
#include <bitset>
#include <cstdio>
#include <vector>
#include <ctime>
#include <cmath>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
using namespace std;
typedef long long ll;//unsigned
const ll nex[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
const ll inf=0x7fffffff;
const ll mod=1e9+7;//记得改scanf 
ll T,n,cnt[1000001],f[1000001],pre[1000001],t,ans;
string s[2]; 
int main(){
	freopen("A.in","r",stdin);
	freopen("A.out","w",stdout);
	cin>>T;
	while(T--){
		for(int i=0;i<=n;i++){
			f[i]=cnt[i]=pre[i]=0;
		}
		t=ans=0;
		cin>>n;
		cin>>s[0];s[0]=" "+s[0];
		for(int i=1;i<s[0].size();i++){
			s[1][i]=(s[0][i]=='0'?'1':'0');
		}
		for(int i=1;i<=n;i++){
			cnt[i]=cnt[i-1]+(s[t][i]=='0'?1:0);
			f[i]+=(s[t][i]=='0'?f[i-1]+2:f[i-1]+1);
			if(s[t][i]=='1')t++;
			t%=2;
			ans+=f[i];
			pre[i]=pre[i-1]+f[i];
		}
		for(int i=1;i<n;i++){
			ans+=(pre[n]-pre[i])-(n-i)*f[i]-(n-i)*(i>=1?cnt[i-1]:0)-(n-i)*(i>=2?cnt[i-2]:0)+(n-i)*(s[0][i+1]=='0');
//			for(int j=i+1;j<=n;j++){
//				ans+=f[j]-f[i]-(i>=1?cnt[i-1]:0)-(i>=2?cnt[i-2]:0)+(s[0][i+1]=='0');
//			}
		}
		cout<<ans<<endl;
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
} 
2024/10/2 16:57
加载中...