JZOJ 3843. 寻找羔羊(agnus)
题目
分析
- 首先,显然算一个前面*后面
- 但是我们需要去重
- 直接记录上一个的位置
- 少算就OK
代码
1 #include <cmath> 2 #include <cstdio> 3 #include <cstring> 4 #include <iostream> 5 #include <algorithm> 6 #define ll long long 7 using namespace std; 8 int main() 9 { 10 int ans=0,last=-1; 11 string s; 12 cin>>s; 13 for (int i=0;i<=s.size()-4;i++) 14 { 15 if(s[i]=='a'&&s[i+1]=='g'&&s[i+2]=='n'&&s[i+3]=='u'&&s[i+4]=='s') 16 { 17 if (last!=-1) ans+=(i-last)*(s.size()-i-4); 18 else ans+=(i+1)*(s.size()-i-4); 19 last=i; 20 } 21 } 22 cout<<ans; 23 return 0; 24 }
为何要逼自己长大,去闯不该闯的荒唐