日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

工程

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 工程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

張三是某工程公司的項目工程師。一天公司接下一項大型工程,該公司在大型工程的施工前,先要把整個工程劃分為若干個子工程,并把這些子工程編號為1、2、…、N;這樣劃分之后,子工程之間就會有一些依賴關系,即一些子工程必須在某些子工程完成之后才能施工,公司需要工程師張三計算整個工程最少的完成時間。
對于上面問題,可以假設:
1、根據預算,每一個子工程都有一個完成時間。
2、子工程之間的依賴關系是:部分子工程必須在一些子工程完成之后才開工。
3、只要滿足子工程間的依賴關系,在任何時刻可以有任何多個子工程同時在施工,也即同時施工的子工程個數不受限制。
例如:有五個子工程的工程規劃表:

現在對于給定的子工程規劃情況,及每個子工程完成所需的時間,如果子工程劃分合理則求出完成整個工程最少要用的時間,如果子工程劃分不合理,則輸出-1。

Input

第1行為正整數N,表示子工程的個數(N<=200)
第2行為N個正整數,分別代表子工程1、2、…、N的完成時間。
第3行到N+2行,每行有N-1個0或1,其中的第K+2行的這些0或1,分別表示“子工程K”與子工程1、2、…、K-1、K+1、…、N的依賴關系(K=1、2、…、N)。每行數據之間均用空格分開。

Output

如果子工程劃分合理則輸出完成整個工程最少要用的時間,如果子工程劃分不合理,則輸出-1。

Sample Input

project.in
5
5 4 12 7 2
0 0 0 0
0 0 0 0
0 0 0 0
1 1 0 0
1 1 1 1.

project.in
5
5 4 12 7 2
0 1 0 0
0 0 0 0
0 0 1 0
1 1 0 0
1 1 1 1
Sample Output

project.out
14

project.out
-1

.
.
.
.
.
分析
設a[i]表示第i個工程最少能在多少時間內完成
先從1到n枚舉,再調用子程序將當前工程的子工程總花費統計起來,最后輸出即可
①→②→③→①→Explotion!(本程序要完成,就要先完成箭頭指向的程序)在這里前提條件與要做的工程重合,故成了死循環,程序會炸

.
.
.
.
.
程序:

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std;bool bz; int n,a[1000],t[1000],f[210][210],c[1000]; int hh=2147483647;void dfs(int wz) {if (bz==false) return;if (c[wz]>=2){bz=false;return;}int x=0;for (int i=1;i<=n;i++)if (f[wz][i]==1){if (a[i]==hh) c[i]++;dfs(i);c[i]--;if (a[i]!=hh) x=max(x,a[i]);}a[wz]=x+t[wz]; }int main() {freopen("project.in","r",stdin);freopen("project.out","w",stdout);scanf("%d",&n);for (int i=1;i<=n;i++)scanf("%d",&t[i]);for (int i=1;i<=n;i++){for (int j=1;j<=n;j++)if (i!=j) scanf("%d",&f[i][j]);a[i]=hh;}bz=true;int ans=0;for (int i=1;i<=n;i++)if (a[i]==hh){bz=true;c[i]=1;dfs(i);if (bz==false) break;c[i]=0;if (a[i]!=hh) ans=max(ans,a[i]);}if (bz==false) printf("-1"); else printf("%d",ans);fclose(stdin);fclose(stdout);return 0; }

轉載于:https://www.cnblogs.com/YYC-0304/p/11094925.html

總結

以上是生活随笔為你收集整理的工程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。