3259 Wormholes 解題報告

2021-04-24 00:26:31 字數 853 閱讀 9379

accecpttime:  

2009-01-05 10:55:38

language: 

c++memory:  

324k

time:  

266ms

errors:  

5waalgorithm: 

bellman-ford最短路徑

#include 

#include 

#include 

#include 

#define infinity 999999999

using

namespace std;

//用於儲存邊

typedef

struct edge;

edge edge[5500];

int d[1000];

//我的bellman-ford標程

bool bf(int n,int path)

int main()

for(int j = 0; j < w; j++) 

// 總路徑數為 2*path + worm

if(!bf(n,2*m + w))

cout << "yes"

<< endl;

else

cout << "no"

<< endl;

}return 0;

}這道題直接應用了bellman-ford最短路徑中對負權環的判斷,由於一開始沒有注意path是無向的而wormhole是有向的。導致一改再改,改到最後發現原來自己一開始的演算法就是對的,只是沒有留意無向邊而已。下次要好好看題。。。

試了一下:如果將cin改為scanf只需要一半(110ms)的時間

USACO Hamming Codes 解題報告

資料小,暴力搜尋可以搞定。但是推薦使用dfs,每個節點 數 有取與不取兩個分支。注意 0是必須出現的。證明如下 最終得到的結果序列中,0是必須出現的,證明如下 如果存在另乙個滿足要求的結果序列s 其最小值為a1 n 0,那麼序列s s n 是滿足條件的最小解,且首元素為0 id xpli1 prog...

USACO Closed Fences 解題報告

幾何題看著就很有畏懼感。這裡用的是最 的演算法,時間複雜度應該在n 2。還沒看別人的解題報告,不過我猜nlogn的解法是有的。比如判斷乙個fence是不是valid的時候,這裡將所有的線段兩兩比較,看是否相交。但是有個叫line sweep的演算法,可以在nlogn的時間複雜度內完成。既然accep...

Wiggle Subsequence解題報告

這道題和最長子序列,divisible subset題目類似,都可以用o n2 的時間複雜度完成。可以想象,對於第i個數,dp i dp j 1,當且僅當dp j 1 dp i 而且nums j 和nums i 的差值和j所處位置的差值符號相反。所以,如下 class solution if dp ...