NOI2015 Day2

荷马史诗

题目描述:给出\(n\)个数,要求\(n\)个\(k\)进制数来对应这\(k\)个数(允许有前导零),\(n\)个\(k\)进制数互不为前缀,求\(n\)个数乘以对应的\(k\)进制数长度总和最小值,并求最小值下\(k\)进制数的最长的最小值。

solution:
\(k\)叉哈夫曼树,当\(n \not \equiv 1 (mod (k-1))\)时,补零时条件成立,然后类比二叉的做法即可。

时间复杂度:\(O(nlogn)\)

品酒大会

题目描述:给出一个字符串,第\(i\)个字符对应的值为\(a[i]\), 对于\(i \in [0, n)\),求最长公共前缀大于等于\(i\)的字串对个数,并求这些字符串对开头对应值相乘最大值。

solution:
后缀数组求出\(Height[i]\),根据\(sa\)对字符串重标号,\(Height[i]\)就是第\(i\)个字符串与第\(i-1\)个字符串的最长公共前缀,枚举最长公共前缀\(len\),对于\(Height[i]=len\)的\(i\),用并查集链接\(i\)与\(i-1\),并更新答案与最大值。注意:字符对应值可能是负值,所以还要记最小值

时间复杂度:\(O(n)\)或\(O(nlogn)\)

小园丁与老司机

题目描述:给出平面上的\(n\)个点,点的纵坐标均大于\(0\),从原点出发,每次从左、右、上、左上\(45^{\circ}\)、右上\(45^{\circ}\)
选择一个方向(该方向必须有一个点),走到该方向最近的点,然后继续选择方向走,如此类推,直到不能走为止。求最多能走多少个点(不计原点),并输出一条可行路径。找出所有最长路径上的非左右方向的边,求覆盖所有边的最少路径数(路径只能包含非左右方向的边)

solution
预处理出每个点在非左右方向离该点最近的点,然后以纵坐标为第一关键字,横坐标为第二关键字排序。以纵坐标为阶段做dp,同层的也做dp。这里只讲同层如何dp。
枚举从哪一个点向上走(\(i\)),假设之前在下一层往上走到\(j\),如果\(x_j<x_i\),那么与\(i\)同层的,且在\(i\)左边的都可以到达(从\(j\)走到同层的最左边,然后走到\(j+1\),再走到\(i\)),如果\(x_i<x_j\),那么与\(i\)同层的,且在\(i\)右边的都可以到达(从\(j\)走到同层的最右边,然后走到\(j-1\),再走到\(i\)),那么正向做一次,反向做一次就可以知道最大值了,同时记住方案。
根据方案将非左右方向的边找出,并构出新图,因为有可能多条最长路径同时经过某些边,因此每条边的下界为\(1\),做一次最小流即可。

最新文章

  1. centos7删除已经安装的docker
  2. uva 10340 All in All
  3. MVC3+EF4.1学习系列(五)----- EF查找导航属性的几种方式
  4. oracle 里面定时执行任务,比如存储过程内容等
  5. iOS下使用sqlite3
  6. 新闻头条应用源码ios版
  7. C# selecd,new,virtual,abstract与override
  8. 【BZOJ3309】DZY Loves Math
  9. 踩坑系列の Oracle dbms_job简单使用
  10. antlr v4 使用指南连载5——如何编写词法定义
  11. Centos发布java的war包后,无法访问发布的工程
  12. nodejs中使用crypto-js先HmacSha1加密后转Base64
  13. IDEA中Git分支未push的变更集如何合并到另一个分支
  14. Flask中的before_request after_request
  15. jquery 兼容的滚轮事件
  16. spring入门常见的问题及解决办法
  17. 一篇关于蓝牙SDP和L2CAP协议的文章
  18. 2. 搭建DRF项目
  19. 比较器(TreeSet和优先队列,可以对里面的元素按照自己的意愿进行排序)
  20. 026 Spark 的官网(版本为1.6.1的总官网)

热门文章

  1. C++ Primer第18章Vector的再实现及bug修正
  2. mysql_config_editor程序的用法
  3. NetworkManager——Linux强大的网络管理工具
  4. 当Evernote结合MindManager
  5. perl 正则命名捕获
  6. php 验证身份证有效性,根据国家标准GB 11643-1999 15位和18位通用
  7. JSTL标签急速秒杀jsp页面中的java代码(一)---Core标签库
  8. 30分钟学会使用grunt打包前端代码【mark】
  9. 利用PowerDesigner15在win7系统下对MySQL 进行反向project(二)
  10. 安卓图片框架:universal-image-loader的高速使用