#1940: 請高手們幫我看看為啥第1組測資會錯我用dev c++


leopan0922 (zz)

學校 : 臺北市立成功高級中學
編號 : 6612
來源 : [140.113.225.106]
最後登入時間 :
2016-08-15 15:44:07
b139. NOIP2005 2.校门外的树 -- NOIP2005普及組 | From: [219.70.176.73] | 發表日期 : 2009-05-10 16:18

#include<iostream>
using namespace std;
int main()

 
    long long int a,b;
    while(cin>>a>>b)
    {
        int t[a],e=0;
        for(int i=0;i<a+1;i++)
        {t[i]=1;}
        for(int i=b;i>0;i--)
        {int c,d;
         cin>>c>>d;
         for(int j=c-1;j<=d-1;j++)
         {t[j]=t[j]-1;}
        }
        for(int i=0;i<a+1;i++)
        {
            if(t[i]==1)
            e=e+1;
        }
        cout<<e<<endl;      
       
    }   
   return 0;
#1941: Re:請高手們幫我看看為啥第1組測資會錯我用dev c++


leopan0922 (zz)

學校 : 臺北市立成功高級中學
編號 : 6612
來源 : [140.113.225.106]
最後登入時間 :
2016-08-15 15:44:07
b139. NOIP2005 2.校门外的树 -- NOIP2005普及組 | From: [219.70.176.73] | 發表日期 : 2009-05-10 16:21

我的想法是先把第0到第a個位置都種上1棵樹設他為1
把範圍內的樹都砍掉所以-1
最後只有=1ㄉ地方算有樹這樣重複的地方都考慮進去了
但是為啥第1組測資錯而其他都對勒
 
#1944: Re:請高手們幫我看看為啥第1組測資會錯我用dev c++


bleed1979 (Bleed)

學校 : 不指定學校
編號 : 1489
來源 : [203.204.21.29]
最後登入時間 :
2021-05-02 22:12:13
b139. NOIP2005 2.校门外的树 -- NOIP2005普及組 | From: [118.168.135.155] | 發表日期 : 2009-05-10 18:36

#include
using namespace std;
int main()

 
    long long int a,b;
    while(cin>>a>>b)
    {
        int t[a],e=0;
        for(int i=0;i
        {t[i]=1;}
        for(int i=b;i>0;i--)
        {int c,d;
         cin>>c>>d;
         for(int j=c-1;j<=d-1;j++)
         {t[j]=t[j]-1;}
        }
        for(int i=0;i
        {
            if(t[i]==1)
            e=e+1;
        }
        cout<<
       
    }   
   return 0;
}


改2個地方

int t[a + 1]

for(int j=c;j<=d;j++)

這樣就AC了

 

 
#1979: Re:請高手們幫我看看為啥第1組測資會錯我用dev c++


leopan0922 (zz)

學校 : 臺北市立成功高級中學
編號 : 6612
來源 : [140.113.225.106]
最後登入時間 :
2016-08-15 15:44:07
b139. NOIP2005 2.校门外的树 -- NOIP2005普及組 | From: [219.70.176.73] | 發表日期 : 2009-05-16 21:03

#include
using namespace std;
int main()

 
    long long int a,b;
    while(cin>>a>>b)
    {
        int t[a],e=0;
        for(int i=0;i
        {t[i]=1;}
        for(int i=b;i>0;i--)
        {int c,d;
         cin>>c>>d;
         for(int j=c-1;j<=d-1;j++)
         {t[j]=t[j]-1;}
        }
        for(int i=0;i
        {
            if(t[i]==1)
            e=e+1;
        }
        cout<<
       
    }   
   return 0;
}


改2個地方

int t[a + 1]

for(int j=c;j<=d;j++)

這樣就AC了

 

原來如此~~謝啦!!
 
#8072: Re:請高手們幫我看看為啥第1組測資會錯我用dev c++


a450 (要学会宽容)

學校 : 福建省福州第十九中学
編號 : 33926
來源 : [118.189.34.85]
最後登入時間 :
2016-04-05 21:29:33
b139. NOIP2005 2.校门外的树 -- NOIP2005普及組 | From: [110.84.214.239] | 發表日期 : 2013-08-10 21:27

#include
using namespace std;
int main()

 
    long long int a,b;
    while(cin>>a>>b)
    {
        int t[a],e=0;
        for(int i=0;i
        {t[i]=1;}
        for(int i=b;i>0;i--)
        {int c,d;
         cin>>c>>d;
         for(int j=c-1;j<=d-1;j++)
         {t[j]=t[j]-1;}
        }
        for(int i=0;i
        {
            if(t[i]==1)
            e=e+1;
        }
        cout<<
       
    }   
   return 0;
}


改2個地方

int t[a + 1]

for(int j=c;j<=d;j++)

這樣就AC了

 这越界么



 
ZeroJudge Forum