2020 03 11模擬賽15(第三題)

2021-10-04 02:51:00 字數 1361 閱讀 5759

題目描述

你是一名記者,現在要求你去採訪n 個國家的領導人。採訪每乙個國家的領導人需要消耗你的時間為t[i],但你可以收穫價值為v[i]的資訊,然後就能寫成報道……

然而尷尬的是,有一些國家之間的關係屬於敵對關係,因此如果乙個國家的領導人知道你採訪了他的敵對國家領導人,那麼他就會拒絕你的採訪。總之,你採訪的國家中,任意選出一對國家都不能構成敵對關係,你才能夠完成你的採訪,否則某些部分就要落空。

你的boss他給了你乙個時間限制t,如果你在時間限制內沒有完成採訪任務,你就會被炒魷魚。當然,他希望你在時間限制t 內完成的採訪累計起來的價值總和最大。

輸入

第一行有三個數,第乙個數為時間限制t,第二個數為國家數量n,第三個數為國家之間的敵對組數m。

接下來n 行,每行兩個數,第乙個數為t[i],第二個數為v[i]。

接下來m 行,每行有m[i]+1 個數,首先輸入m[i],表示這一組中一共有多少國家是敵對關係,之後輸入m[i]個數,表示這m[i]個國家兩兩之間為敵對關係(一組敵對關係的國家中,每兩個國家都構成敵對關係,比如這一組是1,3,4,那麼1 和3,1 和4,3 和4 都構成敵對關係),若m[i] = 1,那麼這個國家與其他國家都不構成敵對關係。

輸出

乙個整數,表示最大價值v。

樣例輸入

10 5 2

5 10

7 96 3

1 13

8 13 1 3 4

2 2 5

樣例輸出

資料範圍限制

60%的資料:m=1;

100%的資料:0≤t≤50000,0≤n≤500,1≤m≤10,n=∑m[i],即m[1]+m[2]+…=n,且敵對關係中每個國家編號只會出現一次。

正解

分組揹包模板

ac**

#include

using

namespace std;

int t,n,m,o,a,w[

505]

,v[505

],f[15]

[50005];

intmain()

} cout<[t];

return0;

}

2020.03.11模擬賽15(第一題)

2020.03.11模擬賽15(第二題)

2020.03.11模擬賽15(第三題)

2020.03.11模擬賽15(第四題)

2020.03.11模擬賽15(總結)

2020 03 11模擬賽15(總結)

t1 比賽時出錯,遞迴喝水出現問題,樣例過了,最後8.3分,後來找到遞迴的問題,改過來成功ac t2比賽用了二分,開始樣例不對,發現時二分的問題,把迴圈中的判斷改了一下就對了,最後ac t3不會分組揹包,比賽打了01揹包騙分,最後得了30分,後來知道了正解是分組揹包,上網學習了分組揹包,套用模板就a...

2020 03 11模擬賽15(第四題)

題目描述 farmer john 最近正在修建乙個巨大的包含 n n 個房間的牲口棚,這些房間從 1,1 標號到 n,n 由於某些原因而害怕黑暗,貝茜這頭奶牛想要盡可能地開更多房間的燈。貝茜從房間 1,1 出發,這個房間是唯一乙個一開始就亮著的房間。在一些房間中,她會找到一些電燈開關,這些開關她可以...

2020 02 13普及C組模擬賽6(第三題)

題目描述 題目 農夫約翰最近正在將他的柵欄粉刷一下 這裡所有的柵欄都是在一條直線上的 他是這樣來粉刷的 他從位置0出發,然後執行n條指令,例如,指令可以是 10 l 表示約翰從當前的位置向左移動10個單位的距離,並且粉刷移動過程中遇到的柵欄,又或者是 15 r 表示約翰從當前的位置向右移動15個單位...