HNOI2008 bzoj1005 明明的煩惱

2021-08-01 16:16:11 字數 1065 閱讀 3031

把樹轉化為purfer序列,問題就轉化為了把

n 個元素放到n−

2個位置上,有些元素的出現次數有限制,求方案數。

注意答案不取模,可以用指數加減來實現高精度除法。

#include

#include

using namespace std;

#define ll long long

const int maxn=2010,mod=1000;

int n,m,s,tot,a[maxn],vis[maxn],prm[maxn];

struct big

void one()

big operator * (const int &b) const

ret.l=l+1;

if (!ret.a[ret.l]) ret.l--;

else

while (ret.a[ret.l]>=mod)

return ret;

}void out() const

}}ans;

struct inte

inte operator / (const inte &in) const

big get() const

}x[maxn],fac[maxn],tem;

int main()

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

if (y!=-1)

}if (s>n-2)

for (int i=2;i<=n-2;i++)

}for (int i=1;i<=n-2;i++)

}for (int i=1;i<=n-2;i++) fac[i]=fac[i-1]*x[i];

tem=fac[n-2];

for (int i=1;i<=m;i++) tem=tem/fac[a[i]];

tem=tem/fac[n-2-s];

ans=tem.get();

for (int i=1;i<=n-2-s;i++) ans=ans*(n-m);

ans.out();

}

BZOJ1010 HNOI2008 玩具裝箱toy

先把程式放著,週末來更新 華麗的分割線 不想寫題解了。照著網上的題解推一邊即可 注意有的題解最後推倒出來明明是求上 下 凸包的形式,但配的圖卻是下 上 凸包的。不過斜率優化還不是搞的很懂。time limit 1 sec memory limit 162 mb submit 6661 solved ...

BZOJ 1010 HNOI2008 玩具裝箱

看到本題以後,分析了一下,發現是dp,然後看了下資料規模會超時。後來看了hzw的題解才發現是需要斜率優化的,方程是看懂了但是證明還是有點迷迷糊糊。最後,判斷函式是對著hzw的標程打的,剩下自己手擼掉了,程式並不長,但思想很秒。include include include include using...

HNOI2008 BZOJ1010 玩具裝箱toy

time limit 1 sec memory limit 162 mb submit 11686 solved 4946 submit status discuss p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓 縮,其可以將任意物品變成一堆,再放...