dfs 概率 Jzoj P2941 賄賂

2022-07-24 05:54:16 字數 1210 閱讀 2042

description

議會裡有n個議員,每個議員有兩個屬性:級別和忠誠值。

現在你要在議會通過乙個議案,乙個議案通過當且僅當嚴格超過一半的議員投贊同票。乙個議員投贊同票的機率就是忠誠值除以100。

議員們有著奇怪的癖好:他們都喜歡吃糖。你帶了k個糖果用來賄賂議員,每個糖果的作用是使得某個議員的忠誠值增加10。賄賂要在投票開始前完成。(注意任意議員的忠誠值不可能大於100)

投票之後,如果議案沒有通過,你就會很暴力地把投了反對票的所有議員暗殺掉。假設你要暗殺的議員集合是s,那麼成功率就是a/(a+b);其中a是給定的常數,b是s中所有議員級別的和。當暗殺成功後你的議案就會獲得通過。

現在要求最優賄賂方案下最大的成功機率是多大。

input

第一行三個整數n,k和a,意義如題目所述;

接下來n行每行兩個整數ai,bi分別表示每個議員的級別和忠誠值。

output

乙個實數表示可能的最大成功機率。保留6位小數。

sample input

5 3 100

11 80

14 90

23 70

80 30

153 70

sample output

0.962844

data constraint

hint

對於40%的資料,保證n,k≤5

對於100%的資料,保證n,k≤9,a,ai≤9999,bi是10的倍數

1 #include 2 #include 3 #include 4

#define n 10

5using

namespace

std;

6int

n,k,a,a[n],b[n];

7double

ans;

8double work(int x,int y,intb)9

11return

1.0*b[x]/100*work(x+1,y+1,b)+1.0*(1-1.0*b[x]/100)*work(x+1,y,b+a[x]);12}

13void dfs(int x,int

y)14

21for (int i=0;i<=y;i++)

2225 b[x]-=i*10;26

}27}28

intmain()

29

dfs 樹的直徑 Jzoj P1737 刪邊

description 給出n個點,n 1條邊的連通圖.現要求刪除一條邊,使得連通塊的直徑總和最大.所謂連通塊的直徑是指連通塊中最遠兩點之間的距離。問 直徑總和最大是多少?input 檔名為 delete.in 第一行正整數n.接下來n 1行.每行兩個數,a,b,len表示a,b 1 a,b n 有...

概率(2) 硬幣

平均需要拋擲多少次硬幣,才會首次出現連續的 2個正面?首先,讓我們來考慮這樣乙個問題 k 枚硬幣擺成一排,其中每一枚硬幣都可正可反 如果裡面沒有相鄰的正面,則一共有多少種可能的情況?這可以用遞推的思想來解決。不妨用 f k 來表示擺放 k 枚硬幣的方案數。我們可以把這些方案分成兩類 最後一枚硬幣是反...

matlab雜記2概率統計

1,函式binornd可以產生二項分布隨機資料 r binornd n,p n,p為二項分布的兩個引數,n,p 大小相同。r binornd n,p,m m指的是隨機數的個數,與r同維數,r bonornd n,p,m,n m,n分別表示r的行數和列數 2,normrnd可以產生正態分佈的隨機資料。...