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只,有...