Contest of cug 2013.6

題目: Contest - 2013校賽暨華中邀請賽

2013-6-2 cug 校賽


Unsolved: B F K

Solution: cug2013


A.Segment
題意:求一維座標中n(<=10w)條線段中任意兩條重和的最大值
思路:排序,起點相同的保留長度最長的
然後按x從小到大往右掃,mx記錄當前出現的最右端點
l表示當前線段的左邊,r表示右邊,r=min(v[i].y,mx);
Code: cug1429.cpp


B.Overlapping Sticks
題意:二維平面中,求若干重合點的線段的對數
思路:把線段按照ax+by+c=0的形式,進行一個特殊的分類
屬於一類的線段,垂直於X軸的特殊討論,其餘的按x從小到大排序掃描
Code: cug1430(wa).cpp



C.Max Sum
題意:環形求最大子序列和
思路:求兩種情況的最大值
1.非環形的直接求
2.跨過了首尾元素的,用sum-最小子序列和
最小子序列,直接把元素取負,調用最大子序列即可
Code: cug1431.cpp


D.Tetrahedron Inequality
題意:求六條邊能否組成正四面體
思路:http://math.stackexchange.com/questions/513071/tetrahedron-inequality
Code: cug1432.cpp


E.Enclose
題意:求用弧線圈住n個圓的長度
思路:轉化成多邊形往外擴一個半徑的凸包的周長+一個圓周的周長
Code: cug1433.cpp


F.Min Cycle Max
題意:求n個數形成環的一個排列,滿足相鄰數字差的最大值要最小,且字典序最小
思路:(不知道正確否)
排序後,按照從小到大的順序排列成  7 5 3 1 2 4 6 ...
然後最小元素,往左往右分別得到兩個
 1 2 4 6 7 5 3  和  1 3 5 7 6 4 2
求得最小值是 2
倒着掃一遍,把能去掉的去掉插到前面即可保證字典序最小
Code: cug1434(wa).cpp


G.Find the minimum
題意:區間更新線段樹
思路:線段樹
Code: cug1435.cpp


H.A strange dream
題意:n個點,m條邊,每個點都有一個值
每到達一個點的充分條件是,當前值更新爲與這個點的值的lcm(必須改變)
求從1到n的路徑數,最後值恰好爲k的路徑數%(1e9+7)
思路:A Strange Dream
Code: cug1436.cpp



I.Take Photo
題意:輸入01矩陣,1表示i必須站在j的右邊,求方案數
思路:狀態dp
Code: cug1437.cpp



J.Leo’s Game
題意:求n個數字中,滿足所有數字的最小公倍數是M的最大個數
思路:把能整除M的數字篩出來,求最小公倍數是否等於M,水題
Code: cug1438.cpp



K.Food Chain
題意:根據已知食物鏈關係,判斷滿足題目的要求
思路:模擬+一丟丟圖論,不會寫

Code: null



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章