题目:给你一个X和O组成的串,每个O有一个分,为他前面连续的O个数+1,求所有O的分数和。
分析:dp,简单题。lis类似物,每个位记录连续的个数即可。
说明:快500了(⊙_⊙)。
#include <algorithm> #include <iostream> #include <cstdlib> #include <cstdio> using namespace std; char str[81]; int score[81]; int main() { int n; scanf("%d",&n); while (n --) { scanf("%s",str); score[0] = (str[0] == 'O'); for (int i = 1 ; str[i] ; ++ i) { score[i] = score[i-1]+1; if (str[i] == 'X') score[i] = 0; } int sum = 0; for (int i = 0 ; str[i] ; ++ i) sum += score[i]; printf("%d\n",sum); } return 0; }
时间: 2024-10-13 06:10:11