原创 FOJ 1893 內存管理 //模擬

題目描述 內存管理 解題思路 可以用一個bool數組來模擬內存區,被佔用的區域用memset打上標記. 參考代碼 #include <iostream> #include <algorithm> #include <vector>

原创 HDU 4286 Data Handler // 模擬鏈表

題目描述 HDU 4286 Data Handler 解題思路 有一段區間和 兩個指針(L 和 R) 要求支持下列操作: 1) 指針左移 2) 指針右移 3) 在指針所指位置插入一個數 4) 刪除指針所指位置上的數 5

原创 [FOJ 1891] 升降序列

題目描述 升降序列 解題思路 參考代碼 #include <iostream> #include <algorithm> using namespace std; const int maxn = 50010; int ans[m

原创 [HDOJ 4501] 小明系列故事——買年貨

題目描述 小明系列故事——買年貨 解題思路 多個01揹包的組合. 參考代碼 #include <iostream> #include <cstring> #include <algorithm> using namespace s

原创 [HDOJ 4550] 卡片遊戲

題目描述 卡片遊戲 解題思路 找到非零且最小的數字的位置(有多個則取最靠後的位置) p 然後分3段考慮 0~p : 大的放後,小的放前 p: 把s[p]放在首位 p~len-1:都放在後面 參考代碼 #include<io

原创 HDU 4417 Super Mario // 線段樹

題目描述 HDU 4417 Super Mario 解題思路 題目大意: 查詢區間 [l, r] 有多少個數 <= h. 之前只接觸過一點線段樹, 所以還是來一發線段樹吧= =| 參考代碼 #include <iostream>

原创 HDU 2795 Billboard // 線段樹 單點更新

題目描述 HDU 2795 Billboard 解題思路 題目大意: 有一張h×w的矩形告示欄, 和 n 張 1×wi 的海報 海報每次張貼的位置爲告示欄剩餘位置的左上角. 要求支持下列操作: 1) 對於每張海報 輸出其在

原创 HDU 1166 敵兵佈陣 // 線段樹

題目描述 HDU 1166 敵兵佈陣 解題思路 線段樹的入門基礎題. 題目要求支持下列操作: 1) 區間查詢 (求和) 2) 單點更新 (加\減) // 具體還是看註釋哈~^ ^ 參考代碼 #include <stdio.

原创 HDU 4548 美素數 // 素數篩法

題目描述 美素數 解題思路 用素數篩法預處理,最後詢問ans[r] - ans[l-1]即可. 參考代碼 #include <stdio.h> #include <string.h> const int maxn = 100001

原创 HDU 5373 The shortest problem //模擬

題目描述 HDOJ 5373 The shortest problem 解題思路 題目大意: 給一個數n, 比如123, 每次操作後把之前各位數字之和加到末尾 由於1+2+3 = 6 所以 123->1236 類似得到1236

原创 HDU 5387 Clock // 模擬

題目描述 HDU 5387 Clock 解題思路 題目大意: 給出時間 hh:mm:ss ,求 時針, 分針, 秒針 兩兩夾角. 我們可以先計算出 0點 與 每根針 的夾角(順時針方向 , 夾角[0, 360) ) 然後做差即可

原创 CodeForces 429B Working out // 遞推dp

題目描述 CodeForces 429B Working out 解題思路 題目大意: 有n*m個格子, 走過一個格子可以得到相應的分數. A 從(1,1)沿 下 或 右 走到(n,m) B 從(n,1)沿 上 或 右 走到

原创 HDU 1754 I Hate It // 線段樹

題目描述 HDU 1754 I Hate It 解題思路 支持兩種操作: 1) 區間最值查詢 2) 單點更新 這題跟 HDU 1166 敵兵佈陣 是類似的思路. 參考代碼 #include <stdio.h> #define

原创 HDU 1698 Just a Hook // 線段樹 區間更新

題目描述 HDU 1698 Just a Hook 解題思路 題目大意: 每段區間有三類狀態: 值爲1, 2, 3 要求支持下列操作: 1) 修改區間的狀態, 然後輸出整個區間[1, n]的和 線段樹區間更新的入門題, 具

原创 HDU 4291 A Short problem // 矩陣快速冪, 循環節

題目描述 HDU 4291 A Short problem 解題思路 題目大意: g(n) = 3g(n−1) + g(n−2) 其中, g(0) = 0, g(1) = 1 求 g(g(g(n))) mod 1000