原创 OpenJ_POJ - 1009

題目大意:給定n個物品,揹包體積m。再給出n個物品的體積wi,求Count(i, x)(1<=i<=n, 1<=x<=m):不含第i個物品來裝載體積爲x的揹包的方案數 維護F[i]:用所有物品來裝載體積爲x的揹包的總方案數 推導

原创 Kattis speed 二分答案

題目大意:速度表有誤差C,速度表測的速度是S,而真正的速度是S + C。現在走了n(1<=n<=1000)段路程,總時間是t(1<=t<=1e6),每段路程的距離是di, 測得的速度是si,求誤差C。 二分答案:∑di/(C+si

原创 CodeForces - 920E_Connected Components? 模擬

題目大意:無向圖中給定n個頂點,m條不存在的邊(除了這m條邊,其餘都存在),求圖的連通分量,及每個連通分量的大小。 list < int > g;存儲1~n個頂點。再後續的操作中將其分裂成若干塊,直到list爲空。 (1)當li

原创 Gym - 101572G_Galactic Collegiate Programming Contest 模擬multiset

題目大意:一場比賽的排名依據是過題數多的排名靠前,其次罰時少的排名靠前。一個隊伍的排名是k+1,其中k表示有k支隊伍優於他。現給定n個隊伍,編號1~n,再有m個事件,每個時間是t, p,表示隊伍t過了一題,罰時是p。要求輸出每個事

原创 2017-2018 ACM-ICPC Southeastern European(SEERC 2017) A concerts

題目大意:字符串只由A~Z組成,給定s字符串長度k(k<=300),p字符串長度是n(<=1e5),再給定字母A~Z匹配成功後需要間隔的次數a[27],再給出字符串s, p。求s匹配p的方案數 dp[i][j]:匹配到i位置時已經匹配

原创 poj1015 01揹包+輸出路徑

題意:給定人數n(1<=n<=200),每個人有一個a, b。(0<=a<=b),從中選擇m個人,使得|sigma(a)-sigma(b)|最小,若相等則sigma(a)+sigma(b)最大。求最優策略的sigma(a),sigma

原创 201712-4 CCF 行車路線 堆優化dijkstra

維護一個sum[]:最短路徑中以i結尾的連續小路的長度和 #include <cstdio> #include <queue> #include <cstring> using namespace std; typedef long

原创 UVALive8138 - Number Generator 概率dp

題意:數字生成器隨機生成n種數(1~n),(1<=n<=3000),已經成了k個數,再給出已經生成的k個數。求使得1~n都至少出現2次,還需要生成次數的期望。有t組數據(1<=t<=1e5) 樸素做法,dp[i][j]:已經由i個數出

原创 poj2135 最小費用最大流入門題

題意:給定n個點(編號1~n),有m條無向邊。再給出m條邊的信息,起點,終點和距離。現在從1走到n,再從n走回1,沒條邊只能走一次,求這樣走的最短路徑。 將邊權作爲費用,流量爲1(每條邊只能走一次)。再新建一個源點s,s到1有一條指向

原创 HDU - 5115 經典區間dp

題意:給定n個狼的攻擊值ai和附加攻擊值bi,每殺死一匹狼i,受到的傷害等於i的攻擊值和與i相鄰的狼的附加攻擊值。求殺死所有的狼受到的傷害的最小值。 dp[i][j]:殺死區間i~j的狼受到傷害的最小值。 初始化: a[0]=a[

原创 POJ 2096 Collecting Bugs 概率dp+期望

題目大意:bug由有s個子系統產生,屬於n種分類。且由每個子系統產生的概率是1/s,屬於某種分類的概率是1/n。每天發現一個bug,求每個子系統都產生了bug且n種bug都有的期望天數。 概率dp的狀態設置都挺套路:當前狀態是…且要達

原创 CCF 201803-4 棋局評估 極大極小搜索

題意:3X3的井字棋,1先走,2後走,給定一個狀態。當前輪到1走,1,2都按照最優策略行棋,求最後的分數。 #include <cstdio> #include <algorithm> using namespace std; co

原创 POJ2954 Triangle pick定理

題意: 在平面直角座標系中給定三角形的三個點的座標(整數),求該三角形內部的整點的數量 pick定理: 在平面直角座標系中,以整點爲頂點的簡單多邊形,其中內部整點數爲a,邊上(包括頂點)的整點數爲b,則面積爲S = a+b/2-1 p

原创 poj2492 帶權並查集 三種解法

題意:給定n個昆蟲和m個判斷x, y,表示x和y是異性。求判斷是否錯誤。 法一:帶權並查集 #include <cstdio> using namespace std; const int N = 2010; int fa[N],r

原创 hdu1083 二分圖最大匹配模板

增廣路的性質: (1)整條路徑上沒有重複的點。起點在二分圖的左半邊,終點在右半邊,並且左右交替出現。 (2)起點和終點都是未配對的,除起點和終點外其它所有點都是已經配好對的。 (4)有奇數條邊。 (5)路徑上的所有第奇數條邊都