下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1112 解題題目翻譯:有一群人,群里每個人都認(rèn)識群里的一些人,現(xiàn)在需要將他們分成兩組,分組的條件是:1.2.3.4.每個人都屬于兩隊之一每個隊至少有一個人每個人認(rèn)識其所屬隊里的所有其他人兩隊的人數(shù)盡可能小請找到問題的一個解或者沒有解。原文:Your task is to divide a number ofso two teams, in such a way,t:everyone belongs to one of the teams;every team haseast one member;everyhe team knows every otherson in hi;teams ar
2、e as closeheir sizes assible.This task may have many solutions. You are to find and output any solution, or to reportthe solution does not exist.t題目分析:這道題可以稱得上是一道好題,它同時考查了圖論和DP 的知識。那么這道題該怎么入手呢?首先,分析一下分組的要求:1、把所有的人分成 2 組,每組至少有 1 人;2、每組之間的人兩兩認(rèn)識。非常明顯,如果存在兩個人A 和B,A 不認(rèn)識B,或 B 不認(rèn)識A,那么 A 和B 一定不能分在同一組。因此,以人為
3、結(jié)點(diǎn)重新構(gòu)造一個圖G。假如 A 和B不能分在同一組,那么就在 G 中增加一條無向邊(A,B)。這樣,就得到了一個較為“單純”的模型。下面先研究 G 的對這個模型進(jìn)行簡單分析。通分量 K1。對于這個連通分量,可以先求出 K1 的生成樹T1。對于 K1 中的任意結(jié)點(diǎn)a,假如 a 在T1 中的深度為奇數(shù),就把a(bǔ) 加入點(diǎn)集 S1;否則 S1,S2 的交集為空。把 a 加入點(diǎn)集 S2(S1,S2 最初為空集)。顯然最后不難證明,如果存在不同結(jié)點(diǎn) p 和 q,p 和 q 同屬于 S1 或 S2,而且 G 中存在邊(p,q) , 那么要做到滿足題目要求的分組是不可能的, 應(yīng)輸出 Nosolution。否則,
4、組。就得到了連通分量 K1 的唯一分組方案:分為 S1,S2 兩對于G 中的每個連通分量Ki,可以求出相應(yīng)的S1i,S2i。最后,的目的是把全部人分為 2 組。也就是說,對于 i=1,2,3,.,m,須決定把S1i 中的人分到第 1 組,S2i 中的人分到第 2 組,還是做剛好相反的處理。由于題目要求最后兩組的總?cè)藬?shù)差最小可以用動態(tài)規(guī)劃的辦法來確定究竟選取上面的哪種決策。到了這一步,這道題的處理方法就和PKU1015 一樣了。不妨假設(shè)G有m 個連通分量,記|S1i|=xi,|S2i|=yi(i=1,2,3,.,m)。記wi = xi - yi。那么只要對所有的wi 做“半個背包”即可。也就是說
5、,湊出盡量接近sum(wi)的數(shù)。附源代碼:Source CodeProblem: 1112User: zhymaoiingMemory: 412KTime: 188MSLanguage: G+Result: AcceptedSource Code#include #define MAX 105n,g2MAX,gNum,node2MAXMAX,addMAX;boolmapMAXMAX,usedMAX,dpMAX2*MAX,remMAX2*MAX;bool floodfill(x,method)/求解連通分支并分組,分組方法:所有和 x 相連的節(jié)點(diǎn)都和 x 不在同一組i,j;usedx = tr
6、ue;for(i= 1;i = n;i+)if(!usedi & mapxi)for (j = 0;j gmethodgNum;j+) if(mapnodemethodgNumji)return false;nodemethodgNumgmethodgNum+=i;if (!floodfill(i,!method)return false;return true;main()i,x,j,k,l,t; bool fail;scanf(%d,&n);for(i= 1;i = n;i+)scanf(%d,&x);while(x)mapix = true;scanf(%d,&x);for= n;i+)
7、/構(gòu)補(bǔ)圖(i= 1;ifor (j = i+1;j = n;j+)mapji = mapij = (!(mapij &mapji);gNum =0,fail = false;= 1;i = n;i+)for(iif(!usedi)gNum+; node0gNumg0gNum+ = i; if (!floodfill(i,1)fail = true;break;(!fail)/如果分組成功 dp0MAX = true;iffor(i= 1;i = gNum;i+)t = i-1;addi=g0i-g1i;0;j 0;i+,j-)/找差距最(i小的分組方式k = -1;if ifif(dpgNum
8、i) k = i;(dpgNumj) k = j;!= -1)/控制輸出t = gNum,gNum+;(kwhile(t)if (remtk)for (l = 0;lg0t;l+)node0gNumg0gNum+=node0tl;for (l = 0;lg1t;l+)node1gNumg1gNum+=node1tl;k -= addt;elsefor (l = 0;lg0t;l+)node1gNumg1gNum+=node0tl;for (l = 0;lg1t;l+)node0gNumg0gNum+ =node1tl;k += addt;t-;for(l= 0;l 2;l+)prf(%d,glgNum);for (k = 0;k glgNum;k+)prf(%d,ngNumk);phar(n);break;elseprf(No solutionn);P.S.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年高性能鐵氧體一次料投資申請報告
- 2024年六盤水市六枝特區(qū)一級造價工程師《土建計量》全真模擬試題含解析
- 2024導(dǎo)購員勞動合同
- 2024國際貿(mào)易買賣合同參考范本
- 2024租店面合同格式范文
- 2024大連市商品混凝土買賣合同書范本
- 2024外教聘用的合同范本
- 2023LK系列自主可控可編程序控制器
- 2024混凝土單項(xiàng)承包合同
- 職業(yè)技術(shù)學(xué)院電氣自動化技術(shù)專業(yè)人才培養(yǎng)方案
- 2024年列車員技能競賽理論考試題庫500題(含答案)
- 16《麻雀》 教學(xué)設(shè)計-2024-2025學(xué)年語文四年級上冊(統(tǒng)編版)
- 2《我向國旗敬個禮》教學(xué)設(shè)計-2024-2025學(xué)年道德與法治一年級上冊統(tǒng)編版
- 2024年全國職業(yè)院校技能大賽中職組(安全保衛(wèi)賽項(xiàng))考試題庫(含答案)
- 2024年中國主要城市交通分析報告二季度
- 2024-2030年中國半導(dǎo)體行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展趨勢與投資前景研究報告
- Starter Unit 3 Welcome 單元測試卷2024年秋人教版新教材七年級英語上冊
- 宣講《鑄牢中華民族共同體意識》全文課件
- MOOC 跨文化交際通識通論-揚(yáng)州大學(xué) 中國大學(xué)慕課答案
- 入職申請表(完整版)
- 26個英文字母卡片
評論
0/150
提交評論