原创 hdu 3987 Harry Potter and the Forbidden Forest

最小割: 我用的比較傳統的方法,因爲最小割=最大流,所以可以先用sap預處理一下圖,找出滿流的邊,在把這下滿流的邊的權值更改爲1,其餘的變成inf,再跑一遍sap即可得到答案。 #include<stdio.h> #include<

原创 hdu 3917 Road constructions

題意:有m個公司,k條路,每個公司修條路都要向政府交一定的稅,同時政府也要向該公司付修路費,還有如果a和b公司是合作關 系,那麼你選了a修路,就必須要選b。(如果a負責修A-B,b負責修B-C,那麼就定義a和b爲合作的關係),問政府最大

原创 poj 1952 BUY LOW, BUY LOWER

dp: 求一串序列中最長遞減子序列包含的數的個數以及有幾個長度相同的最長的遞減子序列,並不要求連續。 #include <iostream> #include <string.h> #include <cstdio> using nam

原创 Problem - 216B - Codeforces

題目鏈接http://codeforces.com/problemset/problem/216/B 題意:有一羣人要踢足球,但是在這些人中有幾對人存在敵對的關係,要求每個隊的人數相等並且同一個隊中不存在互爲敵對關係的人,每個人最多隻會討

原创 hdu 3576 Elevators in Jiayuan Students' Apartment

題意:一幢樓有16層,共有3個電梯,現在又m個人要去不同的樓層(一樓除外,因爲你一開始就在一樓嘛),問你怎樣安排這些人去不同的電梯,使得這些人都到達指定的樓層的情況下電梯停的次數最少。 以前在杭電做過這個題,今天在ccsu的oj上的比賽

原创 數據結構總結

常見的數據結構運用總結 考慮到Obsidian三個成員的擅長領域,這段時間都在做雜題,算是學習各種算法吧,趁現在休息的時間,而且大家馬上要備戰今年的

原创 hdu 1853 Cyclic Tour

最小費用流問題: 題意:找出若干個環覆蓋所有的點,使得總的花費最小 因爲每個點只能經過一次,又要使花費最少,所以很快就可想到拆點求最小費用流 因爲要形成環,所以每個點的入度和出度都不能爲0,每一個點的出度都要對應一個點的入度。 把每個點

原创 poj 3084 Panic Room

題意: 給你幾個屋子,其中有些是恐怖者的屋子,有一個是需要保護的屋子,題目要求是不讓恐怖者來到受保護的屋子。剛開始所有的門是打開的,讓你求出最少需要關閉多少門,才能保證恐怖者不會到達目的地。 看完題目很容易分析出來是最小割,從超級源點向每

原创 hdu 1569 方格取數(2)

題意:有一個m*n的棋盤,每個格子有一個數,要求你從這個棋盤中取走一些數,但所取的數所在的格子兩兩不能相鄰,求最多能取走的數的和最大爲多少。 最小割: 題目要求所取的數所在的格子兩兩不能相鄰,這對應了一個最大獨立集,而最大獨立集=總和

原创 hdu 3988 Harry Potter and the Hide Story

#include<iostream> #define MAX 10000000 #define PRIME 700000 #define INF 9223372036854775807LL using namespace std; lon

原创 hdu 2426 Interesting Housing Problem

最小費用最大流問題: 題意:n個學生給m個公寓打分,要求你爲這些學生分配公寓,使得分配方案得到的總分最高,同時不能安排學生住他打了負分也就是他不喜歡的公寓。 建立超級源點與每個學生相連,容量爲1,費用爲0。 同理建立超級匯點與每個公