原创 POJ1410(線段矩形相交--坑多)

判斷矩形和線段是否相交,線段在矩形內也算   前幾題一直以爲判斷線段相交只需要跨步實驗就行了,這題是個例外,因爲這題相交可以是端點相交所以叉乘那裏條件是 >= eps(注意這裏的等號) 這就導致如果有兩條線段是在同一直線上的但是沒有重合部

原创 hdu5934(tarjan縮點)

一堆炸藥桶放在平面上,每個炸藥爆炸範圍不同,點燃每個炸藥花費不同,求引爆所以炸藥的最小花費 枚舉任意兩個炸藥桶建立單向邊,進行縮點,被縮成同一點的幾個炸藥桶說明點燃這幾個炸藥桶的任意一個都能把這一片都引爆。 縮完點後,建立一個新的圖,並把

原创 FJNU第二十二屆低年級程序設計競賽題解

問題 A: 逃跑路線 時間限制: 1 Sec  內存限制: 128 MB 題目描述 n個人在w*h的監獄裏面想要逃跑,已知他們的同夥在座標(bi,h)接應他們,他們現在被關在(ai,1)現在他們必須要到同夥那裏纔有逃出去的機會,這n個人又

原创 poj2151(概率dp)

有T組隊,m道題目,給出每組隊過每道題的概率,求所以隊伍至少通過一題,且冠軍隊伍至少做n題的概率 問題轉化爲所有隊伍至少過一題的概率減去所以隊伍至少過一題且所有隊伍至多過n-1題的概率 dp[i][j][k]爲第i支隊到第j題通過k題的概

原创 HDU - 4035(樹形概率dp+分離係數)

有一個n個結點的樹形迷宮,在每個結點有概率被殺,有概率逃出,否則隨機選擇一條邊進入下一個結點,若被殺則回到結點一重新走迷宮,問逃出迷宮所走的邊數期望 dp[i]爲點i逃出的期望 和ZOJ - 3329類似dp方程中含有dp[1]而dp順

原创 poj3281(網絡流模板)

EK算法:參考博客 這題建圖很巧,具體怎麼建圖是看的這篇博客:最大流+匹配+拆點 由於我是用鄰接表建圖的,每次找到增廣路要回溯更新,不僅要記錄增廣路的前驅結點,由於鄰接表的特殊性還要記錄前驅結點的edge下標,這樣纔有辦法更新。 #in

原创 CodeForces - 364E(二維分治)

給出一個n*m的矩形,問有多少個子矩陣包含1的個數爲k 參考博客 好難的一題分治。。基本分治思路是不斷切割中線,一刀水平,一刀垂直的切 每次切割完後枚舉割線兩邊的矩形包含的1的個數,例如如下這幅圖,是按水平中線分割完的,然後先枚舉矩形的

原创 hdu6395(快速冪)

分段的時候邊界用這個公式計算:ll j = P/i==0?n:min(n, P/(P/i)); #include <cstdio> #include <cmath> #include <cassert> #include <cstri

原创 poj6313(構造)

構造一個矩陣,任意子矩陣中沒有四個點都爲1 先看構造的公式: for (int i = 0; i < p; i++)         for (int j = 0; j < p; j++)              for (int k

原创 CF730J(揹包)- 省賽選拔

有n個瓶子,每個瓶子有a[i]的水,每個瓶子容量爲b[i],每移動一個單位水小號1秒,問在使用最少個瓶子的前提下,移動水至少需要多少秒 省賽選拔前沒做揹包專題,後來做了揹包專題,現在看這題還是毫無頭緒。。。 狀態實在太難想了,還是隻會參考

原创 hdu6438(優先隊列)

有一個物品每天的價格不同,每天可以選擇以當天的價格買入或賣出問n天后最多掙多少錢以及最少的交易次數   做法是把每天的價格丟到隊列裏,如果當天的價格高於隊列top就把top彈出,更新總收益,並把當天價格push兩次,這裏push兩次目的是

原创 codeforces1028C (矩形相交)

有n個矩形,找出其中一個矩形的一個點,滿足這個點至少包含在n-1個矩形內   處理一下前綴交,也就是矩形1-2的交矩形k, 再求矩形k與矩形3的交矩形。。。 a[i]是前綴交,b[i]是後綴交 假設p[i]這個矩形與其他矩形都沒交矩形,那

原创 fjut3467(gcd+dp)

題目鏈接 求一個序列最長不互質子序列 第一層循環遍歷序列,第二層遍歷該數的因子,轉移方程爲f[i] = max(f[i], pre[prime[j]]) f[i]表示到i位時的最長子序列長度,prime[j]是a[i]的質因子,pre[p

原创 poj2886 (約瑟夫環,樹狀數組)

n個人圍成圈,每個人手上有一個數字,最開始k跳出圈,如果k手上的數num是正數,則向左num個人出圈,負數就向右,直到所有人都出圈,得分最高的是第(1-n中因子數最多的數)次跳出的人 首先處理1-n中因子最多的數,有個名詞叫反素數,不管他

原创 hdu6299(貪心)

很好的一題貪心,自己死活想不出來怎麼貪,一直去想幾種特殊情況,比如(()()) , (()()())之類的,繞進死衚衕了,這題關鍵是把已經匹配好的括號去掉,只考慮剩餘部分怎麼拼接才能最大化 參考博客 看完這個博客思路後自己實現的時候除了點