NC15703. Xieldy And His Password
描述
输入描述
若干组数据,每组数据仅一行01串s,表示random出来的的串,|s|<=1e6。
输出描述
输出口令的方案数。
示例1
输入:
101010
输出:
5
C++(clang++ 11.0.1) 解法, 执行用时: 100ms, 内存消耗: 2464K, 提交时间: 2022-10-11 19:03:25
#include<bits/stdc++.h> using namespace std; int sum,n; string s; long long mp[3]; long long ans; int main() { while(cin>>s){ mp[0]=mp[1]=mp[2]=sum=ans=0; n=s.size(); mp[0]++; for(int i=0;i<n;i++){ int k=(i&1)?1:2; sum=(sum+k*(s[i]-'0'))%3; ans+=mp[sum]; mp[sum]++; } cout<<ans<<endl; } }
pypy3 解法, 执行用时: 673ms, 内存消耗: 206472K, 提交时间: 2022-03-31 22:06:38
while 1: try: s = list(input()) ans = 0 c0=0 c1=0 c2=0 for i in range(len(s)): if s[i]=='0': c0+=1 c1,c2=c2,c1 elif s[i]=='1': c0,c1=c1,c0 c1+=1 ans+=c0 print(ans) except: exit()