16暑期补HackRank计划
来源:互联网 发布:mts钢结构设计软件 编辑:程序博客网 时间:2024/05/22 05:37
已完成1题
1.(有趣)fighting-pits(Difficult80):https://www.hackerrank.com/contests/101hack39/challenges/fighting-pits
题意:有k个队博弈,每个队有一些各自有权值的人,两个队交锋,轮流攻击对方,某队派出一个带有val的某人,将消灭掉对面任意val个人。
现在有1e5个操作
1 x p :表示在p队添加一个攻击力x的人。保证了每次添加的x不小于这个队原有队员的最大攻击力。
2 x y :询问x 和 y队博弈,x先手,哪个队获胜。
思路:O(n ^ 1.5):这个题比较有意思,赛时想出一个玄学的解法,没想到就是标解。显然x和y博弈,要攻击的那一方必定派出最大攻击力val的某个人消灭掉val大个对方的人。
所以每次询问x和y,暴力当然是O(n)的,现在需要把每个队中相同攻击力的人合并,统计出个数cnti,这样每次用两个队最大攻击力的人们互相PK,可以O(1)判出彼此消灭了多少人,存活了多少人。这样的确优化了一点,其实复杂度已经优化到sqrt(n)了,可以证明出最多只需要比较sqrt(n)次就能判出哪个队最后获胜。
0 0
- 16暑期补HackRank计划
- 16暑期补TC计划
- 16年暑期瞎补CF计划
- 暑期计划!
- 暑期计划
- 暑期计划
- 暑期计划
- 暑期计划
- 暑期计划
- Android 暑期自学计划~~~
- 暑期培训计划
- 开博第一天 暑期计划
- 暑期的计划
- 暑期集训计划
- 暑期”7-11“计划
- ACM_暑期计划
- 暑期学习内容进度计划
- 思维导图--暑期计划
- 从Immutable来谈谈对于线程安全的理解误区
- 机器学习常见算法分类汇总
- RabbitMQ学习(四)之路由(java)
- 数字组合
- iOS-控件响应用户控制事件之事件处理
- 16暑期补HackRank计划
- 在studio build.gradle配置MaterialDesignLibrary
- 好用的分类统计--Python
- studio2.0+ndk-r11 中jni编译问题
- 为什么time()函数要返回1970年1月1日00点00分00秒开始到现在的秒数
- 剑指offer 26题 【分解让复杂问题简单】复杂链表的复制
- 统计字符串中有‘0’——‘9’的字符个数
- 根据业务定制的一个本地分页插件
- ActiveMQ的简单使用