2016寒假训练4
題目鏈接
A CodeForces 490A Team Olympiad
題意:給出N個人,有的人擅長1有的人擅長2有的人擅長3,要求進行分成3人組,每組都有1,2,3,輸出盡可能多的組的方案。
做法:暴力,答案肯定是1,2,3人數中的較小值
B CodeForces 490B Queue
題意:給定N個人,已知每個人前面的人(分奇偶),求出原本人的順序
做法:分奇偶求出原本的順序
C CodeForces 490C Hacking Cypher
題意:給定一個很長的數以及a,b,問是否可以把這個數切成兩部分,前面一部分可以被a整除,后面一部分可以被b整除
做法:moda[i]表示前i位%a的值,modb[i]表示第i位到最后一位的數%b的值,O(N)預處理出這兩個數組即可
D CodeForces 490D Chocolate
題意:有兩個塊巧克力,每一次可以吃掉長或者寬的一半,或者1/3,問最少多少次可以使得兩塊巧克力的面積相同
做法:求出原本兩塊巧克力的邊長除去所有的2和3之后的長度,如果面積不相同,無論操作多少次都肯定不可以。如果相同,直接模擬
E CodeForces 490E Restoring Increasing Sequence
給定N個數字,有的數字有的位置不確定,要求這N個數嚴格遞增,問是否可以求出一個滿足條件的序列。
做法:貪心。如果當前處理的數字位數比上一個數字長,那么這個數字就賦值為1000…0,如果這個數字位數比上一個數字短,那么就直接輸出NO。如果位數相等,就通過DFS確定最小的這個數,使得盡可能的滿足要求。
F CodeForces 490F Treeland Tour
題意:求一棵樹上的最長上升子序列
做法:枚舉起點,做二分的LIS
G CodeForces 483A Counterexample
題意:給定L,R,要求求出3個數,使得前兩個數互質,2和3兩個數互質,1和3兩個數不互質
做法:直接3個for
H CodeForces 483B Friends and Presents
題意:給定cnt1,cnt2,x,y,要求構造一個數列1,2,3…v,其中選出cnt1個數字不能被x整除,選出cnt2個數不能被y整除(兩組數中不能有相同的)
做法:二分答案+容斥原理
I CodeForces 483C Diverse Permutation
題意:給定n和k,要求構造一個長度為N的數列,使得相鄰兩個數字的差的絕對值的個數為k
做法:構造
I CodeForces 483D Interesting Array
題意:給定N,M,接著給出M個區間,表示這M個區間的數字的與為Qi,問是否可以求出原本的序列,滿足要求
做法:線段樹。由于已知的是若干數的相與之后的結果,我們需要盡可能的存下來所有的1,那么我們對所有重復的區間求或,這樣可以保留盡可能多的1。然后根據構造出來的這么一個序列,判斷是否滿足要求。
題目+簡要題解+代碼
轉載于:https://www.cnblogs.com/Coolaaa/p/5243800.html
總結
- 上一篇: 中缀式变后缀式
- 下一篇: vs2012搭建gtest环境