2024.11.14 总结
For:2024.11.14
开始做 \(nfls\) 专题题单
上午
P4802 [CCO2015] 路短最
题意大致为求不走过重复点的最长路,因为 \(n\leq 18\) 且需要记录走过的点有哪些,考虑状压 \(DP\) 外层枚举从 \(1\sim (1<<n)-1\) 注意起点是必经过的,所以只需枚举奇数,内层枚举最后走的一条边 \(i->j\),转移方程为 \(dp[k][j]=max(dp[k][j],dp[k-(1<<j)][i]+mp[i][j]);\) 其中 \(mp[i][j]\) 代表边权。最终答案为 \(max\) {$ dp[i][n-1]$ }\(,i∈[1,(1<<n)-1]\)
P3537 [POI2012] SZA-Cloakroom
有 \(n\) 件物品,每件物品有三个属性 \(a_i,b_i,c_i\),再给出 \(q\) 个询问,每个询问由非负整数 \(m,k,s\) 组成,问是否能够选出某些物品使得:
1. 对于每个选的物品 \(i\),满足 \(a_i ≤m\) 且 \(b_i>m+s\)。
2. 所有选出物品的 \(\sum c_i=k\)
将询问离线,按 \(a_i\) 排序,并将物品也按 \(a_i\) 排序,遍历时就可以方便满足 \(a_i \leq m\),设 \(dp_i\) 代表 \(\sum c_i=i\) b的最大的最小值,方程:\(dp[k]=max(dp[k],min(dp[kg[j].c],g[j].b))\) 最后输出时判断答案合法性即可。
P3118 [USACO15JAN] Moovie Mooving G
因为 \(n \leq 20\) 且 需要判断重复电影,状压 \(dp\),设 \(dp_i\) 代表当前状态下最长连续看电影时间,方程:\(dp[k]=max(dp[k],max(t[i][p]+v[i],dp[k-(1<<i)])),t[i][p]\) 是二分查找到的该电影符合当前最大时长的场次时间。
P6223 [COCI2009 Final Exam#1] PODJELA
树形 \(dp\),设\(dp_{i,j}\) 为当前节点 \(i\) 的子树内所有节点除了 \(i\) 节点符合要求,且用了 \(j\) 次操作,的 \(i\) 节点的最大钱数。
下午
P4544 [USACO10NOV] Buying Feed G
背包 \(dp\) 将朴素的方程参数分离,并换元,发现变量只与当前有关,且求区间最小值,考虑单调队列优化,方程以后补。
P3659 [USACO17FEB] Why Did the Cow Cross the Road I G
记忆化搜索可以直接过,但必须写成 \(bfs\) 形式,\(dfs\) 会 \(TLE\) 应该是因为爆系统栈了。。。
晚上
Minimum Transport Cost
正常做 \(floyd\) 即可,纪录每次更新的后继点,最后即可输出路径,但是UVA 的输入输出相当ex,需要自己判断通过输入矩阵大小,和询问数量,死完了。

浙公网安备 33010602011771号