国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

圖的存儲二

2019-11-08 02:13:29
字體:
來源:轉載
供稿:網友


圖的基本存儲的基本方式二

Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic

PRoblem Description

解決圖論問題,首先就要思考用什么樣的方式存儲圖。但是小鑫卻怎么也弄不明白如何存圖才能有利于解決問題。你能幫他解決這個問題么?

Input

 多組輸入,到文件結尾。

每一組第一行有兩個數n、m表示n個點,m條有向邊。接下來有m行,每行兩個數u、v代表u到v有一條有向邊。第m+2行有一個數q代表詢問次數,接下來q行每行有一個詢問,輸入兩個數為a,b。

注意:點的編號為0~n-1,2<=n<=500000,0<=m<=500000,0<=q<=500000,a!=b,輸入保證沒有自環和重邊

Output

 對于每一條詢問,輸出一行。若a到b可以直接連通輸出Yes,否則輸出No。

Example Input

2 10 120 11 0

Example Output

YesNo

#include <iostream>#include <stdlib.h>#include <string.h>#include <stdio.h>using namespace std;

struct node{    int data;    struct node * next;};

int main(){    ios::sync_with_stdio(false);

    int m, n;    struct node * head[500001], *p, *temp;

    while(cin >> n >> m)    {        for(int i = 0; i < n; i++)            head[i] = NULL;//初始化鏈表頭,對應每個點都有一個鏈表

        for(int i = 0; i < m; i++)//輸入兩點,確定連線        {            int u, v;            cin >> u >> v;            //當輸入的點還沒有建立鏈表的時候,開辟內存,存入數據            if(head[u] == NULL)            {                head[u] = (struct node *)malloc(sizeof(struct node));                head[u]->data = v;                head[u]->next = NULL;            }            //當輸入的點已經開辟了內存建立了鏈表,通過逆序建立鏈表的方法,存入數據            else            {                temp = head[u]->next;                p = (struct node *)malloc(sizeof(struct node));                p->data = v;                p->next = temp;                head[u]->next = p;            }        }        int q;        cin >> q;        for(int i = 0; i < q; i++)        {            int x, y;            int flag = 0;            cin >> x >> y;            //當輸入數據沒有建立鏈表則不能連通            if(head[x] == NULL)                cout << "No" << endl;            else            {                //從當前點開始遍歷整個鏈表,當遇到輸入的數據的時候,flag賦值跳出                temp = head[x];                while(temp != NULL)                {                    if(temp->data == y)                    {                        flag = 1;                        break;                    }                    temp = temp->next;                }                if(flag == 1)                    cout << "Yes" << endl;                else                    cout << "No" << endl;            }        }    }    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海南省| 瓦房店市| 民勤县| 谷城县| 汾西县| 高州市| 林周县| 开阳县| 三门峡市| 阜阳市| 交城县| 剑川县| 法库县| 渑池县| 萨迦县| 金华市| 乐至县| 临泽县| 平昌县| 丰台区| 农安县| 肇东市| 磴口县| 沽源县| 和田市| 富源县| 武威市| 丰城市| 扬中市| 宕昌县| 麻城市| 阿拉善右旗| 丰县| 丰镇市| 乐安县| 建宁县| 民和| 永靖县| 万荣县| 鄂托克前旗| 江都市|