原创 30屆寧波市中小學生程序設計競賽複賽(初中組)

第4題-羊羊列隊 來源於寧波市程序設計競賽複賽(初中組) 單個班級內,最優排列方案的不整齊度=(max(Ai)-min(Ai))^2,即按高度進行排序,此時應當最優(感覺是個不等式證明?)。 那麼排列方案的優劣與羊的具體數

原创 九度 1497

九度 1497 面積最大全1子矩陣 先預處理出每行連續1的個數,sum[i][j]表示第i行中到第j列爲止的連續1的個數。 for(int i=1;i<=n;i++) for(int j=1;j<=m;j++)

原创 28屆寧波市中小學生程序設計競賽複賽(初中組)

第4題-迷宮大門 來源於寧波市程序設計競賽複賽(初中組) n≤500,000,顯然對於這麼大的n,O(n^2)的解法都不夠。那麼考慮O(n)或者O(n*lg(n))的解法,動態規劃?貌似可行,但狀態怎麼表示?左對齊?右對齊?除此

原创 HDU 5308

HDU 5308 手工一個個算過去,發現 n=12時,我們可以通過(x+x+x+x)/x*(x+x+x+x+x+x)/x=24,來得到24點。 n=13時,構造(x+x+x)/x*(x+x+x+x +x+x+x+x)/x=24

原创 LA 3514

LA 3514 題意是給一個無向圖,若它是仙人掌,則求出它有多少生成子圖(包括自身)是仙人掌,否則輸出0。仙人掌被定義爲每條邊最多在一個簡單迴路上的連通無向圖。 關於Cactus問題,這裏有篇08年國家集訓隊周冬的論文,比較詳細

原创 HDU 5305

HDU 5305 題意是有n個人,m對朋友關係,朋友可以使在線朋友和離線朋友,對於單個人,他的在線朋友和離線朋友數必須一致,請問有幾種方案。 題目中n並不大,不超過8,那麼暴力一點,用搜索,窮盡所有方案並判斷是否可行,求出可行方

原创 POJ 2318

POJ 2318 計算幾何基礎,叉積的運用,及二分求解。 題目中保證了所有玩具都是在盒子內,並且不會位於邊界上。那麼利用叉積可以判斷出玩具相對於某個邊界的方向,逆時針則在該邊界左邊,順時針則在右邊。然後二分邊界,不斷做叉積,找出

原创 Uva 11354

Uva 11354 題意是給出n個點,m條邊的圖,並有q個詢問(s,t),輸出s到t的最右路徑下的最大邊權值。 用Kruskal先求出最小瓶頸生成樹,並深搜將其轉化爲有根樹,並在同時記錄下每個點的深度和父結點。計算出anc[i]

原创 LA 4487

LA 4487 題意是有n個數,Q個操作,你並不知道這n個數的具體值。操作有三種: 1)I p v,告訴你第p個數值爲v 2)I p q v,告訴你第p個數和第q個數的異或值爲v 3)Q k a1…ak,詢問a1…ak這k個

原创 LA 5713

LA 5713 要求A/B最大,那我們先保證B最小,然後枚舉A。先求出最小生成樹,並在樹上深搜,記錄下maxcost[u][v],即樹上點u到點v之間的最長的邊。 再枚舉A,即枚舉法術邊的兩個端點i和j,刪去樹中i到j路徑上的最

原创 LA 3661

LA 3661 題意是給出一張網格圖,每個點都延伸出橫邊,豎邊,斜邊,每條邊都有一條權值,要求左上角到右下角的道路被隔斷,問最小割。 對於最小割的題目,很自然地想到網絡流,但此題n的範圍並不小,用網絡流效率不高。針對本題的特點,

原创 LA 5237

LA 5237 題意是,摺紙,每次都從左邊向右邊折,折n次,最後展開,要求輸出摺痕。 可以發現,i次的摺痕稱爲Zi,Zi是由Z(i-1)加上Z(i-1)相對摺痕終點順時針旋轉90度兩部分構成的。那麼我們記錄下所有的方向角度,

原创 POJ 3304

POJ 3304 計算幾何基礎,叉積應用 大意是給出n條線段,問是否存在一條直線使得所有線段投影到直線上後存在至少一個公共點。其實就是判斷是否存在一條直線與所有線段相交。 畫圖稍加分析可以發現,如果存在一條直線與所有線段相交,我

原创 LA 3989

Stable Marriage Problem and Propose-and-reject algorithm 有n位男士,n位女士,每個人對於每個異性都有一個排序,表示對他(她)的喜歡程度。現在要求他們兩兩(異性)組成穩定的關

原创 HDU 5316

HDU 5316 題意是給一個數列,有兩種操作,一是詢問[L,R]的最大子序列和,二是改變某個位置的值。單點修改,區間查詢,很顯然的線段樹。關鍵在於,詢問時的最大子序列要求相鄰元素的在原序列中的位置奇偶性不同。 序列的奇偶性根據