hdu 3629 計算幾何

計算幾何好題View Code #include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#include<algorithm>using namespace std;const double eps =1e-9;const double PI = acos(-1);struct point {double x,y;}a[1000];double b[200

poj 1273 Drainage Ditches 最大流

        第一次寫最大流,照著書上面敲。        用Edmonds_karp演算法,每次通過bfs搜出一條增廣路徑加到流中,直到不能搜到為止。這題要注意有重邊,多條重邊要加在一起,用+= #include <iostream>#include <queue>using namespace std;const int N = 205;const int INF = 1000000000;int c[N][N];int flow[N][N];int

差分約束學習筆記

         這幾天學了差分約束,總結一下。        先從百度百科摘錄差分約束系統定義:        如果一個系統由n個變數和m個約束條件組成,其中每個約束條件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),則稱其為差分約束系統(system of difference constraints)。亦即,差分約束系統是求解關於一組變數的特殊不等式組的方法。        差分約束可以轉化話單源最短路求解。因為單源最短路徑滿足三角不等式d[v] <= d[u]

sicily 1090 Highways 最小產生樹

         題目是求最長的邊,在產生最小產生樹時,用一個變數儲存最大的值即可 //Prim演算法#include <iostream>#include <memory.h>#define INF 1000000#define MAX 200using namespace std;int main(){int arcs[MAX][MAX];bool isvisit[MAX];int min_weight[MAX];int N;int cases;cin

HDU 1176 免費餡餅

/*轉化為數塔問題dp[i][j] i 表示第i秒 j表示第j個位置 能夠拿到的最大餡餅數狀態轉移方程dp[i][j] = max{dp[i+1][j-1],dp[i+1][j],dp[i+1][j+1]} + a[i][j];時刻注意邊界*/#include <stdio.h>#include <string.h>const int MAX = 100001; int dp[MAX][11]; //1 ~ 100000秒int max2(int

zoj 1654 Place the Robots 最大二分匹配

        轉換成最大匹配。        每個橫向的'o’和'#’塊(必須包含'o’)作為X集合一個頂點,每個縱向的'o’和'#’塊(必須包含'o’)作為Y集合一個頂點        當橫向塊和縱向塊的交點的'o’時,二分圖該兩個頂點有邊相串連。        這題因為下標不小心打錯了,調了很久才ac,納悶。 #include <iostream>#include <cstring>using namespace std;const int N =

poj 1469 COURSES 最大二分匹配

       這題也是赤裸裸的最大二分匹配。在最後加個判斷即可。       注意,用cin會逾時,要用scanf #include<iostream>using namespace std;const int MAX = 305;bool arcs[MAX][MAX];bool isvisit[MAX];int match[MAX];int n, m;bool find(int u){for (int i = 1; i <= m; i++)if (arcs[u][i]

poj 2195 Going Home 二分圖最大權匹配

       求二分圖最小權匹配,轉換成最大權匹配。       方法一,初始化邊e為負的權值,取反輸出答案;       方法二,lx[]用min初始化,求slack時用max, 從最小值逐漸增大。       感覺二分圖最大權匹配的思想與差分約束求最大值有些像。 差分約束求最大值一直保持d[u] <= d[v]+ e(u, v),而最大權匹配則是通過頂標,先從最大的權值邊匹配,若不能構成完全符合,就在相等子圖裡添加邊。都是從最大值開始減少,當滿足所有條件時,就是所求的最大值      

poj 3259 Wormholes 判斷負權迴路

       這題沒啥好說的,題目看了很久,才明白,原來是蟲洞。用判斷是否存在負權環,用bellman_ford即可 #include<iostream>using namespace std;const int MAX = 6000;const int INF = 1000000000;struct edge{int u,v;int cost;};edge e[MAX];int arcs[505][505];int n,m,w;int d[MAX];int count;bool

zoj 3362 Beer Problem 最小費用流

       別人都說是赤裸裸的最小費用流,自己想了很久,都想不到如何做,最後看了別人解題報告才懂。       關鍵還是在構圖和轉化。源點是1,添加一個匯點,匯點到各個城市的邊的容量是各個城市賣啤酒的錢的相反數。通過spfa求cost的最短路徑,若最短路徑的cost小於0,說明這條路徑是賺錢的,否則是虧本的,演算法停止。#include<iostream>#include <queue>#include <cstdio>#include

hdu 3639 Hawk-and-Chicken 強連通分支

        剛看了強連通分量,找來些題練練。發現強連通不會赤裸裸地考,會結合一些其它知識。        這題做得比較曲折,一開始沒有強連通,對反向圖的每個點進行一次dfs, 發現逾時,後來用了強連通,弄了很久才弄出。        解題思路:先把強連通分支壓縮成一個點,再組成一個有向無環反向圖, 對每個入度為0的點進行dfs, 找出最大的值即可。注意到,答案只能是在反向圖入度為0 的點中。#include <iostream>#include

HDU 1497 Simple Library Management System

這題是類比題...不要想複雜了哦 呵呵#include <stdio.h>#include <stdlib.h>struct Person{int num;int b[9];void init(){ num = 0; }};Person person[1001];int book[100001];void makeset(int n){for(int i = 0; i <= n; ++i) book[i] = -1;}int

poj 1789 Truck History

 where the sum goes over all pairs of types in the derivation plan such that to is the original type and td the type derived from it and d(to,td) is the distance of the

poj 1135 Domino Effect

留下代碼有空寫解題報告 蛋疼的題目#include<stdio.h>const int MAXN = 501;const int INF = 0x3f3f3f3f;int n, m;int map[MAXN][MAXN], dist[MAXN];bool used[MAXN];void dijkstra(){for(int i = 1; i <= n; ++i){ dist[i] = map[1][i]; used[i] = false; }

PKU 1062 昂貴的聘禮

Code highlighting produced by Actipro CodeHighlighter

費用流:入門

最近看了一下費用流,找到適合模仿的程式對著資料看了一下,覺得比當初學的最大流還簡單(當然現在與四個月以前的水平是不可同日而語了),基本思路是以費用為邊權,用最短路演算法找最小費用的增廣路。主程式有點類似最大流的EK演算法,而且找最小費用增光路基本上都是用SPFA來實現,也是相當熟悉的演算法了。模仿了一個,又自己打了一個,第二個程式基本十二分鐘就敲完了,不過兩個程式都Debug了好久,都是變數打錯或是漏掉語句的低級錯誤……有空要研究一下最佳二分圖匹配,zkw費用流之類的演算法,再熟悉一下建模,參數

帶權二分圖匹配:KM演算法與費用流建模

KM似乎還是有點難以理解,看了半天資料仍有半懂不懂的感覺,或許以後多想想、畫畫,做些題能加深理解吧,當初學匈牙利的時候就是這樣。相關資料二分圖帶權匹配

圖論部分概念整理

主要是看CLRS第二版的翻譯附錄B及第22章,話說CLRS真的很全面,描述又很嚴謹,雖然數學概念實在頭疼。因為最近總是把圖的什麼強連通分支之類的概念搞混,還是梳理一下比較好。簡單路徑:有向圖中一個點到另一個點的路徑,路徑上各頂點不重複簡單迴路:同樣的,有向圖中一條迴路v0,v1,v2,v3……vk,除v0=vk外v1……vk互不相同;無向圖中,同樣的,但k>=3連通圖:無向圖中每對頂點都有路徑相連,或者說只有一個連通分支強連通圖:有向圖中每對頂點都有路徑相連,或者說只有一個強連通分支完全圖

最大流:基礎

前幾個月第一次模仿別人的C代碼半懂不懂得寫了一次裸的最大流:RQNOJ 194:學生運輸,演算法導論上太多定義、分析、證明了,剛開始看得不是很明白,相比之下資料結構與演算法分析有圖解,但是沒有給出代碼。 後來才知道自己寫的BFS增廣是叫Edmonds-Karp演算法,屬於Ford-Fulkerson方法,效率是比DFS增廣好些,但是也就只能對付RQ上的弱資料,碰到強題還是不行。 最近興緻突發想學習網路流,想學一下dinic,看王欣上的課件模模糊糊有些懂了,但是沒有找到適合模仿的代碼。

字串匹配:看毛片演算法及其它

很久就久仰過KMP演算法的大名,也學了不少時間,但是都是一知半解。最近重新拿起CLRS翻翻,發現基本能看懂了,順便把第32章:字串匹配給翻了一下。樸素的字串匹配就不用多講了……Rabin-Karp演算法的思想是產生數,把字元對應表為一個數字,然後一個子串就相當於一個整數,如果兩個整數值相等就是match成功了。當然,字元太多會溢出,那麼就用整數模一個素數的值來比較,但是又會存在碰撞。所以當找到一個命中點時,要用樸素的演算法來驗證。有限狀態自動機有點複雜,看的半懂不懂的,但是總算知道有限自動機是什

總頁數: 61357 1 .... 8770 8771 8772 8773 8774 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.