cf 363A B C

A水题 ~~  注意0输出

/*************************************************************************
    > Author: xlc2845       > Mail: xlc2845@gmail.com
    > Created Time: 2013年11月10日 星期日 19时35分23秒
 ************************************************************************/

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <set>
#include <cstdlib>
#define N 35
#define M 1000000007

using namespace std;
char a[15][10] =
{
    "O-|-OOOO",
    "O-|O-OOO",
    "O-|OO-OO",
    "O-|OOO-O",
    "O-|OOOO-",
    "-O|-OOOO",
    "-O|O-OOO",
    "-O|OO-OO",
    "-O|OOO-O",
    "-O|OOOO-"
};
int main()
{
    int n;
    scanf("%d",&n);
    if(n == 0)
        puts(a[0]);
    while(n)
    {
        puts(a[n%10]);
        n /= 10;
    }
    return 0;
}

B 用一个sum数组就可以了

/*************************************************************************
    > Author: xlc2845       > Mail: xlc2845@gmail.com
    > Created Time: 2013年11月10日 星期日 19时35分23秒
 ************************************************************************/

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <set>
#include <cstdlib>
#define N 150010
#define M 1000000007

using namespace std;
int high[N] = {};
int main()
{
    int n, k, _min = M, _mini = 0;
    scanf("%d%d", &n, &k);
    for(int i = 1; i <= n; i++)
    {
        scanf("%d",&high[i]);
        high[i] += high[i-1];
    }
    for(int i = 0; i+k <= n; i++)
    {
        int sum = high[k+i] - high[i];
        if(sum < _min)
        {
            _min = sum;
            _mini = i+1;
        }
    }
    printf("%d\n", _mini);
    return 0;
}

C 题 注意好细节

/*************************************************************************
    > Author: xlc2845       > Mail: xlc2845@gmail.com
    > Created Time: 2013年11月10日 星期日 19时35分23秒
 ************************************************************************/

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#include <set>
#include <cstdlib>
#define N 250010
#define M 1000000007

using namespace std;
char str[N];
bool flag[N];
int main()
{
    memset(flag, true, sizeof(flag));
    int ok = 0;
    bool ca = false;
    char now;
    gets(str);
    int len = strlen(str);
    for(int i = 0; i < len; i++)
    {
        if(!ok)
        {
            ok = 1;
            now = str[i];
        }
        else if(ok == 1)
        {
            if(str[i] == now && !ca)
            {
                ok++;
                ca = true;
            }
            else if(str[i] == now && ca)
            {
                flag[i] = false;
            }
            else
            {
                now = str[i];
                ca = false;
            }
        }
        else if(ok == 2)
        {
            if(str[i] == now)
                flag[i] = false;
            else
            {
                now = str[i];
                ok = 1;
            }
        }
    }
    for(int i = 0; i < len; i++)
    {
        if(flag[i]) putchar(str[i]);
    }
    return 0;
}


posted @ 2013-11-11 20:13  xlc2845  阅读(185)  评论(0)    收藏  举报