SDU暑期集训排位(9)

G. Just Some Permutations

基础 DP 练习部分

  • 定义 \(f(S)\),表示让 S 中的人全 happy 的方案数。
  • \(dp[i][j]\) 表示,\(\sum_{|s|=j,s\subset\{1,...i\}} f(s)\)。
  • 考虑从 \(dp[i][j]\) 开始的转移,可惜它转移不得,因为 \(i+1\) 个人,不知道自己能不能匹配成功。
  • DP 状态记录 \(i+1,i\) 是否被匹配,大部分情况下 \(i+1\) 个人可以匹配 \(i,i+1,i+2\)
  • Cornner Case 是 1 可以匹配 n,n 可以匹配 1,怎么办?
  • DP 状态记录 \(1,n\) 是否被匹配。
  • 于是 \(dp[i][j][\{i,i+1,1,n\} 匹配了哪些]\) 就是个很优雅的状态了,枚举第 \(i+1\) 个人匹配谁即可实现转移。

基础组合数学部分

  • \(ans[i]\) 表示 \(\sum_{|s|=i} f(s)\)
  • rdc 做完 基础 DP 练习后人解体了。
  • \(g(x)\) 表示恰有 \(x\) 个 happy 的人的方案数。
  • \(ans[i]=\sum_{j=x}^{n}g(j)\binom{j}{i}\)

基础的优化部分

  • 比赛中 TLE 掉了。
  • 需要每次都做 \(O(n*m*64)\) 的恐怖 DP?
  • 考虑 \(n=200,m=200\),\(n=100,m=100\) 这个两组 Case 发现 \(dp[1][]\) 到 \(dp[98][]\) 值一样的。
  • 不需要啊,对每组查询,更新 \(dp[i-1],dp[i]\) 即可。

D. Flood in Gridland

  • 单纯形。rdc 比赛中调了一年,因为不知道默认有 \(x_i \geq 0\) 的条件,没文化。
  • 调出来后 WA。
  • sdcgvhgj 比赛后单纯形一发就过了。

最新文章

  1. java学习笔记之正则表达式
  2. [翻译] Autoac 最佳实践和建议
  3. BZOJ2471 : Count
  4. NDK SO 库开发与使用中的 ABI 构架选择
  5. VS2015 Android
  6. Python:使用psycopg2模块操作PostgreSQL
  7. SQL模式匹配
  8. Aizu 2304 Reverse Roads 费用流
  9. vue-cli + webpack
  10. Bootstrap的aria-label与aria-labelledby
  11. File 常用方法
  12. gitlab或github下fork后如何同步源的新更新内容?
  13. 黄聪:visual studio 2017编译运行出现脚本发生错误等问题如何解决?
  14. 列表视图QlistView
  15. [C++]Linux之Ubuntu下编译C程序出现错误:“ stray ‘\302'或者'\240' in program”的解决方案
  16. 什么是mime类型
  17. VS2013 opencv配置
  18. unity3d-代码控制游戏角色控制器移动
  19. Cobbler的Web管理和维护
  20. 重学Verilog(3)——参数化模块

热门文章

  1. Python实现淘宝秒杀聚划算自动提醒源码
  2. 搭建谷歌浏览器无头模式抓取页面服务,laravel->php->python->docker !!!
  3. Mac 10.14.4 编译openjdk1.9源码 及集成clion动态调试
  4. git之coding.net的使用
  5. ASP.NET Core on K8S深入学习(3)Deployment
  6. vscode c 语言 win10
  7. 100天搞定机器学习|Day21 Beautiful Soup
  8. SAP-采购订单跟踪报表
  9. Vue cli2.0 项目中使用Monaco Editor编辑器
  10. html中video标签