WAharo 2011-02-08 03:48:00
点我顶贴
收藏
删除
#include"stdio.h"
main()
{
int a[10001]={0},i,j,h,r,m,n,o=0;
scanf("%d%d",&m,&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&h,&r);
for(j=h-1;j<r;j++)
a[j]=1;
}
for(i=0;i<m;i++)
if(a[i]==0)
o++;
printf("%d",o);
getchar();
getchar();
}
为何用样例输出,得到297???
#1 897357142@2010-06-11 05:20:00
14909
回复
删除
附13解答
兄台请注意这一句:
即0,1,2,……,L,都种有一棵树。
上述程序以1为0,以2为1……是这个意思吧?
那么这位将0置于何处?按照你的思路,0为-1,而这在C中应该是看不到的,所以你忽视的0的存在,结果应为297+1(即加上“0”);
切记,还是劝告你以a[i]表示点i上有无树木。
#2 xiangweilai@2011-02-08 03:48:00
20174
回复
删除
ac
#include <cstdlib>
#include <iostream>
using namespace std;
int s[10050];
int main(int argc, char *argv[])
{
int l,n,i,j,sum=0;
cin >> l >> n;
int a[n],b[n];
for (i=1;i<=n;i++)
{
cin >> a[i] >> b[i];
for (j=a[i];j<=b[i];j++)
{
s[j]=1;
}
}
for (i=0;i<=l;i++)
{
if (s[i]==0) sum++;
}
cout << sum << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
hash 哈希