2018.11.07 NOIP模擬 分糖果(貪心)
傳送門
考慮 n = 2 時的情況:假定兩個人分別為(a, b),(c, d),則當且僅當min(a,d) ≤ min(b,c)時,把(a, b)放在前面更優,否則把(c, d)放在前面更優
然後把n = 2 的結論進行擴充套件。我們定義第 i 個小朋友比第 j 個小朋友小,當且僅當 min(ai,bj) <min(aj,bi),以這個規則進行排序,時間複雜度 O(nlogn)。
這樣得到的新隊伍一定是滿足題目要求的最優解之一,當然還可能存在其它最優解。
程式碼
相關推薦
2018.11.07 NOIP模擬 分糖果(貪心)
傳送門 考慮 n = 2 時的情況:假定兩個人分別為(a, b),(c, d),則當且僅當min(a,d) ≤ min(b,c)時,把(a, b)放在前面更優,否則把(c, d)放在前面更優 然後把n
NOIP模擬 分糖果(貪心)
就是這道題 【題目分析】 竟然又是一道氵谷原題。。。。。。。 關於排序的正確性以及正確的排序見這篇部落格 【程式碼~】 #include<bits/stdc++.h> using namespace std; typedef long long LL; const i
2018.10.31 NOIP模擬 一些情報(倍增)
傳送門 題目並不難(想) 其實就是用倍增維護幾個樹上資訊。 也就這麼幾個: 子樹內最長鏈及其後繼點。 子樹內次長鏈及其後繼點。 子樹內第三場鏈(也就是dzyodzyodzyo口中鬼畜的次次長鏈) 點i
2018.11.01 NOIP訓練 梭哈(模擬)
傳送門 這題貌似不考智商啊。 直接按題意寫就可以了。 事實上把牌從小到大排序之後寫起來很舒服的。 然後就是有些地方可以人腦減程式碼量和判斷次數。 (提示:滿堂紅和某幾種同類型的牌的大小判斷) 然後注意A
2018.11.07 NOIP訓練 lzy的遊戲(01揹包)
傳送門 考慮對於每次最後全部選完之後剩下的牌的集合都對應著一種構造方法。 一個更接地氣的說法: 設消耗的牌數為ttt,如果使用的牌的lll值之和也為ttt,則對應著一種構造方式讓這種情形成立。 於是做0
2018.10.30 NOIP模擬 排列樹(樹形dp+組合數學)
傳送門 考試的時候亂搞過了。 其實題目就是讓你求拓撲排序方案數。 直接樹形 d p dp
2018.10.01 NOIP模擬 偷書(狀壓dp)
傳送門 狀壓dp經典題。 令f[i][j]f[i][j]f[i][j]表示到第i個,第i−k+1i-k+1i−k+1~iii個物品的狀態是j時的最大總和。 然後簡單維護一下轉移就行了。 由於想皮一下果斷
2018.10.02 NOIP模擬 矩陣分組(二分答案)
描述 有N行M列的矩陣,每個格子中有一個數字,現在需要你將格子的數字分為A,B兩部分 要求: 1、每個數字恰好屬於兩部分的其中一個部分 2、每個部分內部方塊之間,可以上下左右相互到達,且每個內部方塊之間
2018.10.02 NOIP模擬 序列維護(線段樹+廣義尤拉定理)
描述 給出一個長度為n的序列,每個位置有個數字Ai,有2個操作: 1、區間修改,將[L,R]區間的數字加上一個數 2、區間查詢[l,r] 查詢:alal+1al+2....armodpa_l^{a_{l+1}^{a_{l+2}^{\text{....}^{a_r
2018.10.05 NOIP模擬 上升序列(狀壓dp)
描述 給出一個長度為 m 的上升序列 A(1 ≤ A[i]≤ n), 請你求出有多少種 1…n 的排列, 滿足 A 是它的一個 LIS. 輸入 第一行兩個整數 n,m. 接下來一行 m 個整數, 表示
2018.10.09 NOIP模擬 好數(雙向搜尋)
傳送門 直接雙向搜尋出兩邊可行解,然後把兩邊的可行解合併起來得出答案就行了。 注意合併的時候可以利用排序和單調性優化時間複雜度。 直接列舉合併是O(siza∗sizb)O(siza*sizb)O(siz
2018.11.01 NOIP訓練 圖論(線段樹+倍增+dfs序)
傳送門 一道挺妙的題。 對於詢問點(u,v),如右圖所示,我們可以發現存在一個點m在u->v的路徑中,m子樹的點到u是最近的,m子樹外到v是最近的。其中dis(u,m)=(dis(u,v)-1)/2,且deep[u]>deep[v] 根據這個結論
NOIP模擬 性感手槍(DFS)
內網傳送門 結果和這道題一毛一樣233 【題目分析】 當我拿到題目的一瞬間,就有一種熟悉感,莫非。。。。。 考完下來一問,woc,竟然是氵谷原題!我還記得不久前刷氵題(一個下午20道那種),然後翻到這道題。。。。不可做啊無限地圖是什麼鬼,丟了丟了,結果。。。。。。。。。 好了不扯
2018.11.01 bzoj4325: NOIP2015 鬥地主(貪心+搜尋)
傳送門 原來一直以為是一道大模擬。 沒想到是一道搜尋+最優性剪枝 如何搜最優呢? 我們考慮怎麼最快出完。 大概是應該儘量出當前能出出去最多的吧。 於是我們選擇優先出順子。 這樣做有什麼好處呢? 我們會發現除了順子以外的牌都能夠直接算最少需要出幾輪。 因此把順子出完之後更新答案就行了。 於
2018.11.17 bzoj4259: 殘缺的字串(fft)
傳送門 f f t fft
2018.11.14 uoj#34. 多項式乘法(ntt)
傳送門 今天學習 n t t ntt
2018.10.07 bzoj3669: [Noi2014]魔法森林(lct)
傳送門 lct經典題。 維護動態最小生成樹。 具體實現就是把邊轉化成一個帶點權的點,其它的點變成不帶點權的點,然後要加入一條邊(u,v)(u,v)(u,v)的話,我們求出路徑(u,v)(u,v)(u,v)上的最大值與該邊的邊權進行比較,如果替換更優的話就先斷掉那
NOIP模擬 地球發動機(DP)
傳送門 【題目分析】 哎呀竟然3min看出來DP轉移方程了呢。。。。雖然確實很氵。 因為最後一個不會對後面造成任何影響,所以從後往前推。轉移方程:dp[i]=max(dp[i+1],dp[last]+p[i]),last表示第一個不被影響的發動機。 【程式碼~】 #
[jzoj 4879] [NOIP2016提高A組集訓第11場11.9] 少女覺 解題報告 (貪心)
題目連結: http://172.16.0.132/senior/#main/show/4879 題目: 在幽暗的地靈殿中,居住著一位少女,名為古明地覺。據說,從來沒有人敢踏入過那座地靈殿,因為人們恐懼於覺一族擁有的能力——讀心。掌控人心者,可控天下。 咳咳。人的記憶可以被描述為一個黑塊(B)
2018.09.21 atcoder An Invisible Hand(貪心)
傳送門 簡單貪心啊。 這題顯然跟t並沒有關係,取差量最大的幾組買入賣出就行了。 於是我們統計一下有幾組差量是最大的就行了。 程式碼: #include<bits/stdc++.h> #def