#30041: C++,只有80分,另外我覺得範例答案怪怪的


e002933 (徐MAN)

學校 : 不指定學校
編號 : 158405
來源 : [111.71.113.217]
最後登入時間 :
2023-11-18 16:56:51
b139. NOIP2005 2.校门外的树 -- NOIP2005普及組 | From: [118.150.201.99] | 發表日期 : 2022-04-23 23:57

470-471 砍了2棵

100到300砍了201棵 (300-100+1)

不是應該剩297棵嗎?

 

另外想請教板友們下面的C++程式碼,前二組資測答案錯,但後面都對,請問問題出在哪裡?

 

int main() {

int L, M;

cin>>L>>M;

bool a[L] = {0};

int left, right;

for(int i = 0; i < M; i++) {

cin>>left>>right;

for(int j = left; j < right; j++) {        //這裡如果改成 r<=right 的話,變成只有前三個對,後面答案都差1

if(!a[j])

a[j] = true;

}

}

int tree = 0;

for(int i = 0; i < L; i++)

if(!a[i])

tree++;

cout<<tree;

return 0;

}

 
#30042: Re:C++,只有80分,另外我覺得範例答案怪怪的


e002933 (徐MAN)

學校 : 不指定學校
編號 : 158405
來源 : [111.71.113.217]
最後登入時間 :
2023-11-18 16:56:51
b139. NOIP2005 2.校门外的树 -- NOIP2005普及組 | From: [118.150.201.99] | 發表日期 : 2022-04-24 00:05

自己回應自己

因為座標0上面也有樹,所以要加回去

所以陣列應該設成 a[L+1] 才對

這樣跑就AC了



 
ZeroJudge Forum