BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
生活随笔
收集整理的這篇文章主要介紹了
BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2822: [AHOI2012]樹屋階梯
Time Limit:?1 Sec??Memory Limit:?128 MBSubmit:?779??Solved:?453
[Submit][Status][Discuss]
Description
暑假期間,小龍報名了一個模擬野外生存作戰訓練班來鍛煉體魄,訓練的第一個晚上,教官就給他們出了個難題。由于地上露營濕氣重,必須選擇在高處的樹屋露營。小龍分配的樹屋建立在一顆高度為N+1尺(N為正整數)的大樹上,正當他發愁怎么爬上去的時候,發現旁邊堆滿了一些空心四方鋼材(如圖1.1),經過觀察和測量,這些鋼材截面的寬和高大小不一,但都是1尺的整數倍,教官命令隊員們每人選取N個空心鋼材來搭建一個總高度為N尺的階梯來進入樹屋,該階梯每一步臺階的高度為1尺,寬度也為1尺。如果這些鋼材有各種尺寸,且每種尺寸數量充足,那么小龍可以有多少種搭建方法?(注:為了避免夜里踏空,鋼材空心的一面絕對不可以向上。)?? 以樹屋高度為4尺、階梯高度N=3尺為例,小龍一共有如圖1.2所示的5種
???搭 建方法:
???
Input
一個正整數?N(1≤N≤500),表示階梯的高度
Output
一個正整數,表示搭建方法的個數。(注:搭建方法個數可能很大。)
1??≤N≤500
?
呵呵了..........這種裸的卡特蘭數套一個高精度就出到省選里了.....
http://www.cnblogs.com/candy99/p/6400735.html
直接用上一題的質因子分解,得到答案用個高*低就行了
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; typedef long long ll; const int N=1e4+5; inline int read(){char c=getchar();int x=0,f=1;while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}return x*f; } int n; bool notp[N]; int p[N],lp[N]; void sieve(int n){for(int i=2;i<=n;i++){if(!notp[i]) p[++p[0]]=i,lp[i]=p[0];for(int j=1;j<=p[0]&&i*p[j]<=n;j++){notp[i*p[j]]=1;lp[i*p[j]]=j;if(i%p[j]==0) break;}} } int e[N]; void add(int x,int d){while(x!=1){e[lp[x]]+=d;x/=p[lp[x]];} } struct Big{int d[N],l;Big():l(1){memset(d,0,sizeof(d));d[1]=1;}int& operator[](int x){return d[x];} }ans; void Mul(Big &a,int b){int g=0;for(int i=1;i<=a.l;i++){g+=a[i]*b;a[i]=g%10;g/=10;}for(;g;g/=10) a[++a.l]=g%10; } void Print(Big &a){for(int i=a.l;i>=1;i--) printf("%d",a[i]); } void solve(){for(int i=2*n;i>=n+1;i--) add(i,1);for(int i=2;i<=n;i++) add(i,-1);add(n+1,-1);for(int j=1;j<=p[0];j++) for(;e[j];e[j]--) Mul(ans,p[j]);Print(ans); } int main(){freopen("in","r",stdin);n=read();sieve(n<<1);solve(); }?
?
?
轉載于:https://www.cnblogs.com/candy99/p/6406542.html
總結
以上是生活随笔為你收集整理的BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几款常用的ble调试app(nRF Co
- 下一篇: 一些常用的资料_硬件/系统/等