原创 [Tyvj P4876]近似排列計數[50]

原題鏈接 用了個搜索 兩個剪枝 明顯在數字固定的地方 就不要枚舉了 然後 如果這個數 只可能在這個位置用上 那就只能用這個數了 #include<iostream> #include<cstring> #include<a

原创 program

樣例坑爹系列 已根據題面所給程序運行結果手動更正 首先排序 找到相同的對數 tip:允許重複 然後倒過來統計 某個數的個數 和 比這個數小的數的對數 相乘 #include<iostream> #include<

原创 dan[非正解 搜索+卡時可AC]

應該不是正解 畢竟 題目裏給的m並沒有用上 但是 搜索+卡時可以過 卡時是好文明 搜索蔥 枚舉它在哪個柵欄 因爲柵欄一定能變成一個矩形 所以只記錄每個柵欄的邊界 中間加一點最優性剪枝 最後跟我一起念 卡時是好文明

原创 逆歐拉函數[arc]

喪心病狂 利用歐拉函數的公式實現逆推 然後 其中附帶了一點素數判斷[Miller-Rabin] 總之很麻煩 φ(n)=n×(p1−1)×(p2−1)…(px−1)p1×p2×…px #include<iostream> #

原创 [P1967][NOIP2013]貨車運輸

原題鏈接 因爲數據比較水 根本沒用倍增 總之這個題就這麼水過去了 求最大生成樹 再求個LCA 參考鏈接戳這裏( • ̀ω•́ )✧ 順便安利一個方法 tarjan求LCA 超好寫的 但是對這個題有點麻煩 參考地址

原创 select

一開始 想了一個 結果 只有40 看了題解 就是 枚舉選i行,k-i列 找最大值 #include<iostream> #include<cstring> #include<algorithm> #include<c

原创 [P1969][NOIP2013]積木大賽

原題鏈接 同機房的用了各種奇怪的算法 聽到我一臉懵逼 這題就是 先把公用的最小的建起來 然後上升的肯定是要新建的 答案加上與當前高度的差 後面下降的不用管 在之前建高的時候肯定放上了 #include<iostrea

原创 [P1351][NOIP2014]聯合權值

原題鏈接 一開始 並沒有想到正解 打了個70分的暴力 然後正解是 枚舉中間點 與它相鄰的兩個點一定符合條件 把這些點的權值加起來平方 再減去他們平方的和 就是sum 再找兩個最大權值的點 就是maxn #incl

原创 [P1970][NOIP2013]花匠

原題鏈接 聽說正解是DP #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<c

原创 [P3942]將軍令

原題鏈接 DFS+貪心可過 DFS預處理深度 肯定是要在最深的點的距離K處放個軍隊 貪心 然後有個誤區 就是訪問過的點其實還能再次訪問 因爲有可能能擴展得更廣 #include<iostream> #include<cstdi

原创 [HDU P2089]不要62

原題鏈接 數位DP入門 真的是好久不寫了 入門題搞了一個小時 依舊延續DP的優良傳統 想不到的狀態 推不出的轉移 但是好像這道題是數位DP的常規想法 手好冷啊不想打字了…… 參考鏈接 #include<iostream> #in

原创 [P1220]關路燈

原題鏈接 這是一道DP題 但是用爆搜也能過 跑的還挺快的 就是直接暴力搜索 跑到邊界去關燈 #include<iostream> #include<cstdio> #include<cstring> #include<cmath>

原创 2017/10

題目編號是我瞎搞的 T1 因爲數據範圍很小 我還以爲是折半搜索 沒想到是個n3的DP 不難看出 跳樓的高度是單調的情況下才可能是最優 這樣就先把高度排序 轉移方程 dp[i][j] = min ( dp[i-1][k] + b[

原创 國際跳棋

哇社會真的險惡 這個題 題面給了一大堆東西 還夾雜着沒用的設定 加冕這種玩意 只有在進行完一次操作之後才能進行 然而題目要求只能進行一次操作 所以完全就是逗你玩的 題目大意就是 求對單個棋子進行一次操作且吃子最多的方案數 對

原创 [P1809]過河問題_NOI導刊2011提高(01)

原題鏈接 參考鏈接 貪心一共有兩種不同方案 分別對應某些情況 因此兩種取min #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #includ