题目链接:

http://codeforces.com/gym/101194/attachments

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5923

题意:

现有 $N$ 支队伍参加比赛,只有一个队伍能获胜。给出每个队伍一个赔率 $A_i:B_i$,你往这个队投 $x$ 元,若该队获胜你可得到 $\frac{A_i+B_i}{A_i}\cdot x$ 元,否则得到 $0$ 元。

首先你要确保投注的每个队伍中,不管哪个胜利了你都可以赚,现在要求最多可以投多少个队伍。

题解:

假设你总共投注 $x(x>0)$ 元,且对于第 $i$ 个队伍你投了 $p_i \cdot x(0 \le p_i \le 1)$ 元。那么,必须满足 $p_i \cdot x \cdot \frac{A_i+B_i}{A_i}>x \Rightarrow p_i > \frac{A_i}{A_i+B_i}$

显然,$\sum p_i = 1$,必须满足 $\sum \frac{A_i}{A_i+B_i} < 1$,同时不管你选择多少队伍选择哪几个队伍,

又,只要满足 $\sum \frac{A_i}{A_i+B_i} < 1$ 我必然可以调整每个队伍相应的 $p_i$ 使得 $p_i > \frac{A_i}{A_i+B_i}$。

因此,只要尽可能选择 $\frac{A_i}{A_i+B_i}$ 小的队伍,直到 $\sum \frac{A_i}{A_i+B_i} \ge 1$ 为止。

double的精度不够,需要用long double。

AC代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
int n;
long double c[maxn];
int main()
{
int T;
cin>>T;
for(int kase=;kase<=T;kase++)
{
scanf("%d",&n);
for(int i=;i<n;i++)
{
double a,b;
scanf("%lf:%lf",&a,&b);
a=floor(a*);
b=floor(b*);
c[i]=a/(a+b);
}
sort(c,c+n);
int ans=;
long double sum=;
for(int i=;i<n;i++)
{
sum+=c[i];
if(sum>=) break;
ans++;
}
printf("Case #%d: %d\n",kase,ans);
}
}

Gym 101194E / UVALive 7901 - Ice Cream Tower - [数学+long double][2016 EC-Final Problem E]的更多相关文章

  1. Gym 101194D / UVALive 7900 - Ice Cream Tower - [二分+贪心][2016 EC-Final Problem D]

    题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?opti ...

  2. 2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 二分+贪心

    /** 题目:2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 链接:http://codeforces.com/gym/101194 题意:给n个木块,堆 ...

  3. Ice Cream Tower

    2017-08-18 21:53:38 writer:pprp 题意如下: Problem D. Ice Cream Tower Input file: Standard Input Output f ...

  4. Ice Cream Tower(The 2016 ACM-ICPC Asia China-Final Contest 二分&贪心)

    题目: Mr. Panda likes ice cream very much especially the ice cream tower. An ice cream tower consists ...

  5. Gym 101194D Ice Cream Tower

    被一道数位DP折磨得欲仙欲死之后,再做这道题真是如同吃了ice cream一样舒畅啊 #include<bits/stdc++.h> using namespace std; #defin ...

  6. Ice Cream Tower Gym - 101194D (贪心 + 二分 )

    题目链接 : https://cn.vjudge.net/problem/Gym-101194D 题目大意 : 给你n个冰激凌球,让你用这些冰激凌球去垒冰激凌,要求是下面的这一个必须是他上面一个的两倍 ...

  7. The 2016 ACM-ICPC Asia China-Final D. Ice Cream Tower 二分 + 贪心

    题目大意: 对于给出的n个冰激凌球的大小,满足下面的球的大小是上一个的至少2倍,对于给出的k(由k的冰激凌球才能算作一个冰激凌塔),问n个冰激凌球可以最多堆出多少个高度为k的冰激凌塔 题目分析: 对于 ...

  8. Problem D. Ice Cream Tower

    题解:二分加贪心,,,二分答案,然后进行判断,判断的时候,首先给每一组配一个最大的球,然后在向每一组里面填球,注意填球的时候要按组进行,每一组先填一个,然后更新每一组内的最小值,方便下一次寻找. #i ...

  9. Gym - 101670G Ice cream samples(CTU Open Contest 2017 尺取法)

    题目: To encourage visitors active movement among the attractions, a circular path with ice cream stan ...

随机推荐

  1. [转]The Production Environment at Google (part 2)

    How the production environment at Google fits together for networking, monitoring and finishing with ...

  2. Linux下修改Mysql的用户(root)的密码的俩种方法

     from:https://www.cnblogs.com/daizhuacai/archive/2013/01/17/2865138.html   修改的用户都以root为列.一.拥有原来的myql ...

  3. [windows+cocos2dx]文本类

    文字也是游戏最重要的元素之中的一个,以下就看看使用动态字体和静态字体库怎样创建文字.使用动态字体库创建的文字能够包括经常使用的不论什么字符,一般假设用户要输入名字,这就最好用动态字体库.由于你不知道用 ...

  4. [转]Anatomy of a Program in Memory

    Memory management is the heart of operating systems; it is crucial for both programming and system a ...

  5. Openwrt 刷机后配置WAN口,安装luci和设置中文、安装挂载USB存储。

    官方版本的ROM编译时时没有把luci和uhttpd打包进去的,所以,要ssh登录到路由器后手动安装,默认用户名root,密码是空. 如果你的路由器是挂载在其他路由下面的,DHCP可以获取到IP,能正 ...

  6. XAMARIN上运行IPHONE模拟器

    重装农药第32天!!! 今天弄XAMARIN运行IPHONE模拟器,前提是需要MAC 同时在开着,然后打开昨天 建立的HELLO WORLD项目,选择APP1.IOS,直接点右边的三角运行即可,他会自 ...

  7. FFmpeg: 一个简单测试手机解码效率的方法

    先写一个获取当前时间戳的方法 long long GetNowMs() { struct timeval tv; gettimeofday(&tv, NULL); ; // 为了简化计算,否则 ...

  8. Spring事务的5种隔离级别和7种传播性

    隔离级别 isolation,5 种: ISOLATION_DEFAULT,ISOLATION_READ_UNCOMMITTED,ISOLATION_READ_COMMITTED,ISOLATION_ ...

  9. SkyWalking

    介绍 SkyWalking 创建与2015年,提供分布式追踪功能.从5.x开始,项目进化为一个完成功能的Application Performance Management系统.他被用于追踪.监控和诊 ...

  10. name转json

    ^(\{)?(?<=\n)(.*)(\})?$ "$2":"", UserId UserOrderId ChargeAccount BuyNum Good ...