1 条题解
-
0
题解
题目意思很显然,就是读入字符串后,利用循环进行一次遍历,每次循环用分支结构统计wa、Wa以及WA的次数。其中,对于WA统计时,需要乘以基数后进行累加。
考虑以下极端情况:
对于长度为1e6的字符串,假设均由" WAWAWAWA··· "组成,那么最后的期待值为:,运用等差数列求和公式后可以发现,结果超过了int整数的范围,因此,我们将结果保存为long long类型就没有问题了。
程序
#include <bits/stdc++.h> #define ll long long using namespace std; int main () { string s; cin>>s; int len=s.size(); ll ans=0;//long long类型 int base=1;//次数累计 for(int i=0;i<len-1;i++)//循环到倒数第二位 { if(s[i]=='w'&&s[i+1]=='a')//wa情况,期望值+1 ans+=1; else if(s[i]=='W') { if(s[i+1]=='a')//Wa情况,期望值+3 ans+=3; else if(s[i+1]=='A')//WA情况,期望值+5*次数,次数+1 ans+=5*(base++); } } cout<<ans; return 0; }
- 1
信息
- ID
- 363
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 50
- 已通过
- 24
- 上传者