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,需要自己判断通过输入矩阵大小,和询问数量,死完了。

posted @ 2024-11-14 22:21  HCNX  阅读(5)  评论(0)    收藏  举报