Codeforces - 706B - Interesting drink - 二分 - 简单dp
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 long int a[]; struct day{
int idx;
int coin;
int cnt;
day(int idx=,int coin=):idx(idx),coin(coin){}
}d[]; 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[]; int main(){
int n;
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
sort(a,a+n); int q;
scanf("%d",&q);
for(int i=;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=;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=;i<q;i++){
printf("%d\n",d[i].cnt);
//d[i].idx=i;
}
}
2019-01-16
Codeforces - 706B - Interesting drink - 二分 - 简单dp的更多相关文章
- CodeForces 706B Interesting drink (二分查找)
题意:给定 n 个数,然后有 m 个询问,每个询问一个数,问你小于等于这个数的数有多少个. 析:其实很简单么,先排序,然后十分查找,so easy. 代码如下: #pragma comment(lin ...
- CodeForces - 706B Interesting drink(二分查找)
Interesting drink Problem Vasiliy likes to rest after a hard work, so you may often meet him in some ...
- 【二分】Codeforces 706B Interesting drink
题目链接: http://codeforces.com/problemset/problem/706/B 题目大意: n (1 ≤ n ≤ 100 000)个商店卖一个东西,每个商店的价格Ai,你有m ...
- CodeForces 706B Interesting drink
排序,二分. 将$x$数组从小到大排序,每次询问的时候只要二分一下位置就可以了. #pragma comment(linker, "/STACK:1024000000,1024000000& ...
- codeforces 706B B. Interesting drink(二分)
题目链接: B. Interesting drink 题意: 给出第i个商店的价钱为x[i],现在询问mi能在多少个地方买酒; 思路: sort后再二分; AC代码: #include <ios ...
- Codeforces 627D Preorder Test(二分+树形DP)
题意:给出一棵无根树,每个节点有一个权值,现在要让dfs序的前k个结点的最小值最大,求出这个值. 考虑二分答案,把>=答案的点标记为1,<答案的点标记为0,现在的任务时使得dfs序的前k个 ...
- Codeforces - 773A - Success Rate - 二分 - 简单数论
https://codeforces.com/problemset/problem/773/A 一开始二分枚举d,使得(x+d)/(y+d)>=p/q&&x/(y+d)<= ...
- codeforces 710E Generate a String(简单dp)
传送门:http://codeforces.com/problemset/problem/710/E 分析: 让你写一个全由"a"组成的长为n的串,告诉你两种操作,第一种:插入一个 ...
- Codeforces - 9D - How many trees? - 简单dp - 组合数学
https://codeforces.com/problemset/problem/9/D 一开始居然还想直接找公式的,想了想还是放弃了.原来这种结构是要动态规划. 状态是知道怎么设了,$t_{nh} ...
随机推荐
- poj2482--Stars in Your Window(扫描线)
题目链接:点击打开链接 链接题目大意:给出n个星星的坐标,每一个星星有一个亮度.给出一个矩形的长和宽,问矩形能包含的星星的最大亮度和(不包含边框). 如果每个星星都是矩形的最左下点.那么每个星星都能够 ...
- stl之multiset容器的应用
与set集合容器一样,multiset多重集合容器也使用红黑树组织元素数据,仅仅是multiset容器同意将反复的元素健值插入.而set容器则不同意. set容器所使用的C++标准头文件set.事实上 ...
- MongoDB---出现no write has been done on this connection解决方式
no write has been done on this connection 这个问题出现了好几天.日志里面一天出现几十次no write has been done on this conne ...
- 使用网络监视器(IRSI)捕捉和分析协议数据包
转载请注明原地址. 实验名称: 理解子网掩码.网关和ARP协议的作用 一.实验目的和要求 (1) 熟悉IRIS的使用 (2) 验证各种协议数据包格式 (3) 学会捕捉并分析各 ...
- iOS常用网络库收集
一 ASIHttpRequest二 AFNetworking 三 AFDownloadRequestOperationA progressive download operation for AFNe ...
- NOI 2014简要题解
Day 1.Problem A. 起床困难综合症 100分做法: 把数字看成二进制数.对于初始攻击力.我们将其拆成32位,并求出每一位为0和1时经过全部防御门之后分别得到的数字.然后就是按位贪心了,我 ...
- HUNNU-10307-最优分解问题
点击打开题目连接 # include <queue> # include <cstdio> # include <cstring> # include <io ...
- 设计模式学习笔记——Mediator中介者模式
将众多对象之间的网状关系转为全部通过一个中间对象间接发生关系,此中间对象为中介者. 看图最直观: 作用不言而喻,就是降低对象之间的耦合度,乃至降低了整个系统的复杂度. 有点象代理模式,更象外观模式:
- 一个UserState(WCF)的小例子
练习WCF的时候,遇到了一个异步调用(也许是)的问题.后来使用了重载参数UserState试着解决了一下,但不是很清楚这个参数的其他用途.现在贴出这个例子. Service部分: 客户端后台调用部分: ...
- inheritance super overrides printMethod in Superclass override重写父方法
Core Java Web Page http://horstmann.com/corejava.html [ inheritance ] package v1ch05.inheritance; im ...