題目 http://acm.hdu.edu.cn/showproblem.php?pid=2444關鍵這個問題你要知道什麼是二分 就是一條直線相連的二個點 一個在集合A 另一個在B 所以你首先判斷是不是二分 可以用二種顏色來區別哦 。求最大匹配 你可以把A B 集合看成是一個集合哦 然後來計算這個集合的最大匹配#include <iostream>using namespace std;const int M=201;bool g[M][M]; //圖bool
題目 http://acm.hdu.edu.cn/showproblem.php?pid=1083這是一個簡單的求最大匹配的問題有二種方法 ac1#include<iostream>#include<cstring>#include<cstdio>using namespace std;bool map[101][301];bool mark[301];int cx[101],cy[301]; //cx表示有多少門課 cy表示學生哦int
題目 http://acm.hdu.edu.cn/showproblem.php?pid=4545這個題目剛開始沒有做出來 很糾結哦 做錯了後面參考了一下別人代碼寫出來的 發現很簡單哦 只是我當時太笨了 呵呵 要注意一個地方 就是第一次輸入的時候不要while(cin>>n)否則會出錯哦具體看代碼#include<iostream>#include<cstring>#include<cstdio>using namespace
題目 http://acm.hdu.edu.cn/showproblem.php?pid=1068題意求出男孩和女孩沒有曖昧關係的人數哦 剛開始錯了數組開的太大了 超記憶體了。。。這個是先求出最大匹配數 再用總的人數減掉就是答案了思路: 最大獨立集點數 = N - 最大匹配數具體代碼是 #include<iostream>#include<cstring>#include<cstdio>using namespace
題目http://acm.hdu.edu.cn/showproblem.php?pid=4556這個真的很糾結 以前老師叫我們看一下數論 沒有 看導致不會做哦 每一次都是逾時哦 很糾結 所以今天看了一下別人的代碼發現是 歐拉函數哦 其實當時我也想出是求每個數的質數哦,但是每次都是逾時哦,沒辦法 下次一定要看看數論哦 具體ac代碼#include<iostream>#include<cstdio>using namespace std;#define
1 #include<stdio.h> 2 int main() 3 { 4 int a[5] = {1,2,3,4,5}; 5 int *p = (int *)(&a+1); 6 printf("%d,%d\n",*(a+1),*(p-1)); 7 return 0 ; 8 }結果為2,5主要說一下&a+1,a與&a的地址是一樣的,可是代表的意義不一樣,a是數組首地址,也就是a[0
1.情境模式在討論Factory 方法模式的時候,提到了一個匯出資料的應用程式框架,但是沒有涉及到匯出文本的每種方式具體會如何?。現在我們就來解決這個問題假設匯出的檔案,無論什麼格式都分為三個部分,檔案頭,檔案尾和檔案體。檔案頭:分公司或者門市點編號,匯出資料的日期檔案尾:輸出人檔案體:表名稱實現匯出資料到文字檔和XML檔案2.代碼類比2.1標頭檔內容package demo07.builder.example1;/** * 描述輸出到檔案頭的內容的對象 */public class
題目 http://acm.hdu.edu.cn/showproblem.php?pid=1532這是最大流的一個簡單題哦 我是用Edmond-Karp來做的哦
1.情境模式考慮這樣一個實際應用:訂單處理系統裡面有一個儲存訂單的功能,當產品數量超過1000份以後,拆成兩份訂單,再超,那麼就再拆。直到每份訂單不超過1000為止,訂單有兩種,一個是個人訂單,一個是公司訂單,現在需要實現一個通用的訂單處理系統。2.情境模式代碼(代碼很簡單,不一一講解了)package demo08.prototype.example1;/** * 訂單的介面 */public interface OrderApi {/** * 擷取訂單產品數量 * * @return
題目 http://acm.hdu.edu.cn/showproblem.php?pid=3549這個也是簡單的最大流問題哦,剛開始還錯了二遍 一直搞不懂哪裡錯了 老是時間逾時了 最後發現原來是第一個點沒有標記哦我說呢 資料這麼小怎麼可然,下次一定要注意了 呵呵 其實跟hdu 1532差不多哦下面具體代碼#include<iostream>#include<cstdio>#include<cstring>#include<queue>
1.情境問題電腦中如果沒有主板,那麼就會出現如所示的亂成一團的結構。 如果上面的情況發生在軟體開發呢?如果軟體開發需要很多模組,難道要每個模組同其他模組各個互動嗎?那豈不是太不好用嗎?那麼如何簡化這種互動呢?跟電腦一樣,弄一個中介者就行了。所有的模組跟中介者互動,那麼就降低了模組間的耦合性。2.舉一個稍微具體的例子使用電腦看電影:首先是光碟機讀取光碟片資料,告訴主板,狀態改變主辦得到資料,交給CPU處理CPU處理完,把資料分為視頻和音頻,通知主板,它處理完了。主板去得到CPU處理過後的資料,把資
#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define max 501struct node { int wi,li,hi;};node doll[max];bool map[max][max];bool mark[max];int link[max];int n;int findpath(int u) //尋找增廣路徑{ int i; for(
題目 http://acm.hdu.edu.cn/showproblem.php?pid=2063這是我第一個匹配題目 剛開始的時候不知道怎麼做 百度上找了一下資料 有些不錯 有些看不懂哦所以我自己寫一點自己體會 這個是基礎知識哦二分圖的基本概念一個無向圖G=<V, E>,如果存在兩個集合X、Y,使得X∪Y=V, X∩Y=Φ,並且每一條邊e={x,y}有x∈X,y∈Y,則稱G為一個二分圖(bipartite graph)。常用<X, E,
題目 http://poj.org/problem?id=2289這是我做的第一個 多重匹配 所以參考哦 別人代碼 感覺不錯http://www.cnblogs.com/-sunshine/archive/2012/08/30/2664310.html其實這個多重匹配有點像匈牙利演算法
今天看到了一道很有趣的幾何題。,四邊形 ABCD 中,串連對角線 AC 、 BD ,若 ∠ABD = 40° , ∠ADB = 80° , ∠CBD = 70° , ∠CDB = 50° ,求 ∠BAC 的度數。 這道題看上去似乎非常簡單,但稍作嘗試你就會發現,僅僅是在這幾個角度之間來回倒騰,是沒法求出 ∠BAC 的度數的。聽說過Langley 問題(就是那個臭名昭著的 20-80-80 三角形)的人就會知道,這種類型的題目往往會非常非常地複雜。據說這是 1989 - 1990
題目 http://acm.hdu.edu.cn/showproblem.php?pid=4554這個題目只要小心一點就可以了哦具體ac代碼 #include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ int t,m,n; __int64 a,b,x,y,s,s1; while(cin>>t) {
1.情境類比 請用軟體類比開機過程按下啟動按鈕然後電源供電主板開始加電自檢BIOS依次尋找其他裝置的BIOS並且讓他們初始化自檢開始檢測CPU,記憶體,光碟片,硬碟,光碟機,串口,並口,軟碟機隨插即用裝置進入系統引導上面的過程可以抽象為如下:用戶端只是想要發出命令或者請求,不關心請求的真正接受者是誰,也不關心具體如何?,而且同一個請求的動作可以有不同的請求內容,當然具體的處理功能也不一樣。請問如何?呢?2.使用命令模式來解決問題2.1命令模式定義將一個請求封裝為一個對象,從而是你可以用不同的請求
1.情境類比舉個生活中常見的例子:組裝電腦,我們在組裝電腦的時候,通常要選擇一系列的配件,比如選擇CPU時候,需要注意品牌,型號,針腳數目,主頻,只有這些都確定下來,才能確定一個CPU。同樣,主板也是這樣的。對於裝機工程師而言,他只知道裝一台電腦需要使用相應的配件,具體的配件,還是由客戶說了算。2.一般的解決方案(簡單工廠)2.1CPU介面package demo06.abstractfactory.example1;/** * CPU的介面 */public interface CPUApi
1.情境類比考慮這樣一個實際應用:HR提出,當選擇一個部門或者是分公司的時候,要把所有的分公司下的員工顯示出來,而且不要翻頁,方便進行業務處理,只需要顯示姓名即可,但是點擊姓名會出現這位員工的詳細資料。2.不用模式解決資料庫代碼就不寫了,總的來說就是使用者表和部門表直接上java代碼2.1.描述使用者資料的對象package demo10.proxy.example1;/** * 描述使用者資料的對象 */public class UserModel {/** * 使用者編號
1.情境類比一個公司收購了另一個公司,現在需要整合兩個公司之間的工資資料。但是兩個公司,一個是用鏈表格儲存體的,一個是用數組儲存的,但是工資的資料模型差不多。上述問題可以抽象為:如何能夠以一個統一的方式來訪問內部實現不同的彙總對象。2.使用迭代器模式來解決2.1迭代器定義提供一種方法順序訪問一個彙總對象中的各個元素,而又不需要暴露該對象的內部表示。2.2迭代器的結構 2.3迭代器範例程式碼package demo13.iterator.example1;/** *