最短工期 資料結構實現

2021-08-20 07:50:13 字數 2373 閱讀 3820

首先第一行給出兩個正整數:專案里程碑的數量 n(

≤100

)和任務總數

m。這裡的里程碑從 0 到 n−

1 編號。隨後

m 行,每行給出一項任務的描述,格式為「任務起始里程碑 任務結束里程碑 工作時長」,三個數字均為非負整數,以空格分隔。

如果整個專案的安排是合理可行的,在一行中輸出最早完工時間;否則輸出"impossible"。

9 12

0 1 6

0 2 4

0 3 5

1 4 1

2 4 1

3 5 2

5 4 0

4 6 9

4 7 7

5 7 4

6 8 2

7 8 4

18
4 5

0 1 1

0 2 2

2 1 3

1 3 4

3 2 5

impossible

單位: 浙江大學

時間限制: 400ms

記憶體限制: 64mb

**長度限制: 16kb

typedef int vertex; /* 用頂點下標表示頂點,為整形 */

typedef int weighttype; /* 邊的權值設為整形 */

typedef char datatype; /* 頂點儲存的資料型別設為字元型 */

int time[maxvertexnum]=;

/* 佇列的相關操作 */

/* 佇列的順序儲存實現結構定義 */

typedef int elementtype;

typedef int position;

typedef struct qnode *ptrtoqnode;

struct qnode;

typedef ptrtoqnode queue;

/* 佇列的建立 */

queue creatqueue(int maxsize)

int isfull(queue q)

void addq(queue q, elementtype x) /* 入佇列 */

else

}int isempty(queue q) /* 判斷佇列是否為空 */

elementtype deleteq(queue q) /* 出佇列 */

else

} /* 邊的定義 */

typedef struct enode *ptrtoenode;

struct enode;

typedef ptrtoenode edge;

/* 鄰結點的定義 */

typedef struct adjvnode *ptrtoadjvnode;

struct adjvnode;

/* 頂點表頭節點的定義 */

typedef struct vnodeadjlist[maxvertexnum]; /* adjlist 是鄰接表的型別 */

/* 圖節點的定義 */

typedef struct gnode *protognode;

struct gnode;

typedef protognode lgraph;

int toporder[maxvertexnum];

lgraph creategraph(int vertexnum) /* 初始化乙個有n個頂點但是沒有邊的圖 */

void insertedge(lgraph graph, edge e) //插入邊

lgraph buildgraph()

} /* 如果頂點有資料的話,讀入頂點資料 */

/* for(v = 0; v < graph->nv; v++)

scanf("%c",&(graph->g[v].data));

*/ return graph;

}int topsort(lgraph graph) /*拓撲排序*/

toporder[cnt++] = v; /* 將之存為結果序列的下乙個元素 */

for(w=graph->g[v].firstedge; w!=null; w = w->next)

}if(cnt != graph->nv)

return -1;

else

return 1;

}int main()

printf("%d",max);

} else

printf("impossible");

return 0; }

pku初期資料結構題解

a當時打算用動態規劃做,沒想到超時,後來直接簡單模擬,因為符合的串的判斷情況很簡單 b二分加速 c 直接判斷 d 排序 e 歸併找逆序對數 f hash g 求字首和然後在進行差值操作,最後hash,注意橫向的差值比較為0也滿足條件,因此需要補充乙個 n 0 的情防止出錯 h概率dp,注意float...

假期資料結構學習總結

假期總結 這個假期沒有回家,在學校進行了三個周的資料結構培訓,形式是自學。先說說這三個週是怎麼度過的。開課的時候,mx學姐以及l老師過來給我們講學習的內容和時間的安排,早上8點開門,培訓時間為上午和晚上 一部分同學要準備齊魯軟體大賽 內容就是咱學校oj上 挑戰程式設計 那一系列的試題,l老師建議我們...

資料結構 最短路徑(Dijkstra c 實現)

define maxsize 10 頂點最大個數 typedef string vertextype 頂點型別 typedef int edgetype 權值型別,有向圖 0,1 無向圖 權值,無窮大 define infinity 0xffff typedef struct mgraph defi...