bzoj2720 Violet 5 列隊春遊

2022-03-03 22:37:46 字數 1054 閱讀 4162

我們有夢想,我們可以暴算!

列舉每個人i,再列舉他的視野k,然後組合數!300的階乘。a了。

1 #include 2 #include 3

#define n 305

4using

namespace

std;

5int

n,a[n],num[n];

6long

double

ans,a[n][n];

7int

main()

13 sort(num+1,num+n+1

);14

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

15 a[i]=lower_bound(num+1,num+n+1,a[i])-num;

16for(int i=0;i<=n;i++)

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

26 ans+=n*a[a[i]-1][n-1]/a[n][n];27}

28 printf("

%0.2lf\n

",(double

)ans);

29return0;

30 }

view code

我們有理想,我們要推倒o(n)的式子。

我們考慮j什麼時候會對i做出貢獻,首先我們將高度大於等於i的亂排,然後把j放到i的前面,然後剩下的再亂排,這樣j一定會對i做出貢獻,於是我們考慮怎麼計算,這相當於我們先把最後剩下的放進去,然後讓把j和高度大於等於i的一起放進去,這裡強制要求j在i前乙個,於是就是$\frac^}+1$,s表示嚴格小於i的個數,然後再化簡一下,就是$\frac$,於是我們就o(n)的完成了這道題!

1 #include 2

int n,buc[1000];3

double

ans;

4int

main()

11 printf("

%0.2lf\n

",ans);

12 }

view code

Bzoj2720 violet5列隊春遊

題意 題解 n 3的做法很好想,直接列舉小朋友,長度和位置暴力計算就可以了 然後我們可以發現計算位置不同長度相同的答案時有很多相同的計算 所以我們可以不去列舉位置,而對每個長度,所有位置在這個長度之前的概率均為0,因為即使前面全比他小長度也到不了我們當前的長度,而之後的位置概率都是相同的,這樣就可以...

BZOJ2709 Violet 1 迷宮花園

這題是許可權題,版權問題不放題意,我來簡要的說一下 給出乙個迷宮,有起始點終點,可以上下左右走,移動的耗時是1,可以改變上下走的耗時為v,給出乙個總耗時l,問在總耗時中的v是多少 顯然這題可以先二分答案v然後跑寬搜或者spfa來判斷,還是蠻簡單的。這題的難點就在於,看到v的範圍很小 0 v 10 就...

BZOJ2724 Violet 6 蒲公英 分塊

n 個數,m 次詢問。n leq 40000,m leq 50000 看完題目 呀這不是莫隊裸題嗎?然後經過一波思 forever 考 piano 終於會做了。首先請你自行證明乙個結論 在詢問區間內任取一段子區間,詢問區間內的最小眾數一定是子區間的最小眾數或者出現在詢問區間除掉子區間的其他地方。於是...