A題
一個01矩陣支持對某行操作循環左/右移,問最少操作多少次可以讓某一列都是1。
算法分析:
枚舉每一列,然后對每一行二分求出該行所需操作數。
http://codeforces.com/contest/229/submission/2277260
B題
求一個圖(V<100,000)的單源最短路,其中某些點在某些時段不能走。時段總數不超過100,000。
算法分析:
對于時段要用map之類的東西預處理一下,然后直接求最短路即可。
(本沙茶居然NC到用并查集在線處理 = =,根本就沒有更新什么的,在線個P啊)
http://codeforces.com/contest/229/submission/2283323
C題
一個點數為1,000,000的完全圖,其中有m條邊是紅色的,剩下的全是藍色的。問由完全紅色或藍色組成的三元環有多少個。
算法分析:
一開始的思路是在bfs樹上統計,但是沒有弄出來,其實就是對每個點的紅/藍邊度數進行乘法就可以了.... 弱死....
http://codeforces.com/contest/229/submission/2289768
D題
將n(n<5,000)個數字按連續區間分組,前一個區間必須小于等于后一個區間,問最大的分組數。
算法分析:
之前想了好幾個方法(包括四邊形不等式什么的),都需要數據結構維護,爆空間。。。
今天想到利用決策單調性就可以直接搞成O(n^2)的。
dp[i][j]表示前i個數字分成j組,最后一個區間的最小值。那么對于某個i,dp值一定隨著j的變化單調變化。
所以記錄一下上一次的決策就可以了...
http://codeforces.com/contest/229/submission/2294687
E題
題意。。。。額。。。。。
做法就是。。。 把有“爭議”的組拿出來DP(相當于n個組,選k個爭議商品),DP[i][j]就是前i個,選擇j個爭議商品的拿到最大值的概率。
對于第i個,只有選爭議商品和不選兩種選擇。和背包一樣。
http://codeforces.com/contest/229/submission/2299791
posted on 2012-10-03 14:47
西月弦 閱讀(385)
評論(0) 編輯 收藏 引用 所屬分類:
解題報告