前两天过年,所以两天前的比赛题目现在才来回顾。

这题是一个最平常的递归,加一个剪枝。题目说如果一段距离没有复仇者看守,消耗的能量为A,A一定是正整数。由此可知对于没有复仇者看守的段,不拆一定比拆成两半划得来。只有当这段距离有复仇者看守时,才比较拆开来划算还是不拆划算;

复仇者最多只有1e5个,所以不会超时。比赛的时候糊涂了,想到了但是算错了复杂度。没做;

C - Creative Snap GNU C++11 Accepted 155 ms 400 KB
#include "bits/stdc++.h"
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int INF = 0x3f3f3f3f;
const int MAXN = 1e5 + ;
int arr[MAXN];
int n, m, a, b;
// 求摧毁[l, r]这个段最少消耗的能量
LL minPow(int l, int r) {
int na = lower_bound(arr, arr + m, r + ) - lower_bound(arr, arr + m, l);
if (na == ) {
return a;
}
LL ans = (r - l + 1LL) * na * b;
if (r != l) {
int mid = l + r >> ;
ans = min(ans, minPow(l, mid) + minPow(mid + , r));
}
return ans;
}
int main() {
scanf("%d%d%d%d", &n, &m, &a, &b);
for (int i = ; i < m; i++) {
scanf("%d", &arr[i]);
}
sort(arr, arr + m);
printf("%lld\n", minPow(, << n));
return ;
}

第一次敲这个代码的时候用了一个multiset<int>来代替arr数组。后来发现lower_bound之后返回的迭代器不能相减。可能是之前看别人用lower_bound返回的迭代器减另一个迭代器受到了误解。只要在内存中连续存储的容器的迭代器才能相减,而multiset在内存中不连续,不能迭代器相减。

最新文章

  1. windows系统 SVN出现 can&#39;t open file‘\XXX\txn-current-lock’ 拒绝访问 问题处理
  2. Java的异常处理
  3. 浅谈rem、em、px
  4. Android学习笔记(十一)——ListView的使用(下)
  5. 敏捷软件开发:原则、模式与实践——第12章 ISP:接口隔离原则
  6. 最严谨的校验email地址的正则表达式
  7. Linux—fork函数学习笔记
  8. MyBatis学习总结_09_使用MyBatis Generator自动创建代码
  9. 百亿级别数据量,又需要秒级响应的案例,需要什么系统支持呢?下面介绍下大数据实时分析工具Yonghong Z-Suite
  10. QT更改程序图标
  11. getElementById返回的是什么?串讲HTML DOM
  12. python 写的几道题
  13. Django 实现list页面检索
  14. fastJson解析报错:com.alibaba.fastjson.JSONException: can&#39;t create non-static inner class instance.
  15. 本地安装了Maven但Eclipse的Preferences中没有Maven怎么办?
  16. python 中的re模块,正则表达式
  17. php 4种传值方式
  18. Django框架的使用教程--类视图-中间间-模板[六]
  19. selenium的webdriver三种等待方式(显式等待WebDriverWait+implicitly_wait隐式等待+sleep强制等待)
  20. MySQL Partition--分区基础

热门文章

  1. share团队冲刺4
  2. Codeforce 370A Rook, Bishop and King 数学规律
  3. 题解 P1447 【[NOI2010]能量采集】
  4. PAT Basic 反转链表 (25) [链表]
  5. Java--Runtime.addShutdownHook
  6. 实现迭代器(\_\_next\_\_和\_\_iter\_\_)
  7. sqlalchemy 入门
  8. 吴裕雄--天生自然 PYTHON3开发学习:正则表达式
  9. push 空内容push入数组会占位
  10. python之web自动化测试框架