原创 GPLT L2-009. 搶紅包【排序】

題目:搶紅包 思路:結構體存儲按要求快排即可。。。 代碼: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using names

原创 GPLT L2-003. 月餅【貪心】

題目:月餅 題意:給出n種月餅的重量和總價,問怎麼賣收益最大! 思路:按每種月餅的單價(重量/總價)遞增排序,然後依次求在D範圍的月餅都賣,最後不足當前月餅總量時按單價*D賣出所有的D即爲最大收益! 代碼: #include <iostr

原创 GPLT L2-007. 家庭房產【並查集】

題目:家庭房產 思路:利用並查集分類家族即可。 開始存儲每個人的房數和麪積時我用了一個結構體,然後下標爲當前人的編號,最後用findd函數尋找到各自的家族的根後加入家族的存儲對應值即可。 還有是用一個標記數組將預先輸入的編號標記,這樣在查

原创 Uva11093 Just Finish it up【模擬】【例題8-13】

題目:Just Finish it up 題意:有n個加油站,第i個加油站可以加油pi,從i開到下一站需qi汽油,選擇一個加油站作爲起點,使得可以走完一圈後回到起點,如果無解輸出Not possible,否則輸出最小編號的起點。 思路:枚

原创 Uva11054 Wine trading in Gergovia【例題8-5】【等價轉換】

題目:Wine trading in Gergovia 題意:直線上有n個酒莊,第i個村莊對酒的需求爲ai(-1000≤ai≤1000),其中ai>0表示買酒,ai<0表示賣酒。 所有村莊供需平衡,即所有ai之和等於0。把k個單位的酒從

原创 Uva1152 4 Values whose Sum is 0 【中途相遇+二分】【例題8-3】

題目:4 Values whose Sum is 0 題意:給定4個n(1≤n≤4000)元素集合A,B,C,D,要求分別從中選取一個元素a,b,c,d,使得a+b+c+d=0。 問:有多少種選法? 思路1:按照紫書的思路中途相遇,就是

原创 Uva11134 Fabled Rooks【問題分解+貪心】【例題8-4】

題目:Fabled Rooks 題意:在一個n*n的棋盤中放n輛車,這n輛車不互相攻擊(即不同行和列);給出第i輛的停車範圍(xli,yli),(xri,yri) ,輸出i輛車的停車座標,如果無解輸出IMPOSSIBLE 。 思路:因爲是

原创 GPLT L2-001. 緊急救援【Dijkstra】

題目:緊急救援 思路: 看下問題: (1)求最短路徑; (2)記錄不同最短路徑的個數即最短路徑可能存在多條相同的值,但路徑不同; (3)在最短路徑的基礎上篩選人數最多的一條路徑; (4)記錄路徑。 求解: 利用最基本的Dijkstra直接

原创 GPLT L2-005. 集合相似度【set集合】

題目:集合相似度 題意:Nc:“兩個集合都有的不相等整數的個數” 意思是求倆個集合的交集個數  Nt:“兩個集合一共有的不相等整數的個數” 意思是求倆個集合的並集個數 ,記得去重! 思路:開一個set集合數組,分別將每個集合加入相應的集合

原创 Uva714 Copying Books 【二分】【例題8-10】

題目:Copying Books 題意:將m個序列分成k個連續的子序列,將各個子序列求和,分的子序列的和的最大值儘量小。 思路: (1)枚舉子序列和的最大值,從m個序列中最大值~m個序列的和 之間的數二分枚舉最大值,每次枚舉的值看能劃分的

原创 Uva1605 Building for UN 【構造法】【例題8-2】

題目:Building for UN 題意:給出國家數n,先要蓋一棟大樓,將這n個國家安排到大樓裏工作,每個國家至少在大樓裏安排一間工作,n個國家的工作必須倆倆都互相相鄰,上下左右都可以。輸出大樓的高,寬,長,和安排各個國家工作的位置,用

原创 Uva1606 Amphiphilic Carbon Molecules【例題8-6】【極角掃描法】【不懂!】

題目:Amphiphilic Carbon Molecules 題意:平面上有n(n≤1000)個點,每個點爲白點或者黑點。 現在需放置一條隔板,使得隔板一側的白點數加上另一側的黑點數總數最大。 隔板上的點可以看作是在任意一側。 思路

原创 Uva11572 Unique Snowflakes【滑動窗口】【例題8-7】

題目:Unique Snowflakes 題意:輸入一個長度爲n(n≤106)的序列A,找到一個儘量長的連續子序列AL~AR,使得該序列中沒有相同的元素。 思路:設置一個左端和右端位置,然後左端從0開始,右端從左端開始延伸,當遇到與之前相

原创 Uva120 Stacks of Flapjacks【構造法】【例題8-1】

題目: Stacks of Flapjacks 題意:給出一組數,將數按遞增排序,排序規則:給出的數從左到右爲從頂部到底部,每次選一個數k,代表從底部數第k個以上的煎餅都翻過來。按照規則排序,把每次的k值輸出。 思路:由題可得每次都是0

原创 Uva1608 Non-boring sequences 【分治+中途相遇】【例題8-16】

題目:Non-boring sequences 題意:給一個序列,如果此序列中的任意子序列中至少尋找一個唯一的值就說明此序列爲不無聊序列,否則爲無聊序列。注意,任意子序列即所有的子序列都滿足才行! 思路:依然是參考了紫書+代碼庫! (1)