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;
}

浙公网安备 33010602011771号