宿舍分配
程式檔名
: school.cpp/school.pas/...
乙個很有名的大學
nku裡有不少的教學樓和宿舍樓。
學校為了學生們的切身利益著想,希望能有乙個好的分配方案,使得每天早上學生們去上課所要走的路程總和最小。
為了簡化問題,我們假設
1.
每個教學樓都屬於乙個學院,而且每個學院只有乙個教學樓
2.
每天早上第一節每個學生都有課,且這個課是在自己學院樓裡上的專業課。
3.
如圖所示,宿舍的位置為
(pj,qj),
學院樓的位置為
(xi,yi)
時,這兩個樓的距離
dij由下面的公式來決定。
dij=|xi-pi|+|yi-qi|+1
宿舍分配可以很隨意,即同乙個學院的學生們可以不住在一起,乙個宿舍裡也可以住幾個不同學院的學生。
現在學校已經有了乙個宿舍分配方案,現在委託程式設計高手你來驗證一下這個方案是不是最優的。 輸入
(請使用標準輸入輸出,而不要讀寫檔案)
輸入資料的第
1行有兩個整數
n,m。
n(1<=n<=100)
為學院個數(即教學樓個數),
m(1<=m<=100)
為宿舍樓個數。
緊接著的
n行為每個學院的資料,每行有
3個整數
: 學院樓的位置
xi,yi(-1000<=xi,yi<=1000)
和學生數
bi(1<=bi<=1000)
。再下面的
m行為每個宿舍的資料,每行有
3個整數
: 宿舍的位置
pj,qj(-1000<=pj,qj<=1000)
和可以住的學生數
cj(1<=cj<
=1000)。最後
n行為現在學校的分配方案。
每行有m
個整數。每個整數
eij(1<=i<=n,1<=j<=m,0<=eij<=1000)
表示第i
學院的多少個學生住第
j宿舍。
輸入的方案一定是有效的,即滿足
bi=ei1+ei2+...+eim, cj>=(e1j+e2j+...enj)。
輸出 (請使用標準輸入輸出,而不要讀寫檔案)
若現在的方案是最優的話只要輸出一行
」yes」
(小寫字母,不包含引號)。
否則,先輸出
」no」
(小寫字母,不包含引號),緊接著輸出乙個更優越的方案,這個方案可以不是最優的,但一定要比原來的方案更好。
方案的輸出格式跟輸入的格式一樣,有
n行。每行
m個數字。每個整數
eij(1<=i<=n,1<=j<=m,0<=eij<=1000)
表示第i
學院的多少個學生住第
j宿舍。
樣例輸入
1
樣例輸出
1
3 4-3 3 5
-2 -2 6
2 2 5
-1 1 3
1 1 4
-2 -2 7
0 -1 3
3 1 1 0
0 0 6 0
0 3 0 2 no
3 0 1 1
0 0 6 0
0 4 0 1
樣例輸入
2
樣例輸出
2
3 4-3 3 5
-2 -2 6
2 2 5
-1 1 3
1 1 4
-2 -2 7
0 -1 3
3 0 1 1
0 0 6 0
0 4 0 1
yes
暫無答案
C語言自動分配宿舍問題
流程圖題外話 1.不重複隨機數的生成 2.結構體以及在函式模組中的呼叫 3.如何命名宿舍房間號 這是我的第一篇文章 作為乙個苦逼的大二轉專業狗,脫離了生物的溫床,扎入一望無際的計算機的汪洋中,我彷彿已經看到了眼前無數的坑在等著自己 事實上已經遇到了 作為乙個c自學沒多久的人,我並不想為自己的菜找理由...
宿舍管理系統 高校宿舍管理系統
本系統的主要功能為 樓棟管理員管理 宿舍管理 學生登記入住管理 學生遷出管理 學生寢室調換管理 學生缺勤記錄管理 學生管理 學生上報維修 學生維修記錄。作業系統 windows 10 資料庫系統 sql server資料庫 可用記憶體 建議至少4096m 作業系統 windows 7 8 10 可用...
宿舍管理查詢系統 宿舍管理系統
一 基礎功能簡介 初始登入 角色 管理員 宿舍樓資訊管理 匯入學生資訊管理 匯入離校重置 修改刪除 查詢職工資訊管理 匯入新增重置 修改刪除 查詢宿管 個人資訊管理 個人資訊 修改密碼 學生資訊查詢 保修單管理 未處理報修單 查詢 處理 批量處理 處理中報修單 查詢 處理 歷史報修單 查詢 匯出 假...