#6208: RE....


firejox (tangent)

學校 : 國立臺中第一高級中學
編號 : 8517
來源 : [36.235.168.46]
最後登入時間 :
2023-03-12 03:01:48
a290. 新手訓練系列 ~ 圖論 -- 新手訓練系列 ~ 3 | From: [210.60.34.252] | 發表日期 : 2011-12-28 18:35

不知為何RE...

沒超出題目存取範圍也會segment fault..

是不是題目大小有錯? 

附上code 

#include <stdio.h>
#include <string.h>
int n,m;
char vi[801];
int u[10001],v[10001];

int main(void) {
int i,j,a,b;
while (scanf("%d%d",&n,&m)!=EOF) {
for (i = 0;i < m;i++)scanf("%d%d",&u[i],&v[i]);
for (i = 1;i <= n;i++)vi[i] = 0;
scanf("%d%d",&a,&b);
vi[a] = 1;
for (i = 0;i < n;i++)
for (j = 0;j < m;j++)
vi[v[j]]|=vi[u[j]];
 
if (vi[b])
puts("Yes!!!");
else
puts("No!!!");
}
return 0;
}


 
#6210: Re:RE....


firejox (tangent)

學校 : 國立臺中第一高級中學
編號 : 8517
來源 : [36.235.168.46]
最後登入時間 :
2023-03-12 03:01:48
a290. 新手訓練系列 ~ 圖論 -- 新手訓練系列 ~ 3 | From: [210.60.34.252] | 發表日期 : 2011-12-28 19:23

不知為何RE...

沒超出題目存取範圍也會segment fault..

是不是題目大小有錯? 

附上code 

#include 
#include
int n,m;
char vi[801];
int u[10001],v[10001];

int main(void) {
int i,j,a,b;
while (scanf("%d%d",&n,&m)!=EOF) {
for (i = 0;i < m;i++)scanf("%d%d",&u[i],&v[i]);
for (i = 1;i <= n;i++)vi[i] = 0;
scanf("%d%d",&a,&b);
vi[a] = 1;
for (i = 0;i < n;i++)
for (j = 0;j < m;j++)
vi[v[j]]|=vi[u[j]];
 
if (vi[b])
puts("Yes!!!");
else
puts("No!!!");
}
return 0;
}


果然是題目的輸入說明的問題

m <=10000 好婊人阿...

m的大小根本不只10000 ....

 

希望出題者可以更正一下輸入說明

不要誤導了解題的人... 

 
#7404: Re:RE....


kevin321 (Kevin)

學校 : 中原大學
編號 : 30636
來源 : [114.34.198.174]
最後登入時間 :
2013-01-20 20:08:03
a290. 新手訓練系列 ~ 圖論 -- 新手訓練系列 ~ 3 | From: [114.34.198.174] | 發表日期 : 2013-01-20 13:05

不好意思!
可以解釋一下
int main(void) {
int i,j,a,b;
while (scanf("%d%d",&n,&m)!=EOF) {
for (i = 0;i < m;i++)scanf("%d%d",&u[i],&v[i]);
for (i = 1;i <= n;i++)vi[i] = 0;
scanf("%d%d",&a,&b);
vi[a] = 1;
for (i = 0;i < n;i++)
for (j = 0;j < m;j++)
vi[v[j]]|=vi[u[j]];
 
if (vi[b])
puts("Yes!!!");
else
puts("No!!!");
}
這地方是怎麼想的嘛! 謝謝
 
ZeroJudge Forum