NOI2025DP专题1
NOI2025DP专题1
开题顺序: \(A\)
\(A\) CF1342F Make It Ascending
-
难点在于信息合并,一个比较暴力的做法是迭代加深后多次背包维护决策。
-
记录匹配成功后的极值或许可做。仔细思索后记录最大值实质是在类似区间 \(DP\) 一样合并,但如果始终抓着原始序列考虑合并怎么做没什么前程。
-
设 \(f_{i,j,S}\) 表示结果序列 \([1,i]\) 中,被使用的元素构成的集合为 \(S\) 且 \(i\) 由 \(j\) 为初始值合并而来的最小值。刷表转移并记录路径。
点击查看代码
const int inf=0x3f3f3f3f; struct node { int len,pos,s;// pos 作了移位处理 }opt[20][20][(1<<15)+10],ans; int a[20],p[20],sum[(1<<15)+10],f[20][20][(1<<15)+10],n; int lowbit(int x) { return (x&(-x)); } void print(node x) { int len=x.len,pos=x.pos,s=x.s; if(len==0) return; int t=s^opt[len][pos][s].s; for(int i=0;i<n;i++) { if(((t>>i)&1)==1&&i!=pos-1) { cout<<p[i]<<" "<<p[pos-1]<<endl; for(int j=i+1;j<n;j++) p[j]--; } } print(opt[len][pos][s]); } int main() { // #define Isaac #ifdef Isaac freopen("in.in","r",stdin); freopen("out.out","w",stdout); #endif int testcase,m,s,t,_s,i,j; cin>>testcase; for(;testcase>=1;testcase--) { cin>>n; m=(1<<n)-1; ans=(node){-1,-1,-1}; for(i=0;i<n;i++) { cin>>a[i]; p[i]=i+1; } for(i=1;i<=m;i++) sum[i]=sum[i-lowbit(i)]+a[__builtin_ctz(i)]; for(i=0;i<=n;i++) { for(j=0;j<=n;j++) fill(f[i][j]+0,f[i][j]+m+1,inf); } f[0][0][0]=0; for(i=0;i+1<=n;i++) for(j=0;j+1<=n;j++) for(s=0;s<=m;s++) { if(f[i][j][s]!=inf) { _s=m^s; for(t=_s;t!=0;t=_s&(t-1)) { if(sum[t]>f[i][j][s]&&(t>>j)!=0) { f[i+1][j+1+__builtin_ctz(t>>j)][s|t]=min(sum[t], f[i+1][j+__builtin_ctz(t>>j)+1][s|t]); if(f[i+1][j+1+__builtin_ctz(t>>j)][s|t]==sum[t]) opt[i+1][j+__builtin_ctz(t>>j)+1][s|t]=(node){i,j,s}; } } } } for(i=n;i>=0&&ans.len==-1;i--) { for(j=1;j<=n;j++) { if(f[i][j][m]!=inf) { ans=(node){i,j,m}; break; } } } cout<<n-ans.len<<endl; print(ans); } return 0; }
\(B\) CF1239E Turtle
\(C\) luogu P6806 [CEOI 2020] 象棋世界
\(D\) CF613E Puzzle Lover
\(E\) CF1466H Finding satisfactory solutions
\(F\) CF582D Number of Binominal Coefficients
\(G\) [AGC034E] Complete Compress
\(H\) [AGC020E] Encoding Subsets
\(I\) [AGC036D] Negative Cycle
\(J\) [AGC028D] Chords
\(K\) [AGC022F] Checkers
\(L\) UOJ 607. 【UR #20】跳蚤电话
\(M\) UOJ 181. 【UR #12】密码锁
\(N\) UOJ 370. 【UR #17】滑稽树上滑稽果
\(O\) UOJ 312. 【UNR #2】梦中的题面
本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/18815529,未经允许严禁转载。
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。

作为守护世间秩序的神祇,秩序屹立于光明与黑暗之间,永恒中立;他以无上的智慧和力量维护世界的平衡,确保奥奇大陆的繁荣、稳定与长存。进化后的他力量更甚、信念不移,他将继续引领万物在秩序之下共存。
浙公网安备 33010602011771号