1. 程式人生 > >noip退役賽

noip退役賽

上下午 6 題一起考

自閉了

T1

小明要參加一場比賽,賽制給你一個表格 $p$ ,$p_{(i,j)}$ 表示他在第 $i$ 場比賽前如果輸了 $j$ 場,他這一場贏的概率,他也可以故意輸掉任意多場比賽,求他 $n$ 場比賽後他的最優期望勝場

$n \leq 1000$

sol:

一道很雞湯的題,首先我們可以搞一個 dp ,$f_{(i,j)}$ 表示第 $i - 1$ 場比賽後,前 $i - 1$ 場一共贏了 $j$ 場,第 $i$ 場贏的概率

轉移的時候列舉這次比賽贏了還是輸了,然後還要多加一個“故意輸”的整行轉移

但會發現...最優的情況就是不故意輸

 

T2

$n$ 個物品,$x$ 塊錢,你要買一些物品,求最少剩多少錢

$n \leq 40$

$x \leq 10^9$

sol:

折半搜尋裸題,先搜前 20 個雜湊起來,再搜後 20 個看看最少能多少

 

T3

一個 $w \times h$ 的棋盤,告訴你 $n$ 個子矩形的最大值,並告訴你整張棋盤所有數不超過 $m$,求有多少不同的棋盤,膜 $10^9 + 7$

$n \leq 10 \space \space \space w,h \leq 400$

sol:

不相交的情況很好做,相交而且數不相同的情況也很好做,相交而且數相同的話記一下交了多少點然後狀壓 dp 就可以了

但 wxj 用掃描線過掉了。。。

 

T4

一棵帶邊權的樹上有一個點 $s$ ,$q$ 次詢問 $a$ 到 $b$ 的最小代價,每組詢問你可以從 $s$ 沿最短路徑走到任意一個點,把路上的邊權為 $0$,再算最小代價,詢問獨立

sol:

首先可以想到,可以把 $s$ 當做根避免分類討論...

臥槽我兩個小時沒想出來

然後倍增維護一下最小字首和就可以了

 

T5

爆搜

 

T6

每次會給一個點到根染色,染色完求每個點被染過多少不同的顏色(假設顏色不會互相覆蓋)

sol:

離線,把同色的詢問排在一起,同色的詢問相當於一個鏈並

鏈並的話...我們按 dfs 序排序,相鄰兩個點一組,u -> 1 v -> 1 lca -> -1

然後就是一個鏈加,所有鏈加之後單點詢問

然後用各種資料結構維護一下就可以了

 

考場上不要虛啊....

相信 noip 是很簡單的

嗯 加油