Vijos1240 樸素的網路遊戲

2022-06-02 07:30:13 字數 998 閱讀 2055

佳佳最近又迷上了某款類似於虛擬人生的網路遊戲。在遊戲中,佳佳是某旅行團的團長,他需要安排客戶住進旅館。旅館給了佳佳的旅行團乙個房間數的限制。每乙個房間有不同的容納人數和價錢(這個**是房間的總**,不是每個人付的)。佳佳決定找到最小的花費,安排參加旅行的人住在這裡。但是他遇到了這麼乙個問題:兩個不同性別的人不能住在同乙個房間裡,除非他們是夫妻;一對夫妻如果在一起住,那麼別的人就不能再住進去。你不必讓所有的夫妻都單獨住在一起。也就是說:

1.給你一些房間,告訴你這些房間的容納人數和**

2.安排一定數量的人住到旅館裡,滿足:

a.不同性別的人如果不是夫妻那麼不能住一起。

b.夫妻如果住在一起,那麼房間不能安排其他的人進去。

你來寫乙個程式幫助佳佳找到安排這些來參加旅行的人住進旅館所需要的最小花費。

夫妻住在一起有點浪費。。。把夫妻拆開(這還是人嗎),讓最多只有一對夫妻在一起(qwq),然後dp。

決策時第 i 個房間可以不選,或者住滿男的,或者住滿女的,要麼就住一對夫妻。

另外再考慮有沒有夫妻,新開乙個陣列 g 來進行dp。

#include#include#includeusing namespace std;

int f[333][333][333],g[333][333][333],a[333],b[333],m,fm,r,c;

int main()

for(int i = 0;i <= m;++i)

} f[0][0][0] = 0;

for(int i = 1;i <= r;++i) }

int ans;

if(c == 0) ans = f[r][m][fm];

else ans = min(f[r][m][fm],g[r][m][fm]);

if(ans < 0x7f7f7f7f) printf("%d\n",ans);

else printf("impossible");

return 0;

}

vijos 1240 樸素的網路遊戲

佳佳最近又迷上了某款類似於虛擬人生的網路遊戲。在遊戲中,佳佳是某旅行團的團長,他需要安排客戶住進旅館。旅館給了佳佳的旅行團乙個房間數的限制。每乙個房間有不同的容納人數和價錢 這個 是房間的總 不是每個人付的 佳佳決定找到最小的花費,安排參加旅行的人住在這裡。但是他遇到了這麼乙個問題 兩個不同性別的人...

裝箱問題 vijos

有乙個箱子容量為v 正整數,o v 20000 同時有n個物品 o n 30 每個物品有乙個體積 正整數 要求從 n 個物品中,任取若千個裝入箱內,使箱子的剩餘空間為最小。第一行,乙個整數,表示箱子容量 第二行,乙個整數,表示有n個物品 接下來n行,分別表示這n個物品的各自體積。乙個整數,表示箱子剩...

vijos 積木城堡

恰似今天更了七章 我該怎麼辦 看上去好像只能瘋狂寫揹包啦 他們說周四化學通練,我好慌 描述 第一行是乙個整數n n 100 表示一共有幾座城堡。以下n行每行是一系列非負整數,用乙個空格分隔,按從下往上的順序依次給出一座城堡中所有積木的稜長。用 1結束。一座城堡中的積木不超過100塊,每塊積木的稜長不...