- #include#include#include#include#include using namespace std;
- typedef long long ll;
- const int N = 3e5 + 5;
- inline int read() {
- char c = getchar();
- int x = 0,
- f = 1;
- while (c < '0' || c > '9') {
- if (c == ' - ') f = -1;
- c = getchar();
- }
- while (c >= '0' && c <= '9') {
- x = x * 10 + c - '0';
- c = getchar();
- }
- return x * f;
- }
- int n;
- char s[N];
- double f[N],
- d[N];
- int main() {
- freopen("in", "r", stdin);
- n = read();
- scanf("%s", s + 1);
- for (int i = 1; i <= n; i++) {
- if (s[i] == 'o') d[i] = d[i - 1] + 1,
- f[i] = f[i - 1] + 2 * d[i] - 1;
- else if (s[i] == 'x') d[i] = 0,
- f[i] = f[i - 1];
- else d[i] = (d[i - 1] + 1) * 0.5,
- f[i] = f[i - 1] + (2 * d[i - 1] + 1) * 0.5;
- }
- printf("%.4lf", f[n]);
- }
来源: http://www.bubuko.com/infodetail-1970044.html