UVa 1585 Score --- 水题

  题目大意:给出一个由O和X组成的串(长度为1-80),统计得分。

       每个O的分数为目前连续出现的O的个数,例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3

  解题思路:用一个变量term记录当前O的分数,若出现O,则term+1,若出现X,则term=0;

       再用一个sum记录总和,没次加上term即可

/* UVa 1585 Score --- 水题 */
#include <cstdio>
#include <cstring>

const int maxn = 85;

int main()
{
    int t;
    char s[maxn];

    scanf("%d", &t);
    while (t--){
        scanf("%s", s);
        int n = strlen(s);
        int flag = 0, sum = 0;
        for (int i = 0; i < n; ++i){
            //落连续出现,次O分数+1
            if (s[i] == ‘O‘){
                ++flag;
            }
            else{
                flag = 0;
            }
            sum += flag;    //更新总和
        }
        printf("%d\n", sum);
    }

    return 0;
}

时间: 2024-09-30 09:22:54

UVa 1585 Score --- 水题的相关文章

UVa 489 HangmanJudge --- 水题

UVa 489 题目大意:计算机给定一个单词让你猜,你猜一个字母,若单词中存在你猜测的字母,则会显示出来,否则算出错, 你最多只能出错7次(第6次错还能继续猜,第7次错就算你失败),另注意猜一个已经猜过的单词也算出错, 给定计算机的单词以及猜测序列,判断玩家赢了(You win).输了(You lose).放弃了(You chickened out) /* UVa 489 HangmanJudge --- 水题 */ #include <cstdio> #include <cstring

UVa 1585 - Score

题目:给你一个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()

hdu 5268 ZYB loves Score 水题

ZYB loves Score Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5268 Description One day,ZYB participated in the BestCoder Contest There are four problems. Their scores are 1000,1500,2000,2500 According to the r

UVA 11636-Hello World!(水题,猜结论)

UVA11636-Hello World! Time limit: 1.000 seconds When you ?rst made the computer to print the sentence “Hello World!”, you felt so happy, not knowing how complex and interesting the world of programming and algorithm will turn out to be. Then you did

[ACM] ZOJ 3819 Average Score (水题)

Average Score Time Limit: 2 Seconds      Memory Limit: 65536 KB Bob is a freshman in Marjar University. He is clever and diligent. However, he is not good at math, especially in Mathematical Analysis. After a mid-term exam, Bob was anxious about his

uva 10066 lcs 水题

#include <cstdio> #include <iostream> #include <algorithm> #include <queue> #include <stack> #include <climits> #include <cstring> #include <cmath> #include <map> #include <set> #define INF 10000

UVa 1585 Score(得分)

如何计算你们的得分呢?,如“OOXXOXXOOO”. “O”表示问题的正确答案,“X”表示错误的答案.那么它得分是由它自己和它刚刚以前连续的'O'只有当答案是正确的. 例如,第10个问题的分数是由其自身和它的两个先前连续的“0”获得的3. 因此,“OOXXOXXOOO”的得分是通过“1 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 2 + 3”计算的10.你要编写一个计算测试结果分数的程序.输入 输入第一行一个整数T,表示由T个测试用例组成. 每个测试用例以包含由'O'和'X'组成

UVa 12342 Tax Calculator (水题,纳税)

今天在uva看到一个水题,分享一下. 题意:制定纳税的总额,有几个要求,如果第一个180000,不纳,下一个300000,纳10%,再一个400000,纳15%,再一个300000,纳20%,以后的纳25%,如果总额大于0但是不过2000,纳2000, 如果总金额不是整数,纳离它最近的且比它大的整数. 析:没什么可说的,算一下就行,也没坑. 代码如下: #include <bits/stdc++.h> using namespace std; const int s[] = {1180000,

UVa 1586 Molar mass --- 水题

UVa 1586 题目大意:给出一种物质的分子式(不带括号),求分子量.本题中分子式只包含4种原子,分别为C.H.O.N, 原子量分别为12.01,1.008,16.00,14.01 解题思路:先实现一个从字符型的数到整型的数的转换函数,再将输入的串从头到尾扫描,遇到字母,则进一步扫描后面的数字的区间, 再调用函数进行转换,再乘以其的原子质量,最后累加到sum中即可. /* UVa 1586 Molar mass --- 水题 */ #include <cstdio> #include <