2019中山紀念中學夏令營 Day1 JZOJ

2022-05-01 10:51:09 字數 3841 閱讀 9757

t1 題目描述:

時間限制: 1000 ms  空間限制: 128000 kb  具體限制  

goto problemset

題目描述

wexley最近發現了乙個古老的螢幕遊戲。遊戲的螢幕被劃分成n列。在螢幕的底端,有乙個寬為m列的籃子(m

輸入第一行,兩個整數n、m,如題所述

第二行,乙個整數k,表示掉落的蘋果總數

接下來k行,每行乙個整數ai,表示每個蘋果掉落的位置

輸出一行乙個整數,表示所需移動最短距離

樣例輸入

sample input1:

5 1315

3sample input2:

5 2315

3

樣例輸出

sample output1:

6sample output2:

4

資料範圍限制

【資料範圍】

對於30%的資料,m

思路:貪心模擬,使每次移動數盡量少即可.難度較容易。

附上ac**:(考試完了重新碼的,考試的時候的**有點小問題)

#include #include 

using

namespace

std;

int n,m,k,a[21

];int b[21

],head,ans,tmp;

intmain()

head=m;

for(int i=1;i<=k;i++)

if((head-m+1)>a[i])

}printf("%d

",ans);

}

t2

時間限制: 1000 ms  空間限制: 128000 kb  具體限制  

題目描述

leo是乙個快樂的火星人,總是能和地球上的oiers玩得很high。

2012到了,leo又被召回火星了,在火星上沒人陪他玩了,但是他有好多好多積木,於是他開始搭積木玩。

火星人能製造n種積木,積木能無限**。每種積木都是長方體,第i種積木的長、寬、高分別為li、wi、hi。積木可以旋轉,使得長寬高任意變換。leo想要用這些積木搭乙個最高的塔。問題是,如果要把乙個積木放在另乙個積木上面,必須保證上面積木的長和寬都嚴格小於下面積木的長和寬。這意味著,即使兩塊長寬相同的積木也不能堆起來。

火星上沒有電腦,好心的你決定幫助leo求出最高的塔的高度。

【提示】

每種積木都可以拆分成高度分別為li、wi、hi的三種積木,另兩邊作為長和寬,保證長》=寬。

輸入第一行,乙個整數n,表示積木的種數

接下來n行,每行3個整數li,wi,hi,表示積木的長寬高

輸出一行乙個整數,表示塔高的最大值

樣例輸入

sample input1:

110 20 30

sample input2:

26 8 10

5 5 5

sample input3:

531 41 59

26 53 58

97 93 23

84 62 64

33 83 27

樣例輸出

sample output1:

40sample output2:

21sample output3:

342

資料範圍限制

對於30%的資料 n<=8

對於100%的資料 n<=3000,最後答案不會超過32位整型

思路:標答:動態規劃。

騙分:暴力dfs.

附上dfs30分**tle

#include #include 

using

namespace

std;

int n,a[3002][3],ans=0

,mina;

const

int inf=999999999

;void swap(int a,int

b)void dfs(int l,int w,int

high)

for(int i=1;i<=n;i++)

}int

main()

dfs(inf,inf,0);

printf("%d

",ans);

}

100分**:

#include #include 

#include

struct

nodea[

10001

];int max(int a,int

b)int min(int a,int

b)bool

bdx(node c,node d)

intmain()

std::sort(a+1,a+3*n+1

,bdx);

for(int i=1;i<=3*n;i++)

f[i]=a[i].h;

for(register int i=3*n;i>=1;i--)

for(register int j=i+1;j<=3*n;j++)

if(a[i].wa[j].l)

f[i]=max(f[j]+a[i].h,f[i]);

for(int i=1;i<=3*n;i++)

ans=max(ans,f[i]);

printf("%d

",ans);

}

t4

時間限制: 1000 ms  空間限制: 128000 kb  具體限制  

題目描述

馬上假期就要到了,thu的神犇leopard假期裡都不忘學霸,現在有好多門功課,每門功課都耗費他1單位時間來學習。

他的假期從0時刻開始,有1000000000個單位時間(囧rz)。在任意時刻,他都可以任意一門功課(編號1~n)來學習。

因為他在每個單位時間只能學習一門功課,而每門功課又都有乙個截止日期,所以他很難完成所有n門功課。

對於第i門功課,有乙個截止時間di,若他能學完這門功課,他能夠獲得知識pi。

在給定的功課和截止時間下,leopard能夠獲得的知識最多為多少呢?

輸入第一行,乙個整數n,表示功課的數目

接下來n行,每行兩個整數,di和pi

輸出輸出一行乙個整數,表示最多學得的知識數

樣例輸入

3

2 10

1 51 7

樣例輸出

17

【樣例說明】

第乙個單位時間學習第3個功課(1,7),然後在第二個單位時間學習第1個功課(2,10)

資料範圍限制

10% n<=25

60% n<10000

100% 1<=n<=100000,di、pi<=1000000000

最後的答案可能超過32位整型

思路:標答:最小堆

接近標答:貪心。

附上80分貪心**(tle+re)

#include #include 

#define rr register

bool time[100001

],bj;

struct

nodea[

100001

];inline

bool

bdx(node c,node d)

intmain()

else

}printf(

"%lld

",ans);

}

目前這道題還沒ac...

總結 2019中山紀中資訊學夏令營 8 2

今天又是模擬賽的一天 總分 100 20 0 20 140 排名 99 157 t1佳餚,看了看n 10,萌生了 的想法,想都沒想直接寫了乙個超長的水 後來測試竟然真的ac太n了 很佩服我初生牛犢不怕虎的毅力orz 後來想著要是不行咋辦,所以又寫了乙個正常人的遞迴,也可以a t2取數遊戲,一開始硬沒...

總結 2019中山紀中資訊學夏令營 8 13

相比昨天今天的題異常愉悅 賽時 t1 是簽到題嗎?小r排名倒數第k,那麼他就排名正數第n k 1,將n個學生的成績從小到大排個序,再將小於等於小r 除了他自己 的成績輸出 難道會有坑?貌似沒有 祈求沒有吧 t2 字串比較的話,我只會雜湊和kmp,雜湊走起 將字串雜湊後,比較1i和n i 1n的雜湊是...

1 17 1 28中山紀念中學培訓總結

這是我第一次來紀中培訓,在這個高手雲集的地方,我感受到了自己的渺小。比我優秀的人多了去了,這讓我意識到人外有人,天外有天,也激發了我奮鬥的動力。在一次次的全力以赴的比賽中,我收穫了新的知識和技巧,即使很疲勞,但這個過程是快樂的。這裡的訓練方式是我前所未見的 早上做比賽,下午講題,晚上改題。所以需要我...