原创 BZOJ 2330 [SCOI2011]糖果 - 差分約束

發現篇博文講差分約束講的挺好 http://www.cppblog.com/menjitianya/archive/2015/11/19/212292.html 照着文章自學了一遍,發現這道題就是一道裸題嘛。 設一個超級源,表

原创 BZOJ 1485 [HNOI2009]有趣的數列 - 卡特蘭數

關於卡特蘭數的介紹 ->http://blog.csdn.net/hackbuteer1/article/details/7450250 (其中第一道題就是這道題的翻版) 首先將2n個數排列爲序列A,從前向後選出n個作爲奇數項

原创 BZOJ 4236 JOIOJI - 玄學亂搞

推出個公式就成了大水題了,關鍵這個公式對於蒟蒻來說太難想了。 sum爲前綴中各個字母個數,假設一段區間[j,i]滿足條件,則有: sumO[i]−sumO[j−1]=sumI[i]−sumI[j−1]=sumJ[i]−sumJ

原创 BZOJ 1430 小猴打架 - prufer編碼

prufer編碼和無根樹的轉化問題: 樹化prufer:在葉子節點中尋找編號最小的節點,將與之相連的父節點加入prufer隊列裏,然後刪去該葉子節點,直至圖中只剩下2個節點,於是prufer數列共有n-2位 prufer化樹:將不

原创 BZOJ 3155 [Hnoi2013]數列 - 樹狀數組/線段樹區間加

如果用線段樹的話,做法很好想。 以i爲下標記錄Si ,那麼ai 被Si 到Sn 所含,每次修改則將Si 到Sn 的每一個S減去修改的差值即可。 時間:624 ms #include<iostream> #include<cstr

原创 UVa 11134 Fabled Rooks 虛擬的車 - 貪心+思維

給一個n x n的棋盤,要求在上面放n個車且相互不攻擊,而且對於第i個車要求必須在給定的矩形中(每個車所對應的矩形已給出),求一組滿足的解,無滿足的情況輸出”IMPOSSIBLE” 首先考慮拆點,將二維座標拆成x軸和y軸的兩組

原创 BZOJ 2789 Letters - 貪心+樹狀數組

首先考慮這樣一個結論:對於第二個串的一個字母X(此字母是第num次出現),要保證交換最小次數,那麼第一個串一定是第num個X移到此位置。然後按此編個號即可完成預處理。 這裏B串的編號爲1…n,問題轉化爲給出一個排列然後交換到升序

原创 BZOJ 1996 合唱隊 - 區間DP(以及DP注意事項)

很快看出來是區間dp,搞了個O(n^3)的dp方程,0/1狀態表示當前區間的首/尾作爲末尾,然後搞記憶化搜索半天沒搞出來,還得搞個RMQ,於是百度了題解(爲毛題解都長的一樣,還都是WA的。。。這羣人抄也不抄仔細點。。。) 題解大概就是通過

原创 UOJ 117 歐拉回路 - 歐拉回路

一道裸題,WA了兩屏。。。 先貼出基本概念: http://www.cnblogs.com/luyingfeng/p/3877338.html · 無向圖 歐拉通路:有兩個或者沒有奇度數的節點的連通圖;若有則一定是一個奇節點

原创 BZOJ 3072 Two Cakes - 記憶化搜索(dp狀態優化)

首先基礎dp方程很好寫: 1.若a[i]==b[j] dp[i][j]=min(dp[i-1][j],dp[i][j-1])+1 2.若a[i]!=b[j] dp[i][j]=dp[i-1][j-1] 時間複雜度O(n2) ,

原创 BZOJ 1856 [Scoi2010]字符串 - 卡特蘭數推廣

先mark一下別人博客: 卡特蘭數的推導(用01序列推導的,過於抽象): http://blog.csdn.net/youwuwei2012/article/details/38904839 (好像還有嚴格證明,只不過看

原创 BZOJ 1263 [SCOI2006]整數劃分 - 高精度乘法

考慮不是劃分成整數,而是劃分成任意實數 設我們將n劃分成了x個正實數之和 易知當這x個數相等時答案是最優的 那麼每個數都是nx ,答案是(nx)x 設y=(nx)x 則有lny=x[lnn−lnx]

原创 BZOJ 1012 [JSOI2008]最大數maxnumber - 單調隊列/單調棧

看了hzw學長的博客才發現自己這麼多年一直把單調棧誤作單調隊列/摔 單調棧很好寫啊,大概就是維護一個單調遞減的棧,且元素id單調遞增,每次二分查pos即可。 單調棧除了直接維護的值外,一般還有一個單調遞增的id的值,且id越大越有

原创 BZOJ 1823 [JSOI2010]滿漢全席 - 2-sat

好裸的一道題。 建邊的思路,對於一個評委來說,設一個材料A選h,B選m,那麼若A選m的話,B必須選m,B選h的話,A必須選h(因爲兩者之一要滿足被選) 2-sat的關鍵思路就是找出一個被選,另一個必須被選的這樣的約束關係。 還有

原创 BZOJ 1997 [Hnoi2010]Planar - 2-sat

由歐拉公式:n-m+r=2,n個頂點,m條邊,r個面 對於簡單極大平面圖,3r=2m (每個面由3條邊組成,一邊被2個面共享) 代入得 m=3n-6 通過m<=3n-6減枝,將m控制在1000以內。 平面圖,即沒有