2020 3 11 C組模擬賽題解

2021-10-03 22:33:47 字數 4443 閱讀 9395

t1:水果盛宴

t2:憤怒的奶牛2

t3:採訪

t4:房間開燈

貝茜又再一次地闖入了 farmer john 的房子!她在廚房發現了一堆檸檬和一堆橘子(每堆都有無限多個),並且,她希望盡可能地多吃。

貝茜的有乙個飽腹值上限 t(1<=t<=5,000,000)。吃乙個橘子會增加她 a 點飽腹值,吃乙個檸檬會增加她 b 點飽腹值(1<=a,b<=t),如果她願意,貝茜可以最多喝一次水,這會立即使她的飽腹值變成一半,請你幫助貝茜求出她可以獲得的最大飽腹值。

一行三個整數 t,a 和 b

一行乙個整數,表示貝茜可獲得的最大飽腹值

8

56

8
這道題做法有很多種,可以用遞迴來解決。

具體一點就是從0開始去遞迴它出現的所有情況,在裡面找乙個最大值,注意越界和重複情況。o(n),跑得挺快。

#

include

#include

#include

#include

using

namespace std;

bool f[

5000001];

//判斷重複用f陣列標記

int t,a,b,ans;

void

digui

(int dep,

int rp)

intmain()

第一行包含兩個整數n,k(1<=n<=50,000,1<=k<=10)

接下來n行,每行包含乙個整數xi,表示每捆幹草包的位置(0<=xi<=1,000,000,000)

一行乙個整數,表示最少所需要的每頭奶牛的能量值r

7220

2518810

31

5
這道題是二分答案

先手打個快排,然後就二分

二分過程就是我們二分它的答案r每次判斷取mid時候是否炸掉所有的,可以就向前,不然向後

#

include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

int a[

50001];

int l,r,i,j,k,n,m,mid;

void

fff(

int l,

int r)

}while

(i<=j);if

(lfff(l,j);if

(ifff(i,r);}

intmain()

}if(j<=m) r=mid;

//判斷是否能全部炸

else l=mid;

} cout

}

你是一名記者,現在要求你去採訪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。

1052

51079

63113

8131

3422

5

22
樣例就知道是dp。

dalao講的還是個分組揹包

設f[i,j]表示前i個關係圈花費時間為j能獲得的最大價值總和是多少。f[i,j]=max

i列舉關係圈j列舉時間k列舉i關係圈的某個領導人

四重for不會超時

#

include

#include

using

namespace std;

int m,n,k,x,y;

int t[

1010

],v[

1010];

int f[11]

[5001];

int a[

100]

[100];

intmain()

for(

int i=

1;i<=m;i++

)for

(int i=

1;i<=m;i++)}

cout<[n];

return0;

}

farmer john 最近正在修建乙個巨大的包含 n×n 個房間的牲口棚,這些房間從(1,1)標號到(n,n)。由於某些原因而害怕黑暗,貝茜這頭奶牛想要盡可能地開更多房間的燈。貝茜從房間(1,1)出發,這個房間是唯一乙個一開始就亮著的房間。在一些房間中,她會找到一些電燈開關,這些開關她可以用來切換其他房間的燈的狀態。比如,在(1,1)這個房間中可能存在乙個電燈開關來控制(1,2)房間中的電燈。貝茜只能進電燈開著的房間,並且貝茜只能從房間(x,y)走到四個方向的房間(x-1,y),(x+1,y),(x,y-1)和(x,y+1)(如果在邊界的話,那可能會更少)。請幫忙統計貝茜最多可以照亮多少房間。

第一行兩個整數 n,m(2<=n<=100,1<=m<=20,000)

下面 m 行,每行用四個整數 x,y,a,b 來表示房間(x,y)存在著可以控制房間(a,b)的燈的開關。乙個房間可能有多個開關,乙個房間的燈的開關可能存在於多個房間中。

一行乙個整數,表示貝茜最多可以照亮的房間數

361

1122

1221

1132

3311

3121

321

5
這道題原來是個bfs?我笑了。

鄰接表記錄乙個點與它連線的開關,用ans記錄當前有多少個亮燈。每加入乙個點,就列舉與它連線的開關,看是否能到達乙個亮燈的地方。

#

include

#include

using

namespace std;

int n,m,next[

20001

],sx[

20001

],sy[

20001

],ex[

20001

],ey[

20001];

int head[

101]

[101

],a[

101]

[101

],f[

101]

[101];

int b[

100100][

3],ans;

int dx[4]

=;//導航

int dy[4]

=;void

bfs(

)for

(int i=

1;i<=hd;i++)}

}}}int

main()

bfs();

cout

}

紀中2020 3 11普及C組模擬賽總結

本題我打了個o n 2 o n 2 o n2 的暴力,只拿了8.3分。正解 遞迴acc od eac code accode include include include include using namespace std int n,a,b,ans,v 9000010 voiddg int ...

2020 3 14 C組模擬賽題解

t1 探索的奶牛 t2 單詞 t3 牛車 t4 危險係數fj的奶牛喜歡探索農場周圍的地形。一開始,所有n 1 n 1,000,000,000 只奶牛一起出發,但當碰到路口時,這一群牛可能會分成兩部分 不能為空 每一部分都繼續前進,當碰到另乙個路口時,再分成兩部分,如此反覆下去。假設路上到處都是新的岔...

2020 3 28 C組模擬賽題解

t1 羊羊整除 t2 羊羊吃草 t3 羊羊修路 t4 羊羊列隊羊年到了,村長開始教小羊學習pascal語言,剛開始學習四則運算。村長在白板上寫下兩個整數16和3,問小羊們,有16隻羊,平均分到3個羊村,每個羊村分到的數量必須相同,這個分配的數量最大是多少?小羊們很快就得到了答案,每個羊村分到5只,有...