紫书第8章
紫书第8章详解
丶kaguya
普通大学狗,仅为记录自己的代码学习历程而写博客,方便回顾
展开
-
UVa1442 洞穴(扫描法)紫书训练
题目大意:有一个山洞用于存放石油,给出山洞的长度n,以及每个位置的底高度以及顶高度,要求存放石油不能没过顶,求最大的放油量。做题感受:挺离谱的,我自己莫名其妙想的用滑动窗口做,反正做了好几个小时没做出来,最后还是去看了lrj的分析,看到他的代码是真的短,我自己写了半天还写的贼长,反正真的是佩服。分析:设level=s[0],判断[i,i+1]处的高度(其实level也就是i的高度,i则是i+1的高度,i和i+1进行比较)从左至右扫描,如果p[i]>level,说明水被阻隔了,需要把level提升至原创 2021-01-02 21:43:27 · 218 阅读 · 0 评论 -
UVa1609 Foul Play 不公平竞赛 (直接构造法)紫书训练
题意:n支队伍打淘汰赛,每轮都是两两配对,胜者进入下一轮。每支队伍的实力固定,并且已知每两支队伍间的比赛结果(不可能为平局,则一定有一方打败另一方),你喜欢一号队,但是一号队不一定是最强的,但是他可以直接打败其他队伍中的至少一半,并且对于每支一号队不能打败的队伍t,总是存在一支1号队能直接打败的队伍t’ 使得t’ 能直接打败t,输出比赛安排。先输出最底层的,比如n = 8 先输出 8场第一轮比赛 4场第二轮比赛 2 场第三轮比赛 1场第四轮比赛。分析:紫书上p...原创 2021-01-01 14:23:08 · 208 阅读 · 2 评论 -
UVA 1608 不无聊的序列(中途相遇+递归分治) 紫书训练
UVA 1608 不无聊的序列题意:给出一个序列,如果他的任何一个连续的子序列都有至少一个特殊元素(在这个子序列中只出现一次),则这个序列是non-boring,否则是boring思路:可以与紫书前面的唯一的雪花那道题进行对比,唯一的雪花那道题利用map寻找与a[i]相同的数在之前的位置,而这道题则是变成了利用map寻找与a[i]相同的数在之前还有之后的位置,也就是找last和next。同时从至少有一个元素在该序列中只出现一次得出只要有一个数只出现一次,只需要检测这个数之前的序列和这个数之后的序列即可,原创 2020-12-31 12:54:01 · 613 阅读 · 0 评论 -
UVA 12174 Shuffle(滑动窗口优化) 紫书训练
UVA 12174 Shuffle题意:有个音乐播放器有乱序功能,可以随机播放1 ~ s首歌曲,每次随机播放完后再次打乱顺序随机播放(在播放完这一组的歌曲之前,不会再次乱序,直到全部播完)。现截取一段记录,给定播放的歌曲数 s 以及这段记录的长度 n ,然后输入这段记录,根据这段记录,求随机排序发生的时刻有几种可能。(1 <= s, n <= 100000)个人理解:我是真fw,先看了紫书的分析用滑动窗口,写了好几个小时,也没写出来,盯着lrj的代码看,看了半天最后才差不多理解了,利用了滑动原创 2020-12-30 15:05:54 · 224 阅读 · 0 评论