HDU 5422:Rikka with Graph

來源:互聯網
上載者:User

標籤:

Rikka with Graph  Accepts: 353  Submissions: 1174 Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536/65536 K (Java/Others)問題描述
眾所周知,萌萌噠六花不擅長數學,所以勇太給了她一些數學問題做練習,其中有一道是這樣的:勇太有一張nn個點mm條邊的無向圖,每一條邊的長度都是1。現在他想再在這張圖上連上一條串連兩個不同頂點邊,使得1號點到nn號點的最短路儘可能的短。現在他想要知道最短路最短是多少,以及再保證最短路最短的情況下,他有多少種連邊的方案。當然,這個問題對於萌萌噠六花來說實在是太難了,你可以幫幫她嗎?
輸入描述
資料群組數不超過100組。每組資料的第一行兩個整數n,m(2 \leq n \leq 100, 0 \leq m \leq 100)n,m(2≤n≤100,0≤m≤100)。接下來mm行。每行兩個整數u,v(1 \leq u,v \leq n)u,v(1≤u,v≤n),代表原圖中的一條無向邊。注意可能有自環和重邊。
輸出描述
對於每一組資料輸出一行兩個整數:最短路最短是多少以及加邊的方案數。
輸入範例
2 11 2
輸出範例
1 1
Hint
你只能連上1 2這條邊。

一開始看以為BC周賽第一道題竟然是圖論的內容,中間自己的思路一度跑偏, Dijkstra的想法都想上了。

最後發現根本不是那麼回事,自己跑偏了。

既然可以隨意連,包括重邊,那1到n的最短路徑一定是1啊。

如果1和n原來沒有邊,連上就是1。

如果1和n原來有邊,最短路徑就還是1,邊就隨意連,還可以有重邊,那就是C(n,2),也就是n*(n-1)/2。

代碼:

#include <iostream>#include <algorithm>#include <cmath>#include <vector>#include <string>#include <cstring>#pragma warning(disable:4996)using namespace std;int edge[105][105];int c[105][105];void init(){    int i, j;    memset(c, 0, sizeof(c));    for (i = 0; i <= 104; i++)    {        for (j = 0; j <= i; j++)        {            if (j == 0 || j == i)                c[i][j] = 1;            else                c[i][j] = c[i - 1][j - 1] + c[i - 1][j];        }    }}int main(){    int i, n, m, temp1, temp2,edge_num;    init();    while (scanf("%d%d", &n, &m)!=EOF)    {        memset(edge, 0, sizeof(edge));        edge_num = m;        for (i = 1; i <= m; i++)        {            scanf("%d%d", &temp1, &temp2);            edge[temp1][temp2] = 1;            edge[temp2][temp1] = 1;        }        if (edge[1][n] == 0)            cout << 1 << " " << 1 << endl;        else            cout << 1 << " " << c[n][2] << endl;    }    return 0;}


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

HDU 5422:Rikka with Graph

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.