題目:自建oj,歡迎光臨)
分析:比如線路3 6 7 5,則3可以到達6,7,5,從而賦值f[3][6,7,5]=1,6可以到達7,5,從而賦值f[6][7,5]=1。下面就是最短路問題。
易困惑點:
寫好**後,在devc++上過了所有測試點,但提交oj後卻卡掉很多點,原因在於devc++把回車符與換行符當作換行符處理,而oj是分得很清楚的。
比如3 6 7 5
4 5用getchar()去讀入第一行,得到的是字元3,空格,字元6,空格,字元7,回車符(ascii碼為13),換行符(ascii碼為10)。
為了在devc++與oj上通用,採用以下**:
c=getchar();
if(c==13) c=getchar();
對於devc++,直接認為第一行**吸收的是換行符,從而不執行第二行**的主體。
對於洛谷,或者hustoj,因為先吸收回車符,從而執行第二行**的主體而吸收掉換行符。
另外需要注意的是,檔案結束是eof。
ac**:
#include#includeusing namespace std;
int m,n,a[501],f[501][501];
char c;
int main()
for(int i=1;i<=m;i++)
t++;
s=0;
while(c<='9' && c>='0')
a[t]=s;
while(c==13)/*回車鍵13*/
c=getchar();
/*換行鍵10,或者到了檔案結束標誌eof*/
if(c==10||c==eof)break;
}for(int j=1;jf[i][k]+f[k][j])
f[i][j]=f[i][k]+f[k][j];
if(f[1][n]==1e9)cout<<"no\n";
else cout
}
最優解問題的求解
1.一般來說題目中需要求解出最優解的問題,我們是可以使用普通遞迴,遞推,深度優先搜尋,記憶型的遞迴,貪心或者動態規劃來進行求解的 其中使用普通的遞迴或者深搜,遞推這些資料量較小的情況下求解速度還行,假如資料量相對大一點的情況下,而且節點的數量比較多,這個時候使用這些方法來解決往往會耗時比較大,有時候...
關於困惑已久的var self this的解釋
this.name name this.age age this.sayhello function this.saysomething function 詳見 var b1 new basetype wede 30 b1.saysomething my name is wede,and i m 3...
A 演算法可行解與最優解的偏離處
a 尋路初探 f g h g的計算依賴於來自每個格仔與相鄰8個方向格仔的距離d,文中不同格仔的d1 8相同。如果s到v的最短路徑g是準確的,那麼最終獲得的最短路徑就是準確的,因為終點的g就是所求的最短路徑。任何情況第一和第二個加入關閉列表的g都是準確的,即其v到s的最短路徑是最優解。第三個開始才有可...