原创 Printer Queue(優先隊列)

題意:給你n,m其中n是指打印文件的份數,m是你要打印的文件在隊列中的位置,然後再給你n個數字代表每份文件的優先級,優先級越高的越先打印,如果當前隊列隊首文件優先級不是最高則將其放在隊列最後,每份文件打印需一分鐘,問打印到你的文件

原创 atcoder 168 C

題意:給出時針和分針的長度a,b,然後再給出當前小時數和分鐘數,叫算出當前時針和分針兩針尖的距離。 思路:先算出兩針的夾角,在根據餘弦定理算第三邊即可。 難點:pi的表示方法。 ac代碼: #include <cstdio> #i

原创 二分答案題型小結

二分答案類型的題在之前不經常做所以儘管訓練題比較簡單,但還是做起來有點吃力。 二分答案顧名思義就是通過不斷二分檢驗所有可能的答案值是否滿足題目條件,直到選出我們需要的答案(個人理解。。。) 個人感覺二分答案問題都是在研究的是某種意

原创 堆排序(待修改版)

剛上完課,寫了一大堆不明所以的堆排序,因爲oj不能登所以還沒驗證正確性,先湊合着(反正也不常用)。 本代碼是以小頂堆爲標準 代碼: #include <iostream> #include <cstdio> #include <c

原创 大盜阿福(動態規劃)

突然用動態規劃的方式思考問題還不適應。。。 思路:對於第i家店鋪都有兩個選擇:盜 or not。如果不盜的話那麼第i家店鋪的現金其實就等於前i-1家店鋪的現金,如果盜的話那麼就等於前i-2(因爲不能相鄰)家店鋪與第i家店鋪的現金和

原创 開餐館(基礎dp)

思路: 將第i家店與前i-1家店分別比較位置如果位置合法,則判斷到該店爲止的前面所有店的總利潤加上第i家店的利潤和是否大於當前i家店所取得的利潤和(因爲前面有些店可能彼此間位置不合法,造成了不同位置店能取得的總利潤不同),以此類推

原创 赦免戰俘(遞歸)

題目鏈接 思路: 將圖分成四塊可以發現左上角的一塊全爲0,然後另外三塊變化相同,所以分塊分別遞歸另外三塊即可。 ac代碼: #include <bits/stdc++.h> using namespace std; #define

原创 單詞方陣(搜索)

題目鏈接 思路: 很直接的思路,先遍歷找到單詞的第一個對應字母,然後再遍歷該字母的8個方向,判斷第二個對應字母方向,再根據該方向判斷是否能夠找到其他幾個對應字母即可。 ac代碼: #include <bits/stdc++.h>

原创 數字組合(01揹包)

就是01揹包小小變形一下就不太會做了。。。。 思路: 當前和的方案數等於當前和減當前和當去當前正數的方案數,如:當前正數爲2,和爲5的方案數就等於3(5-2)的方案數,和爲3的方案數又等於1(3-2)的方案數。又因爲在每一種方案中

原创 填塗顏色(搜索求連通塊)

題目鏈接 思路: 因爲數字爲1的連通塊一定封閉,所以如果在四條邊上出現的0一定是在封閉圖形外的,所以我們可以遍歷四條邊緣上的0標記其所在的連通塊,最後沒被標記的0則爲在封閉圖形裏的0. ac代碼: #include <iostre

原创 最大上升子序列和(基礎dp)

寫這篇博客一是因爲這道題比較經典,而是爲了水博客。 思路:和開餐館 很像(其實就是改變了一下判斷條件) 判斷前i項的最大上升子序列和就是第i項的值加上前面i-1項最大上升子序列和中比第i項小的且和最大的序列和,如:第i項值爲5,前

原创 湫湫系列故事——減肥記I(完全揹包)

中文題意不用解釋。 思路: 因爲沒有認真看輸入輸出,所以直接先用了01揹包試水然後果然發現樣例都不能過,認真看了樣例之後才發現每樣吃的都可以無限次的吃,所以這是個完全揹包的題,直接上完全揹包板子就完了。 ac代碼: #includ

原创 飯卡(01揹包+思維)

難得的一道中文題不用那麼費力翻譯題意。 實話這道題看了題以後就直接查的題解(因爲太菜) 正解思路: 因爲餘額小於5以後就不能在使用飯卡,所以我們可以直接對餘額-5進行01揹包求最大使用,但因爲還要求餘額最小,就想在餘額最接近5的時

原创 Bone Collector(01揹包模板)

題意:正常的01揹包套路題意 介紹兩種模板代碼: 一維數組AC代碼(優先推薦): #include <iostream> #include <cstdio> #include <cstring> #include <algorit

原创 求最小生成樹(Prim算法)swust oj#1075

還是prim模板只不過因爲要存路徑讓這道題有了一點難度。 思路:prim模板再用一個輔助數組存每條頂點間的最短路徑的起點。 附代碼: #include <iostream> #include <map> #include <cst