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