1017 A Mathematical Curiosity
水水水,报Presentation Error,貌似是哪里空格和换行不对
#pragma warning(disable:4996)
#include<cstdio>
int main()
{
int N;
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
int n, m, val = 1;
while (scanf("%d%d", &n, &m))
{
if (!n && !m)
{
printf("\n");
break;
}
int sum = 0;
for (int a = 2; a < n; a++)
{
for (int b = 1; b < a; b++)
{
sum += !((a * a + b * b + m) % (a * b));
}
}
printf("Case %d: %d\n", val++, sum);
}
}
}
1020 Encoding
水水水
#pragma warning(disable:4996)
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int val, i = 0;
scanf("%d", &val);
while (i++ < val)
{
char a[10005];
scanf("%s", a);
int len = strlen(a);
int sum = 0;
char chr = a[0];
for (int j = 1; j <= len; j++)
{
if (chr == a[j])
sum++;
else
{
if(sum)
printf("%d%c", sum+1, chr);
else
printf("%c", chr);
chr = a[j];
sum = 0;
}
}
printf("\n");
}
}
1021 Fibonacci Again
注意不要写while(scanf(...))
,改成while(scanf(...)!=EOF)
以及 &3 比 %4 的执行速度快很多
#pragma warning(disable:4996)
#include<cstdio>
int main()
{
int val;
while (scanf("%d",&val)!=EOF)
{
if ((val & 3) == 2)
printf("yes\n");
else
printf("no\n");
}
}
1022 Train Problem I
建立一个<输入字符,输入顺序>的map来处理,不过貌似输入会有重复所以报错了
#pragma warning(disable:4996)
#include<cstdio>
#include<map>
int val;
char in[10], out[10];
int ord[10];
std::map<char, int> rail;
bool test()
{
for (int i = 0; i < val; i++)
{
rail[in[i]] = i;
}
ord[0] = rail[out[0]];
int mini = ord[0];
for (int i = 0; i < val - 1; i++)
{
if (mini - rail[out[i + 1]] > 1)
{
printf("No.\n");
return false;
}
ord[i+1] = rail[out[i+1]];
if (mini > ord[i + 1])
mini = ord[i + 1];
}
printf("Yes.\n");
return true;
}
void prt()
{
int maxi = -1;
for (int i = 0; i < val; i++)
{
int t = ord[i] - maxi;
if (t > 0)
{
while (t--)
printf("in\n");
printf("out\n");
maxi = ord[i];
}
else
printf("out\n");
}
}
int main()
{
while (scanf("%d%s%s", &val, in, out) != EOF)
{
if (test())
prt();
printf("FINISH\n");
}
}