#NOIP模拟赛#保证的利润(贪心 模拟)
来源:互联网 发布:知乎rss订阅地址 编辑:程序博客网 时间:2024/05/21 10:18
首先要想清楚一个性质,因为对于每个公司,都可以下任意种类的注,所以是否同一公司并无影响,可以分开来考虑。
对于每种注,因为买一注的花费是一样的,所以一定会优先选择回报高的购买, 并且,两种注都必须买(总体上看)。
对两种注分别从大到小排序。因为最后的答案由较低的一边的利润决定,所以优先将较小回报的那方加上更多的股数。
每次记录答案。
Code:
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;const int Max = 100000;int N;double A[Max + 5], B[Max + 5];bool cmp(double a, double b){ return a > b;}int main(){ freopen("sure.in", "r", stdin); freopen("sure.out", "w", stdout); scanf("%d" ,&N); for(int i = 1; i <= N; ++ i) scanf("%lf%lf", & A[i], & B[i]); sort(A + 1, A + 1 + N, cmp); for(int i = 1; i <= N; ++ i) A[i] += A[i - 1]; sort(B + 1, B + 1 + N, cmp); for(int i = 1; i <= N; ++ i) B[i] += B[i - 1]; double a = 0.0, b = 0.0, Ans = 0.0; int i = 0, j = 0; while(i <= N && j <= N){ while(a <= b){ ++ i; a = A[i]; Ans = max(Ans, min(a, b) - (i + j)); } while(a > b){ ++ j; b = B[j]; Ans = max(Ans, min(a, b) - (i + j)); } } printf("%.4f\n", Ans); return 0;}
阅读全文
0 0
- #NOIP模拟赛#保证的利润(贪心 模拟)
- [NOIP模拟赛]保证的利润
- 【贪心】[NOIP模拟赛]奇怪的队列
- NOIP模拟 打牌【贪心】
- [NOIP模拟][贪心]打牌
- 【贪心】【枚举】【重庆市NOIP模拟赛】旅行
- 【贪心】【noip模拟】皇后游戏
- 【贪心】NOIP模拟题“Kun”
- 20151004的NOIP模拟赛
- 20151005的NOIP模拟赛
- 20151006的NOIP模拟赛
- 20151007的NOIP模拟赛
- 20151017的NOIP模拟赛
- 20151024的NOIP模拟赛
- 20151031的NOIP模拟赛
- 10.5 NOIP模拟赛 割点+贪心+最小点覆盖
- #bzoj2932#【重庆市NOIP模拟赛】旅行(贪心 DP是不可以的!)
- noip模拟赛 双城记
- hive随笔
- C语言 快速排序
- iOS 生成自定义位数随机数
- HDU1892
- log4j.properties 详解与配置步骤
- #NOIP模拟赛#保证的利润(贪心 模拟)
- Spring报Context namespace element 'component-scan'... are only available on JDK 1.5 and higher解决问题
- 插值器
- csrf简述
- linux命令嵌套实例(三)
- Java/Android 设计模式系列(9)--代理模式
- STL常用容器用法之——queue和priority_queue
- 【Android】BaseAdapter探索
- 抽象类和接口浅述