原创 ZOJ 3770 : Ranking System (第14屆浙江大學程序設計競賽 D) - 結構體排序,vector

【分析】 先按題目要求排序——我是寫了倆排序函數,再按照等級人數限制進行劃分即可。 讀入的各種數據存在結構體中,對結構體按成員排序用vector很方便——今天現學的——書到用時方恨少啊,唉。 #include<cstdio> #i

原创 POJ 1966 / ZOJ 2182 : Cable TV Network - 頂點連通度

題意: 輸入 中繼器 線纜數目(即圖中點,邊的數目)m,n;m對數據 表示中繼器連接情況(即點的連通情況)。 需要輸出 網絡的安全係數——即這裏無向圖的頂點連通度 分析: 構造一個容量網絡,得到鄰接矩陣; 求每一對頂點的獨立軌數目時,可

原创 POJ 1835 : 宇航員 - 模擬,三維向量旋轉

(OJ 寒假馬拉松 第五場 E題) 從別人博客看到較精煉的解法 思路: 用一個三維向量記錄人的身體朝向的信息——面朝的方向,身體豎直方向向上的方向,人左臂平伸的方向。 6種變換就是對這個向量的操作。(詳見代碼) 注

原创 POJ 3177 / POJ 3352 : Redundant Paths / Road Construction - 邊雙連通分量,縮點

題意: 給定現有的R條直接連接2個牧場的路,F-1<=R<=10,000,計算至少需要新修多少條直接連接2個牧場的道路,使得任何2個牧場之間至少有2條獨立的路。 分析: 見代碼及註釋…… 《圖論算法理論實現應用》——P412 3177

原创 POJ 1419 : Graph Coloring - 最大團(裸)

最大團算法以後補充啊! 這個可以用DFS過的。 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int maxn=110

原创 POJ 2533 : Longest Ordered Subsequence - LIS問題

最長不降子序列問題, 同學報告中的題。一道簡單的DP。 題意: 給定 n 個整數 A1A2....An,按從左到右的順序選出儘量多的整數,組成一個上升子序列,輸出最長子序列的長度。 分析: I.最簡單思路,d[i]表示從左到第 i 個

原创 POJ 2677 / ZOJ 2581 : Tour - DP

雙調歐幾里德旅行商問題, (寒假馬拉松 第一場 J題) dps[i][j]代表走的快的人到達i,走的慢的人到達j時的最小距離。 當連接新的點i+1時,如果給j,則j就超過了i,成爲了更快的人,下一狀態變成dp[i+1][i]。 如果給i

原创 POJ 2714 : Random Walk - 貪心

這題用到的那個關於定義運算符的方法不太懂! 分析參考:http://www.cnblogs.com/LyonLys/archive/2012/08/20/poj_2714_Lyon.html 因爲每個向量的方向都不同,所以就可以將向量按

原创 POJ 2818 : Making Change - dfs

(寒假馬拉松第一場 P題) 題意: 商店有面值爲25分、10分、5分、1分的硬幣,給出各硬幣的數量和要找給顧客的錢數,問怎麼使找給顧客的總的硬幣數最少。 分析: DFS,最暴力的方法是枚舉所有的情況;——POJ 此題數據較弱,暴搜即可A

原创 POJ 1062 : 昂貴的聘禮 - 最短路Dijkstra+枚舉(難)

 dijkstra處理權值非負情形,最近纔開始看最短路。 題目大意:(中文題容易理解) 大致就是說,最終要得到酋長的許諾,每件物品可能有其他物品(1件)能讓此物品價格優惠,你可通過交易獲得物品從而以最少金錢達到酋長許諾。交易受到“等級限制

原创 #include類的用法

本文轉載Lists將元素按順序儲存在鏈表中. 與 向量(vectors)相比, 它允許快速的插入和刪除,但是隨機訪問卻比較慢.assign() 給list賦值 back() 返回最後一個元素 begin() 返回指向第一個元素的迭代器 c

原创 POJ 2756 : Autumn is a Genius - java大數

(寒假馬拉松 第八場 B題) java解法參考 C++解法:小灰灰的高精度 高精度 參考 import java.io.*; import java.util.*; import java.math.*; public class M

原创 POJ 1276 : Cash Machine - 多重揹包

最基礎的多重揹包 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=100005; int cash,k,n[N

原创 POJ 2796 : Feel Good - 區間運算最值

(寒假馬拉松第一場 G題) 題意: 本題主要就是要求一個數列裏面,連續的幾個數的和乘以這個連續段裏最小的一個數,在所有這樣連續數列裏最大的一個 分析: 我是簡單模擬着做的,直接輸出最大值就可以了。 網上很多都說,用單調棧 / 單調隊列,

原创 POJ 2973 : Scrabble - 字符串

(寒假馬拉松 第二場 B題) 字符串處理 題意: 判斷最後一個字符串是否可以組成前面的字符串,輸出可以組成的數量,‘_’代表可以任意字母。 In the first test case, PIZZA, ZA and PITA ca