1. 程式人生 > >某九校聯考模擬試題D1

某九校聯考模擬試題D1

T1:餐館

題目描述:

共有 n 種食材,一份食材 i 需要花 ti 小時不間斷地進行播種,施肥,直至收穫。當然,一份食材 i 是可以直接賣掉得到 wi 塊錢的。招牌菜共有 m 種,一份招牌菜 i 需要消耗一定的食材,花 Ti 小時不間斷地來烹飪,叫賣,並最終賣出得到 Wi 塊錢。整個季度換算下來一共有 Tmax 小時可供你使用,銅企鵝需要在這期間賺到最多的錢,這樣他才有足夠多的錢來 steam 剁手,或者氪金手遊

輸入格式:

第一行一個整數 T,表示資料組數。

令 i 表示為當前資料內行數。

第一行三個整數 n, m, Tmax,含義如題所示。第二行至第 n + 1 行,每行兩個整數 ti−1, wi−1,含義如題所示。

第 n + 2 行至第 n + m + 1 行,每行兩個整數 Ti−n−1, Wi−n−2,含義如題所示。

第 n + m + 2 行至第 n + 2m + 1 行,每行 n 個整數,第 j 個數 dj 表示招牌菜 i − n − m − 1 需要 dj 個食材。

輸出格式:

對於每組資料,輸出一行一個整數,表示你所能賺到的最多的錢。

樣例:

略~

資料範圍:

對於 100% 的資料,保證 0 < ti, Ti ≤ Tmax ≤ 5000, 0 ≤ wi, Wi ≤ 109,每份招牌菜使用的食材的個數總數不超過 10。

完全揹包水題。scanf讀入超時卡成50分= =

T2:烯烴

題目描述:

給你一棵樹,一些邊有標記,對於每條有標記的邊,在樹中找到包含這條邊的一條最長鏈,並輸出長度。

輸入格式:

第一行一個整數 id 表示測試點的編號。多組資料,第二行一個整數 T 表示資料組數。對於每組資料,第一行兩個整數 n, m 表示節點的個數,和被標記的邊的個數。我們規定 1 是根,第二行 n − 1 個整數給出 2 ∼ n 父親的編號,保證f ai < i。第三行 m 個整數範圍在 [2, n] 表示哪個點的父邊被標記。

輸出格式:

對於每組資料輸出一行 m 個整數,必須與輸入的邊順序一致,給出的是在這條邊必選的情況下樹中最長鏈的長度。

樣例輸入:

0 1 10 3 1 2 3 1 4 6 7 3 8 10 7 9

樣例輸出:

8 8 6

資料範圍:

n,m<=1e5,T<=100

裸題。求每條邊所在最長鏈的長度。詳見直徑求法,最後再記一個從上面下來的最長長度,記得更新在dfs前。

坑點:最後一個輸出沒有空格,m=0不輸出回車= =

然而考試的時候並不知道這種解法,菊花10分。

T3:三米諾

題目太難copy,自行百度= =

資料範圍:10^40000。

解法很詭,打表高斯消元找規律?這道題對我的貢獻僅僅是複習一下高斯消元,瞭解十進位制快速冪而已。

簡要提一下十進位制快速冪:

例如我們要求a^233666=a^200000*a^30000*a^3000*a^600*a^60*a^6

我們維護一個a^10n底數,每次做的時候ans*=base^num[i]。

最後得分:50+10+10=70

2道簽到題。。。整個人的飄了o(╥﹏╥)o