得分:\(30+5+0=35\)(考得真不咋滴)
以為很簡單,對著這題想了乙個多小時,最後果斷打了個暴力交了... ...
看完題解發現其實也不是很難。
對於\(t=1\)的情況,似乎與一道題目很像:【洛谷3396】雜湊衝突,可以用分塊來做。
對於\(t>1\)的情況,似乎與暴力類似,但是要加乙個玄學的優化。
如果有多種顏色,它們的數目分別為\(c_1\sim c_t\),不難想到,給\(k\)染上數目最少的顏色肯定是最優的。
我們用\(min\)表示\(min(c_i)\)。
則第\(k±xd\)個商品被選中的概率應為\(\prod_^x \frac\)。
因此它對答案造成的貢獻應為\(v_\prod_^x \frac\)。
不難發現,這種方法是近似於\(o(n^2)\)的,肯定會\(t\)飛。
但是,我們必須要注意到,在\(t>1\)時,\(min\)肯定是\(≤\frac2\)的,因此這個式子的值是以指數級降低的),在大約\(60\)次操作後對答案就不會造成任何影響了。
所以,我們就可以將操作次數與\(60\)取\(min\),這樣跑起來就十分輕鬆了。
綜上所述,可以對\(t\)進行分類討論,然後就是亂搞。
#include#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
#define uint unsigned int
#define ll long long
#define ull unsigned long long
#define swap(x,y) (x^=y,y^=x,x^=y)
#define abs(x) ((x)<0?-(x):(x))
#define inf 1e9
#define inc(x,y) ((x+=y)>=mod&&(x-=mod))
#define n 100000
using namespace std;
int n,a[n+5];
class fio
}s2;
int main()
return 0;
}
有一道弱化版的題目:【bzoj1912】[apio2010] patrol 巡邏。
這題的正解似乎是乙個很複雜的樹形\(dp\)。
但是,太複雜的動態規劃我寫不來,因此我用的是另外一種做法,雖然照樣要用樹形\(dp\)。
不難想到,如果要從乙個點到達另乙個點,選擇的肯定是樹上最長鏈(即樹的直徑)的兩個端點。
於是,我們只要每次求出樹的直徑,更新答案,然後將這條直徑上所有邊的邊權全部改為原來的相反數即可。
至於為什麼要取相反數,這是因為每條邊必須經過一次,這樣一來如果再選一次這條邊,就會與原先的抵消,避免一條邊被選擇兩次。
有乙個很重要的問題就是如何求樹的直徑。
#include#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
#define uint unsigned int
#define ll long long
#define ull unsigned long long
#define swap(x,y) (x^=y,y^=x,x^=y)
#define abs(x) ((x)<0?-(x):(x))
#define inf 1e9
#define inc(x,y) ((x+=y)>=mod&&(x-=mod))
#define n 2000
#define logn 15
#define add(x,y,z) (e[++ee].nxt=lnk[x],e[lnk[x]=ee].to=y,e[ee].val=z)
#define dis(x,y) (dis[x]+dis[y]-dis[lca(x,y)])
using namespace std;
int n,m,k,ee=0,lnk[n+5];
struct edge
e[2*n+5];
class fio
max1[x]+max2[x]>maxans&&(maxans=max1[x]+max2[x],res=x);
}public:
inline int getans()
}treedp;
int main()
{ register int i,j,x,y,z,t,ans;
while(f.read(n),f.read(m),f.read(k))
{for(i=ee=ans=0;i<=n;++i) lnk[i]=0;
for(i=1;i說實話,一看到多項式與行列式我就沒心情做下去了... ...
題解就等以後有時間\(a\)掉了再補吧。也許永遠都沒時間。
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張,他們等了很久也沒有等來失主,於是決定把錢平分。但錢可能無法平分。他們先把能夠平分的錢盡量先平分了,使得剩下不能平分的錢盡量少。這些不能平分的錢怎麼辦呢他?他們決定拿去賭場裡面賭一把。他們運氣太好了,那些不能平分的錢變成了雙倍,於是他們就把那個錢分了...