n個地點間有多條地鐵線。求最小換站次數。
思路:給每一條地鐵線增加乙個匯點(連通該條線上的所有站點)。圖建好後就是寬度優先搜尋了。
例題:鄭輕玲瓏杯2130: hipercijevi,類似的題有河南省第八屆程式設計-最少換成
下面**用前向星實現,點實在太多了。裡面那個內聯函式是為了提高讀取速度的。若把read()換為scanf()。速度由600ms變為900ms(仍然可以 )
#include #include #include #include #include using namespace std;
inline int read()
while (ch >= '0'&&ch <= '9')
return x*f;
}const int maxn = 2000007;
struct edgeedge[maxn];
int n, k, m, tot, head[101007];
bool vis[101007];
void add(int u, int v)
struct node;
};void init()
int bfs(int v0)
} }return -1;
}int main()
} printf("%d\n", bfs(1)); }
return 0;
}
最少硬幣問題
問題描述 有n種不同面值的硬幣,各硬幣面值存於陣列t 1 n 現用這些面值的錢來找錢 各面值的個數存在陣列num 1 n 中。程式設計任務 對於給定的1 n 10,硬幣面值陣列 各面值的個數及錢數m,0 m 2001,程式設計計算找錢m的最少硬幣數。input 第乙個數字n,後面n行每行兩個數,面值...
最少硬幣問題
本文內容遵從 cc版權協議 設有n 種不同面值的硬幣,各硬幣的面值存於陣列t 1 n 中。現要用這些面值的硬幣來找錢。可以使用的各種面值的硬幣個數與面值分別存於陣列coin 1 n 和t 1 n 中。對任意錢數0 m 20001,設計乙個用最少硬幣找錢m的方法,對於給定的1 n 10,硬幣面值陣列t...
最少硬幣問題
問題描述 設有n 種不同面值的硬幣,各硬幣的面值存於陣列t 1 n 中。現要用這些面值的硬 幣來找錢。可以使用的各種面值的硬幣個數存於陣列coins 1 n 中。對任意錢數0 m 20001,設計乙個用最少硬幣找錢m的方法。程式設計任務 對於給定的1 n 10,硬幣面值陣列t和可以使用的各種面值的硬...