題意
給出一些任務的優先級別 將這些任務進行的時間 進行先後排序
思路
拓撲排序
將所以有先後關係的任務都連一條邊
然後每次 輸出 度為0 的任務
每次把 以這個任務為弧的邊 都取消 相對應任務的度也-1
再迴圈ac**
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define clr(a) memset(a, 0, sizeof(a))
#define pb push_back
using
namespace
std;
typedef
long
long ll;
typedef
long
double ld;
typedef
unsigned
long
long ull;
typedef pair pii;
typedef pair pll;
typedef pair psi;
typedef pair pss;
const
double pi = acos(-1.0);
const
double e = exp(1);
const
double eps = 1e-30;
const
int inf = 0x3f3f3f3f;
const
int maxn = 1e2 + 5;
const
int mod = 1e9 + 7;
int g[maxn][maxn];
int degree[maxn];
int v[maxn];
int n, m;
vector
ans;
int count;
void dfs()}}
}if (count != n)
dfs();
}int main()
ans.clear();
count = 0;
dfs();
vector
::iterator it;
for (it = ans.begin(); it != ans.end(); it++)
cout
<< endl;}}
UVa 10305 給任務排序
題意 給定一些任務,和任務序列 i j,意思是要求任務 i 必須要在任務 j 前完成。給出這樣的任務序列。思路 拓撲排序。注意的是任務是從1開始的到n。code include includebool dfs int u,int n bool toposort int n int graph 105...
uva 10305 給任務排序
這是劉汝佳演算法入門上的一道拓撲排序題目。拿來練練手,題目採用dfs對有向無環圖進行排序。每找到乙個數,人如果有比它大的就繼續dfs遞迴,直到最大的數,然後開始逆序儲存到topo陣列裡面。特別注意題目有坑,m可以為0 呀!include include include include define ...
uva1423 巧用拓撲排序
對於乙個序列 a1 a2 an 我們可以計算出乙個符號矩陣a,其中si,j 為 a1 aj 的正負號,連加和大於0則sij 小於0 sij 等於0 則sij 0 根據序列a不難算出上述符號矩陣。你的任務是求解它的 逆問題 及給出乙個符號矩陣,找出乙個對應的序列。輸入保證存在乙個滿足條件的序列,其中每...