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\),做一次最小流即可。

NOI2015 Day2的更多相关文章

  1. noi2015的回忆和教训

    前几天偶然打开了bzoj的rank list,突然发现——我竟然掉出了第一版!!! 自从我5月还是6月刷进第一版之后,我曾经天真的以为大概半年之内我还能保留在第一版内吧. 结果仅仅短短的4个月,我就已 ...

  2. NOI2015考试小结

    这次NOI2015有幸获得金牌考进了国家集训队,意味着我的OI退役时间既省选之后有延迟了好几个月,又有了新的目标吧. 先说一下考试之外的感受吧,学军宿舍很牛X,接待NOIers而不提供插座,唯一可以用 ...

  3. 2015.7.17( NOI2015 day1 )

    今天早起做了NOI2015网络同步赛.... 最近NOI是越来越向NOIP靠拢了....但是我还是不会做..... 第一题:程序自动分析 先离散化一下..然后最多就剩20w个数 , 不等于就存起来.. ...

  4. NOI2015滚粗记

    我的第一次也是最后一次NOI 好像写的晚了许多……可能一谈到退役总会有些伤感,并不愿去面对…… 一路走来已有5年,虽然我总在说“其实我好好学的时间只有半年”,但那也不过是给自己是蒟蒻找的借口吧...一 ...

  5. 【从零开始学BPM,Day2】默认表单开发

    [课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...

  6. BZOJ 4199: [Noi2015]品酒大会 [后缀数组 带权并查集]

    4199: [Noi2015]品酒大会 UOJ:http://uoj.ac/problem/131 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品 ...

  7. BZOJ 4196: [Noi2015]软件包管理器 [树链剖分 DFS序]

    4196: [Noi2015]软件包管理器 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1352  Solved: 780[Submit][Stat ...

  8. NOIp2016 Day1&Day2 解题报告

    Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...

  9. [BZOJ4200][Noi2015]小园丁与老司机

    4200: [Noi2015]小园丁与老司机 Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 106  Solved ...

随机推荐

  1. android玩耍(-) adbshell安装

    一 什么是adbshell http://adbshell.com/ Android Debug Bridge (adb) is a command line tool that lets you c ...

  2. Python成长之路第一篇(2)-初识列表和元组

    可以将列表和元组当成普通的“数组”,他能保存任意数量任意类型的Python对象,和数组一样都是通过数字0索引访问元素,列表和元组可以存储不同类型的对象,列表和元组有几处重要区别.列表元素用([])包括 ...

  3. jQuery事件对象的属性

    注:摘自<锋利的jQuery(第二版)> JQuery在遵循W3C规范的情况下,对事件对象的常用属性进行了封装,使得事件处理在各大浏览器下都可以正常运行而不需要进行浏览器类型判断. 1. ...

  4. WPF中图形表示语法详解(Path之Data属性语法)

    原文 http://blog.csdn.net/johnsuna/article/details/1885597 老规矩,看图说话. 先看显示效果:(图1) XAML(代码A):<Page xm ...

  5. node.js介绍

    官网说明: Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable ...

  6. Java实现邮件代理发送

    使用java实现邮件发送 首先需要添加jar文件mailapi.jarstmp.jar 1 import java.util.Properties; import javax.mail.Address ...

  7. Network()

    Network Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 60000/30000K (Java/Other) Total Submi ...

  8. MVC中使用AuthorizeAttribute做身份验证操作【转】

    http://blog.csdn.net/try530/article/details/7782704 代码顺序为:OnAuthorization-->AuthorizeCore-->Ha ...

  9. 如果nginx 中worker_connections 值设置是1024,worker_processes 值设置是4,按反向代理模式下最大连接数的理论计算公式: 最大连接数 = worker_processes * worker_connections/4

    如果nginx 中worker_connections 值设置是1024,worker_processes 值设置是4,按反向代理模式下最大连接数的理论计算公式: 最大连接数 = worker_pro ...

  10. google base库中的WaitableEvent

    这个类说白了就是对windows event的封装,没有什么特别的,常规做法,等侍另一线程无非就是等侍事件置信waitsingleobject,通知事件无非就是setevent,一看就明白,不就详解, ...