随笔分类 - 

摘要:题目传送门 由题目可得,在一条路上有N个加油站,在距离终点a[i](细节)的位置上,你需要通过长度为L的路,油箱的容量是无限的,但是初始只有P点油,经过每个加油站时可以选择加b[i]的油,问最少加油几次可以到达终点。 可以看出经过每一个加油站时可以有两个选择:加油或不加油,但过去了就不能回来。 假如 阅读全文
posted @ 2017-10-06 20:38 Cptraser 阅读(156) 评论(0) 推荐(0)
摘要:黑匣子 (box.pas/c/cpp) 【 问题描述】 某研究小组成员想发明一个黑匣子( 当然不是飞机上那个), 而是一个具有特殊功能的箱子。 这个箱子具有两个功能: 1. 存放一些正整数 x; 2. 对于第 k 次询问, 它会告诉你箱子中第 k 小的数字是多少。 但光具有理论是不够的, 理论往往应 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(190) 评论(0) 推荐(0)
摘要:最短路径例题 今天特地学习了Dijkstra的堆优化(主要是慕名已久)。 我们需要一个堆来记录[编号,到编号这个点的最短路径值(当然只是当前的)] 与原来的Dijkstra操作基本一致,主要有以下几点: 1.将起点放入堆中 2.开始while循环 3.取出堆顶 4.如果已经拓展过就continue 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(274) 评论(0) 推荐(0)
摘要:中位数的和 (number.pas/c/cpp) 【题目描述】 flower 有 N-1 个朋友,他们要一起玩一个游戏:首先确定三个非负整数 a,b,c,然后每个人依次在纸上写一个数,设第 i 个人写下的数字为 f[i],flower 先写下数字 f[1]=1,对于第 i 个写数字的人(i>1)有: 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(190) 评论(0) 推荐(0)
摘要:题目传送门 这是一道贪心的问题。 总体做法是这样的:先按照报废的快慢从小到大SORT一遍,优先修报废快的。同时开一个大根堆(C++的朋友可以用priority_queue),用来记录已经修了的建筑的耗时大小。 在优先修建筑的时候,如果在当前所用的时间加上修的时间超过了报废时间了的话,就找出大根堆的T 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(110) 评论(0) 推荐(0)