题解:AT_abc174_d [ABC174D] Alter Altar
zhang_yang_alan · · 题解
1.理解题意
题目告诉我们,白石头不能放在红石头左边,也就是只 能放在右边。WW....RR。
这题也就转化成了求把所有红石头,放到左半部分的最小步骤。而我们只需用红石总数减去已经在左边部分的红石头数量就可以了。
2.思路说明
第一行输入
第二行输入
循环得到 R 的个数。
循环得到已经到位的 R 的个数。
两者相减。
输出差值。
(详见代码)
3.代码实现
#include<bits/stdc++.h>
using namespace std;
#define int long long
char a[200010];
int n,ans=0,sum,ss;
signed main(){
cin >> n >> a;
for(int i=0;i<n;i++){
if (a[i]=='R') sum++;//红石头总数
}
for(int i=0;i<sum;i++){//遍历要放红石头的格子
if (a[i]=='R') ss++;//已经到位置的红石头总数
}
ans=sum-ss;//两者相减
cout << ans;//输出答案
return 0;
}
码风不是很好看,希望对读者您有所帮助!