这就有点妙了,rp++,过了一个测试点直接拉评测竟然AC了,妙不可言。
#include <bits/stdc++.h> using namespace std; bool status[101][2001]; int n,a[101],b[101]; char s[101]; int main() { cin>>n; cin>>s; for (int i=1;i<=n;i++) cin>>a[i]>>b[i]; for (int i=1;i<=n;i++) { for (int t=0;t<=2001;t++) { if (t<b[i]) { if (s[i-1]==‘1‘) status[i][t]=1; else status[i][t]=0; } else {//toggle以后 if ((t-b[i]+1) % (2*a[i])>a[i] || (t-b[i]+1) % (2*a[i])==0) { if (s[i-1]==‘1‘) status[i][t]=1; else status[i][t]=0; } else { if (s[i-1]==‘1‘) status[i][t]=0; else status[i][t]=1; } } } } int ans=0,temp=0; for (int t=0;t<=2001;t++) { temp=0; for (int i=1;i<=n;i++) { if (status[i][t]==1) temp++; } if (temp>ans) ans=temp; } cout<<ans; return 0; }
需要动动脑筋算一下,不过时间线模拟器来还是有点烧脑,不过方程推出来就行了。
等会儿我来详细解释一下。
原文:https://www.cnblogs.com/asanagiyantia/p/11521622.html