题目:https://ac.nowcoder.com/acm/contest/25625/E
#include#define int long long using namespace std; const int maxn=1e6+5; const int mod=1e9+7; int t,n,cnt; char a[maxn]; vector v; int sum[maxn]; signed main() { cin>>t; while(t--) { memset(sum,0,sizeof(sum)); v.clear(); cin>>n; cin>>a+1; cnt=0; for(int i=1;i<=n;i++) { sum[i]=sum[i-1]; if(a[i]=='1') { cnt++; sum[i]=sum[i]+i; v.push_back(i); } } if(cnt==1){ cout<<0<<"n"; continue; } cnt-=1; int f=0; int ans=0; sum[0]%=mod; sum[1]%=mod; for(int i=0;i 没想通为什么能这么求解,要是有大佬看到,麻烦给我解答一下,谢谢啦
学习笔记欢迎分享,转载请注明来源:内存溢出
评论列表(0条)