https://codeforces.com/problemset/problem/706/B

因为没有看见 $x_i$ 的上限是 $10^5$ ,就用了二分去做,实际上这道题因为可乐的价格上限是 $10^6$ ,可以用复杂度为 $O(max(x_i))$ 的dp去做。

也就是说,当这道题的可乐数量上升,二分就容易超时,而可乐的价格上升则dp容易爆内存且超时。各有所长

#include<bits/stdc++.h>
using namespace std;
#define ll long longint a[100005];struct day{int idx;int coin;int cnt;day(int idx=0,int coin=0):idx(idx),coin(coin){}
}d[100005];struct cmp{bool operator()(day &d1,day &d2){return d1.coin<d2.coin;}
};struct cmp2{bool operator()(day &d1,day &d2){return d1.idx<d2.idx;}
};int dp[100005];int main(){int n;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);}sort(a,a+n);int q;scanf("%d",&q);for(int i=0;i<q;i++){scanf("%d",&d[i].coin);d[i].idx=i;}sort(d,d+q,cmp());//d[0].cnt=upper_bound(a,a+n,d[0].coin)-a;for(int i=0;i<q;i++){d[i].cnt=upper_bound(a,a+n,d[i].coin)-a;//d[i].idx=i;
    }sort(d,d+q,cmp2());for(int i=0;i<q;i++){printf("%d\n",d[i].cnt);//d[i].idx=i;
    }
}

2019-01-16

转载于:https://www.cnblogs.com/Yinku/p/10278777.html

Codeforces - 706B - Interesting drink - 二分 - 简单dp相关推荐

  1. codeforces 706B B. Interesting drink(二分)

    题目链接: B. Interesting drink 题意: 给出第i个商店的价钱为x[i],现在询问mi能在多少个地方买酒; 思路: sort后再二分; AC代码: #include <ios ...

  2. Codeforces 41D Pawn 简单dp

    题目链接:点击打开链接 给定n*m 的矩阵 常数k 以下一个n*m的矩阵,每一个位置由 0-9的一个整数表示 问: 从最后一行開始向上走到第一行使得路径上的和 % (k+1) == 0 每一个格子仅仅 ...

  3. hdu 3016 Man Down(简单线段树简单DP)

    Man Down Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. hdu2067 简单dp或者记忆化搜索

    题意: 小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  5. POJ1088:滑雪(简单dp)

    题目链接:  http://poj.org/problem?id=1088 题目要求: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小.求可以滑落的最长长度. 题目解析: 首先要先排一 ...

  6. 【题解】hdu 3586 Information Disturbing 二分 树形dp

    题目描述 Information Disturbing Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Jav ...

  7. 第三讲 数学与简单DP【完结】

    目录 1205. 买不到的数目 [数学结论题] 1211. 蚂蚁感冒 [模拟 / 推理] 1216. 饮料换购 [简单 / 模拟] 2. 01背包问题 [板子题] 1015. 摘花生 [简单DP] 8 ...

  8. hdu 2881(简单dp)

     题意:n*n的矩阵,里面有m个格子是有任务要去完成的,t,x,y表示要在第t秒到达(x,y)的格子完成任务,问你最多可以完成多少 解题思路:简单dp,将时间排个序后就是LIS #include< ...

  9. 洛谷 P1800 software_NOI导刊2010提高(06)(二分答案+DP检验)

    P1800 software_NOI导刊2010提高(06) 标签 二分答案 难度 普及/提高- 题目描述 一个软件开发公司同时要开发两个软件,并且要同时交付给用户,现在公司为了尽快完成这一任务,将每 ...

最新文章

  1. 380万播放量,也许是全网最火的机器学习视频
  2. mysql 设置 0、1 用什么数据类型_MySQL索引的基本使用
  3. 《Android应用开发》——1.3节配置Eclipse
  4. 使用c#接入华为云-内容审核
  5. 就php干活,php可以做什么?,懂得这些技巧就够了
  6. app软件测试是否强制升级_这些测试方法对于任何软件都必须是强制性的
  7. 政府门户应该怎样建设?——解读中国政府网站绩效评估标准
  8. unicode编码对照表
  9. 微信投票刷票器手机免费版、手机微信投票作弊神器原理
  10. 数据中心 服务器管理规范,互联网技术详解 | 新时代数据中心管理标准Redfish
  11. Ubuntu 20.04美化及QQ、微信、ssh客户端安装
  12. C2:Unity3D制作智能家居设计软件——绘制户型(一)
  13. 主动学习、纯半监督学习与直推学习
  14. HTML两张图片翻转,canvas实现图片镜像翻转的2种方式
  15. Qt 6安装(qt6 测试在win7运行崩溃,不再支持win7)
  16. 【光通信】单模与多模区别
  17. CANopen协议学习
  18. 干货教程:如何把一张照片用PS做成漫画风格(附最新视频教程)
  19. python画图颜色填充_【Python】Matplotlib画图(十一)——箱线图
  20. 解决Kali linux安装后无法使用键盘输入

热门文章

  1. 从零开始springboot 第二讲
  2. 修改mysql编码方式
  3. php输出echo、print、print_r、printf、sprintf、var_dump比较
  4. Java基础知识强化53:经典排序之选择排序(SelectionSort)
  5. JavaScript 数组 array.at() 获取数组中最后一个元素
  6. flutter跨平台开发之App升级方案
  7. Flutter 开发应用第一个页面
  8. Ubuntu 的 bash和dash的区别
  9. sublime text3常用的一些快捷键
  10. 【知了堂学习笔记】数据库连接池简介,以及Eclipse中C3p0连接池的简单运用