A、

  题意:给你一串字符串(<=100),将ogo ogogo ogogogo ogogogogo……这种全部缩成***,输出缩后的字符串

  分析:第一遍扫对于那些go的位置,记录下next[i]表示最远能扩展到的位置,第二遍扫只要看o即可,如果o后面的位置next存在,那么说明这一段全部缩为***,跳到next[i+1]+1继续下一段操作

B、= =

C、

  题意:你将从0点开车到s点,路上有一些加油站,加油时间忽略不计。你有两种开车选择,一种是每km走1min,花费2L油,另一种是每km走2min,花费1L油。你有n种汽车可以选择,给出它们的油箱容量(刚开始满的)和价格,能否选择一辆价格最低的车,能在时间t内跑完全程?如果不能输出-1

  分析:首先想到对所有汽车升序排序,对于那些容量小,价格高的车我们忽略,最后得到的汽车数组肯定两个属性都是升序的。

     明显这个是满足单调性的,所以可以二分枚举选择哪辆车,然后就是判定的问题。

     判定的时候注意每一段可以高速和低速交替,但都是对整数路段操作的,所以贪心着来,先把低速填满,然后根据剩余油量填高速,计算时间并判断是否合法。

     O(klogn)

D、

  题意:有长度为n的格子,有a个长度为b的船安放在其中,但是你看不见它们。每次操作可以射击一个格子,获取这个格子的信息(船的一部分?或者是空的?),给你已经射击的k个格子,问最多还需射击多少次才能射到船的一部分,并输出射击方案。

  分析:先看所有连续的0的一段,假设船有无穷多个,统计需要射击的个数(即每b-1个0射一次),记为s,那么现在的问题就是s个可疑位置中有a个可能的船,那么我们只需要把剩下的s-a个位置封死即可。

E、

  题意: 给出n个点,和它们的深度(深度有可能是错的),指定节点s为根节点(根节点的深度也有可能是错的,即输入的深度不是0), 求最少更改多少个点的深度可以使得其合法,n<=2e5

  分析:合法的当且仅当深度是[0..len]每个数字全都有,且0只有一个。

     将它们按照深度从小到大排序,枚举每一个i,将这个点作为最底层的点,将后面的点放到前面去(当然还有那些多余的0),计算操作数(当然要和前面断层的数量比较,如果数量不足则无法作为可能的结果),这样枚举一边就可以得到结果。

     注意数据给你的s也有可能深度不是0,根据题意,这个点一定是根节点,所以只要把它改为0,操作数额外加1即可,不需要考虑更多复杂的东西……

Codeforces Round #380(div 2)的更多相关文章

  1. Codeforces Round #380 (Div. 1, Rated, Based on Technocup 2017 - Elimination Round 2)

    http://codeforces.com/contest/737 A: 题目大意: 有n辆车,每辆车有一个价钱ci和油箱容量vi.在x轴上,起点为0,终点为s,中途有k个加油站,坐标分别是pi,到每 ...

  2. Codeforces Round #380 (Div. 2) 解题报告

    第一次全程参加的CF比赛(虽然过了D题之后就开始干别的去了),人生第一次codeforces上分--(或许之前的比赛如果都参加全程也不会那么惨吧),终于回到了specialist的行列,感动~.虽然最 ...

  3. codeforces Codeforces Round #380 (Div. 1, Rated, Based on Technocup 2017 - Elimination Round 2)// 二分的题目硬生生想出来ON的算法

    A. Road to Cinema 很明显满足二分性质的题目. 题意:某人在起点处,到终点的距离为s. 汽车租赁公司提供n中车型,每种车型有属性ci(租车费用),vi(油箱容量). 车子有两种前进方式 ...

  4. Codeforces Round #380 (Div. 2) 总结分享

    B. Spotlights 题意 有n×m个格子的矩形舞台,每个格子里面可以安排一个演员或聚光灯,聚光灯仅可照射一个方向(俯视,上下左右).若聚光灯能照到演员,则称为"good positi ...

  5. Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2) E. Subordinates 贪心

    E. Subordinates time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  6. Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2) D. Sea Battle 模拟

    D. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  7. Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2)C. Road to Cinema 二分

    C. Road to Cinema time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  8. Codeforces Round #380 (Div. 2)D. Sea Battle

    D. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  9. Codeforces Round #380 Div.2 F - Financiers Game

    F - Financiers Game 这种两人博弈一般都可以用两个dp写, 一个dp描述第一个人的最优态, 第二个dp描述第二个人的最优态,难点在于优化空间... 我感觉这个空间开得有点玄学.. d ...

随机推荐

  1. CSS3动画属性Transform解读

    无论你是前端还是设计师,相信你在网页二维空间上的操作早已经得心应手,JS处理时间线的动画也早已经 烂熟于胸.从今天开始,我跟大家分享一些“新”的东西,网页的第三个维度,以及纯CSS实现的动画.限于篇幅 ...

  2. HashMap和SparseArray的性能比较。

    HashMap和SparseArray可以实现相似的功能. 但SparseArray是Android定义的,在键是整数时,他比HashMap的性能更高,因为HashMap使用的是Integer对象, ...

  3. IOS开发基础知识--碎片41

    1:UIWebView加载本地的HTML NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fi ...

  4. OC 协议

    OC 协议 概念:定义了一个接口,其他类负责来实现这些接口.如果你的类实现了一个协议的方法时,则说该类遵循此协议. 非正式协议:非正式协议虽名为协议,但实际上是挂于NSObject上的未实现分类(Un ...

  5. jquery 获取多个select name 的值

    html {foreach from=$month_arr item=dateArr key=i}<tr> <td>{$dateArr.m}</td> <td ...

  6. 学习linux之用mail命令发邮件

    背景 这两天工作比较闲,网上各种冲浪(这个词暴露我的网龄了).看到一位大神的文章更闲 <>.端详一番,原来是用R语言拼接字符串后用shell命令发出去.发现shell命令既然还能直接发邮件 ...

  7. 推荐几个精致的web UI框架

    1.Aliceui Aliceui是支付宝的样式解决方案,是一套精选的基于 spm 生态圈的样式模块集合,是 Arale 的子集,也是一套模块化的样式命名和组织规范,是写 CSS 的更好方式. git ...

  8. 具备 jQuery 经验的人如何学习AngularJS(附:学习路径)

    这是一个来自stackoverflow的问答,三哥直接把最佳回答搬过来了. 都说AngularJS的学习曲线异常诡异~~~ Q: “Thinking in AngularJS” if I have a ...

  9. TortoiseSVN提交提示423 Locked的解决办法

    往svn上提交文件时,文件可能被另一个人占用,这时提交就会报423Locked错误. 此办法是阅读官方文档(TortoiseSVN-1.6.16-zh_CN.pdf) 4.21 锁部分提供的办法: 首 ...

  10. SQL SERVER导出特殊格式的平面文件

    有时候我们需要将SQL SERVER的数据一次性导入到ORACLE中,对于数据量大的表.我一般习惯先从SQL SERVER导出特殊格式的平面文件(CSV或TXT),然后用SQL*Loader装载数据到 ...