2010-1108
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
用bool数组x和y来记录纸带信息,有问题标为1,否则为0
然后for i:=1->L 判断x[i] xor y[i]==1的最大长度
代码如下:
{{{
#!python
#include<cstdio>
#include<memory.h>
using namespace std;
#define MaxN 11111111
bool f[MaxN];
bool g[MaxN];
int main()
{
long i;
long j;
long k;
long L;
long n1;
long n2;
long ss;
long tt;
long max;
long curr;
while (scanf("%ld %ld %ld", &L, &n1, &n2) != EOF)
{
memset(f, 0, sizeof(f));
memset(g, 0, sizeof(f));
for (k=0; k<n1; ++k)
{
scanf("%ld %ld", &ss, &tt);
for (i=ss; i<=tt; ++i)
{
if (f[i] == 0)
f[i] = 1;
}
}
for (k=0; k<n2; ++k)
{
scanf("%ld %ld", &ss, &tt);
for (i=ss; i<=tt; ++i)
{
if (g[i] == 0)
g[i] = 1;
}
}
max = 0;
curr = 0;
for (k=0; k<=L; ++k)
{
if (f[k]^g[k] == 1)
{
++curr;
}
else
{
if (curr > max)max = curr;
curr = 0;
}
}
printf("%ld\n", max);
}
return 0;
}
}}}
[by delta_4d]
用bool数组x和y来记录纸带信息,有问题标为1,否则为0
然后for i:=1->L 判断x[i] xor y[i]==1的最大长度
代码如下:
#include<cstdio>
#include<memory.h>
using namespace std;
#define MaxN 11111111
bool f[MaxN];
bool g[MaxN];
int main()
{
long i;
long j;
long k;
long L;
long n1;
long n2;
long ss;
long tt;
long max;
long curr;
while (scanf("%ld %ld %ld", &L, &n1, &n2) != EOF)
{
memset(f, 0, sizeof(f));
memset(g, 0, sizeof(f));
for (k=0; k<n1; ++k)
{
scanf("%ld %ld", &ss, &tt);
for (i=ss; i<=tt; ++i)
{
if (f[i] == 0)
f[i] = 1;
}
}
for (k=0; k<n2; ++k)
{
scanf("%ld %ld", &ss, &tt);
for (i=ss; i<=tt; ++i)
{
if (g[i] == 0)
g[i] = 1;
}
}
max = 0;
curr = 0;
for (k=0; k<=L; ++k)
{
if (f[k]^g[k] == 1)
{
++curr;
}
else
{
if (curr > max)max = curr;
curr = 0;
}
}
printf("%ld\n", max);
}
return 0;
}
[by delta_4d]