noip模擬賽 鑽石

2022-05-01 09:15:10 字數 790 閱讀 4298

分析:用裸暴力可以得60分,每次dfs,看第i個盒子到底有沒有鑽石就行了.其實這很像0/1揹包問題,只是多了乙個m的限制.這要怎麼辦呢?因為概率是可以加減的,所以可以先不考慮m的限制,求出概率,然後dfs一遍把money < m的概率給減掉就好了.

正解是meet in the middle,dp+dfs跑的比正解還快.

如果有的題多個限制不好處理,但是要求的東西滿足線性性,那麼可以先求出所有的情況的答案,然後把不滿足限制的給減掉.

#include #include 

#include

#include

using

namespace

std;

int n, m, v[40], p[40

];double f[40][40

];void dfs(int dep, double gailv, int sum, int

num)

dfs(dep + 1, gailv * (double)p[dep] / 100, sum +v[dep], num);

dfs(dep + 1, gailv * (double)(100 - p[dep]) / 100, sum, num + 1);}

intmain()

dfs(

1, 1.0, 0, 0

);

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

printf(

"%.3lf\n

", f[n][i]);

return0;

}

noip模擬賽 密碼

表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...

NOIP模擬賽 老師

題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...

NOIP模擬賽 分錢

題目描述 兩個人在街上撿到了一些錢,這些錢共有n張,他們等了很久也沒有等來失主,於是決定把錢平分。但錢可能無法平分。他們先把能夠平分的錢盡量先平分了,使得剩下不能平分的錢盡量少。這些不能平分的錢怎麼辦呢他?他們決定拿去賭場裡面賭一把。他們運氣太好了,那些不能平分的錢變成了雙倍,於是他們就把那個錢分了...