【ac】
1 #include2單調佇列優化dpusing
namespace
std;
3 typedef long
long
ll;4
const
int maxn=5e4+2;5
const
int inf=0x3f3f3f3f;6
intn,c;
7int
cur;
8int dp[2
][maxn];
9int
q[maxn];
10int
main()
1131 head=1,tail=0;32
for(int j=100;j>=x;j--)
33 38}
39int ans=inf;
40for(int i=x;i<=100;i++)
4144 printf("
%d\n
",ans);45}
46return0;
47 }
【坑】第一種情況for迴圈要從1開始,而不是從x開始,雖然只有當j>=x時才能更新dp[cur][j],但q[head]有可能是dp[cur^1][j]在j另外,這道題用滾動陣列節省了空間,因為每個韓子都只和他之前的乙個有關,當然,第乙個韓子要先處理好
0x59 單調佇列優化DP
倍增dp太難啦心情好再回去做 poj1821 先讓工匠按s排序,f i j 表示列舉到第i個工匠塗了j個木板 注意第j個木板不一定要塗 那麼f i j 可以直接繼承f i 1 j 和f i j 1 此外 f i j max j l i 1 k s i 按照單調佇列運用的思想,維護f i 1 k 1 ...
單調佇列優化
單調佇列是一種嚴格單調的佇列,可以單調遞增,也可以單調遞減。隊首位置儲存的是最優解,第二個位置儲存的是次優解。單調佇列可以有兩個操作 1 插入乙個新的元素,該元素從隊尾開始向隊首進行搜尋,找到合適的位置插入之,如果該位置原本有元素,則替換它。2 在過程中從隊首刪除不符合當前要求的元素。單調佇列實現起...
單調佇列 優化DP
佇列元素保持單調遞增 減 而保持的方式就是通過插隊,把隊尾破壞了單調性的數全部擠掉,從而使佇列元素保持單調。單調佇列的作用 優化dp。許多單調佇列優化的dp可以使複雜度直接降維,下面就以最簡單的一道題為例 在某兩座城市之間有 n 個烽火台,每個烽火台發出訊號都有一定代價。為了使情報準確地傳遞,在連續...