原创 動態規劃(1)-------淺談四種揹包

在讓CF的動態規劃折磨了小半年後,藉着這個寒假,決定重新學習動態規劃,這篇博客就給大家介紹一些簡單的而且比較經典的入門動態規劃問題——揹包問題。 揹包有九講,這裏我爲大家淺談四講。 在這裏有一個技巧:動態轉移方程如果用的是上一層的

原创 Codeforces Round #615 (Div. 3)

怎麼說呢,總之Div3還是蠻有意思的吧! Collecting Coins #include<bits/stdc++.h> using namespace std; typedef long long ll; int main()

原创 BFS(9)

BFS(這篇東西主要靠大家慢慢理解感受) 前面陸陸續續的講的都是一些很基礎很容易的算法,這篇講的東西真的是有點難了,並不是板子的問題,而是因爲他太抽象了,全靠讀者自己想象力。可能是小編的水平不夠,真的是有種只可意會不可言傳的感覺,

原创 Codeforces Round #616 (Div. 2)

本來打算寫區間DP的,結果一想到昨天晚上的CF…還是先補一下題,安慰一下自己受傷的心靈… A. Even But Not Even 感覺也就A題友善… 題意:一串數字,去掉幾個數字,讓這個串不能被2整除但是各個位的和可以被2整除。

原创 personal training

Engines 題意:一個平面是,你在(0,0)上,然後給了n個座標,你可以按照任何順序,把某些座標值加在原來的座標值上面,要求到原點的距離最遠!!! 題解:本來暴力枚舉的,結果過了27個節點WA了,然後上網無意翻到學長的代碼,真

原创 樹的直徑(10)

樹的直徑 前面講的那個BFS不知大家懂了沒有,沒關係,不懂慢慢理解吧,這也沒有什麼好辦法。 這篇給大家講一個板子內容。 先說一下樹的直徑是幹嘛的,再上板子穩定軍心: 樹的直徑就是求一棵樹最遠的倆個點的距離。方法就是兩次dfs或bf

原创 CodeForces #575 div3

Div3還是比較水的…都是基本都是思維題,只涉及到很少的算法. A. Three Piles of Candies 嘰裏呱啦說了一大堆,其實就是讓求三個數的平均值… #include<bits/stdc++.h> using na

原创 DFS+BFS(12)

DFS+BFS的練習題,以後再說,最近真的是被DFS和BFS噁心着了。。。

原创 動態規劃(4)-------計數類DP

整數劃分 其實小編看到這個題的第一個想法是完全揹包…寫了個二十分鐘還真的A了。大家如果想了解,下面給出代碼。 f[i][j] 表示i個整數恰好拼成j的方案數 把選0個i,1個i,2個i,…全部加起來 f[i][j] = f[i -

原创 桶排序

直接給一個能排正負數的板子 #include<iostream> using namespace std; int main() { int book[100] = {0};//標誌位,標記桶內正數數據量 int bookN[

原创 Educational Codeforces Round 82 (Rated for Div. 2)(A~D)

唉,有點可惜,感覺D題能做出來,可惜時間有點不夠了…果然教育場被教育… 先寫三個題的題解吧,剩下的慢慢補。 A. Erasing Zeroes A就沒什麼好說的了,統計出最左和最右的位置看一下中間有多少0就行。 #include<

原创 歐拉函數+歐拉定理

Visible Lattice Points 寫這篇博客是因爲上面那個題,人家是歐拉函數,看我這貪心一下午… 定義:歐拉函數是小於x的整數中與x互質的數的個數,一般用φ(x)表示。例如φ(6)=2.特殊的,φ(1)=1。 求法:

原创 動態規劃(2)------- 線性DP

上篇講了揹包問題算小小的入個門,這篇爲大家淺談一下線性DP的一些板子題,幫助大家理解一下動態規劃。 點這裏點這裏點這裏(數字三角形) 要找到整個數字三角形的最大值,我們可以描述爲去找從三角形第一行第一列(a[1][1])到三角形最

原创 動態規劃(3)-------區間DP

補了倆天,總算把線性DP寫了一半,剩下的等抽個時間慢慢寫。 區間dp就是在區間上進行動態規劃,求解一段區間上的最優解。主要是通過合併小區間的 最優解進而得出整個大區間上最優解的dp算法。(個人覺得所有的DP都是很美的暴力枚舉…)

原创 Codeforces Round #617 (Div. 3)(A~E2)

真個人生都是灰色了,大早上的讓hack一道題… A. Array with Odd Sum 水題,直接看代碼吧。 #include<iostream> using namespace std; const int N = 250