凡和邻家男孩玩完了纸牌,兴致很高,于是准备了一场表演艺术对抗赛。 他特意请来了很多表演艺术家,分成绿黑两队,进行名为 PK,实则捞金的表演。

凡为了捞金,开设了一个赌局,在比赛开始之前招揽人们来押注谁能胜出,在所有人进行投注之后,凡需要告诉大家绿方和黑方的单位返还金额都是多少。

举个例子,如果绿方的单位返还金额为 555,那么我每押 111 块钱绿方胜,如果成真就能拿回 555 块钱,但是如果结果绿方输了,我就拿不回来任何钱。

凡决定将单位返还金额设得更具有吸引力,所以他要求“绿方胜的单位返还金额+黑方胜的单位返还金额=T”,并且为了赚更多的钱,凡可以在中间某两个投注的人之间更改单位返还金额,但是要求双方的总和仍然为 T,并且只能更改一次。

不幸的是,凡突然发现自己请来的表演艺术家竟然和众多投注人是一伙的,也就是说,在凡定下单位返还金额之后,那些艺术家会操纵比赛结果,从而让凡拿出更多的钱来。

这下凡有些慌了,于是他来询问你应该怎么制定单位返还金额。

输入格式

第一行一个整数 NNN,代表投注的人的个数。

接下来 NNN 行,每行两个实数 ai,bia_i,b_ia​i​​,b​i​​ 代表第 iii 个人投注黑方胜和绿方胜的资金。

最后一行一个实数 TTT,含义如题目中所示。

输出格式

一个实数,代表你最少返还的金额(保留两位小数)。

数据范围与约定

对于所有数据,0≤ai,bi,T≤1000\le a_i,b_i,T \le 1000≤a​i​​,b​i​​,T≤100,且至多精确到两位小数。

样例解释 1

一种最优方案是:

第一次投注及之前,单位返还金额为 101010 和 000。

第二次投注及之后,单位返还金额为 000 和 101010

这样无论哪方胜利,你都不会返还任何金钱。

样例解释 2

一种最优方案是:

第一次投注及之前,单位返还金额为 0.50.50.5 和 0.50.50.5。

第二次投注及之后,单位返还金额为 0.50.50.5 和 0.50.50.5

这样无论哪方胜利,你的返还金额都为 555。

样例输入1

3
0 10
10 0
10 0
10

样例输出1

0.00

样例输入2

2
5 5
5 5
1

样例输出2

5.00
题解:
因为无论如何都是最差情况,所以让两方胜利之后返还金额相等是最好的
先枚举在哪里分段,设分段之前押黑方胜的资金为 A,绿方胜资金为 C,之后押黑方胜资金为 B,绿方胜资金为 D,分段之前黑方胜单位返还金额为 p,分
段之后为 q,则有式子:(A+C)p+(B+D)q=(C+D)T
在满足上述式子的前提下要求 Ap+Bq 最小
稍作分析可知q,p值在某一个极值最优,意思是:要么p尽可能大,要不q尽可能大

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
double a[],b[],tota,totb,A,B,C,D,p,q,T,ans=2e9;
int n;
int main()
{int i;
cin>>n;
for (i=;i<=n;i++)
{
scanf("%lf%lf",&a[i],&b[i]);
if (a[i]<=1e-&&b[i]<=1e-) n--,i--;
tota+=a[i];totb+=b[i];
}
cin>>T;
A=;B=tota;C=;D=totb;
for (i=;i<n;i++)
{
A+=a[i];B-=a[i];C+=b[i];D-=b[i];
if (A<=D) p=T;
else p=T*(C+D)/(A+C);
q=(T*(C+D)-(A+C)*p)/(B+D);
if (A*p+B*q<ans) ans=A*p+B*q; if (B<=C) q=T;
else q=T*(C+D)/(B+D);
p=(T*(C+D)-(B+D)*q)/(A+C);
if (A*p+B*q<ans) ans=A*p+B*q;
}
printf("%.2lf",ans);
}

计蒜客NOIP模拟赛(2) D1T2 表演艺术的更多相关文章

  1. 计蒜客NOIP模拟赛4 D1T2小X的密室

    小 X 正困在一个密室里,他希望尽快逃出密室. 密室中有 N 个房间,初始时,小 X 在 1 号房间,而出口在 N 号房间. 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会单向地创造一条 ...

  2. 计蒜客NOIP模拟赛(3) D1T2 信息传递

    一个数据包在一个无向网络中传递.在时刻0,该数据包将依照特定的概率随机抵达网络中的某个节点.网络可以看做一张完全带权无向图,包含N个节点,若t时刻数据包在节点i,则在t+1时刻,数据包被传递到节点j的 ...

  3. 计蒜客NOIP模拟赛6 D1T1Diamond-square

    Diamond-square 算法是一种能够用于生成噪声的算法,现在我们考虑这个算法的一个变种. 你有一个 2^n\times 2^n2​n​​×2​n​​ 的网格,一共有 (2^n+1)^2(2​n ...

  4. 计蒜客NOIP模拟赛4 D2T1 鬼脚图

    鬼脚图,又称画鬼脚,在日本称作阿弥陀签,是一种经典游戏,也是一种简易的决策方法,常常用来抽签或决定分配组合. 下图就是一张鬼脚图,其包含若干条竖线和若干条横线.请注意,横线只能水平连接相邻的两条竖线, ...

  5. 计蒜客 NOIP模拟赛(3) D1T1火山喷发

    火山喷发对所有附近的生物具有毁灭性的影响.在本题中,我们希望用数值来模拟这一过程. 在环境里有 nnn 个生物分别具有 A1,A2,⋯,An​​点生命值,一次火山喷发总计 M轮,每轮造成 1点伤害,等 ...

  6. 计蒜客NOIP模拟赛(2) D1T1邻家男孩

    凡是一个具有领导力的孩子.现实生活中他特别喜欢玩一个叫做 UNO 的纸牌游戏,他也总是带着其他小朋友一起玩,然后战胜他们.慢慢地,他厌倦了胜利,于是准备发明一种新的双人纸牌游戏. 初始时,每个人手中都 ...

  7. 计蒜客NOIP模拟赛5 D1T1 机智的 AmyZhi

    那年一个雨季,AmyZhi 在校门外弯身买参考书. 这时 SiriusRen 走过来,一言不合甩给她一道“自认为”很难的题: --------------- 给你一个数字 NN(NN 的范围是 11  ...

  8. 计蒜客NOIP模拟赛4 D2T2 跑步爱天天

    YOUSIKI 在 noip2016 的一道<天天爱跑步>的题爆零后,潜心研究树上问题,成为了一代大师,于是皮皮妖为了测验他,出了一道题,名曰<跑步爱天天>. 有一个以 1 为 ...

  9. 计蒜客NOIP模拟赛4 D1T3 小X的佛光

    小 X 是远近闻名的学佛,平日里最喜欢做的事就是蒸发学水. 小 X 所在的城市 X 城是一个含有 N 个节点的无向图,同时,由于 X 国是一个发展中国家,为了节约城市建设的经费,X 国首相在建造 X ...

随机推荐

  1. DNS协议(一)

    在互联网上要想与另外一台主机通信,要知道对方的IP地址,但是IP地址是很难记忆的, 比如百度的一台服务器的IP地址为115.239.210.27,我们在浏览器中输入http://115.239.210 ...

  2. 百词斩APP分析

    一.调研 1.第一次上手   第一次使用,可以使用微信和qq登录感觉挺不错的不然又要注册有点麻烦,在功能上,用户可以针对自身选择不同水平的英语背单词,然后有多钟方式对自己的听力和单词翻译进行提升.在u ...

  3. 201621123031 《Java程序设计》第9周学习总结

    作业09-集合与泛型 1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 一.泛型的基本概念 泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Paramet ...

  4. 使用Putty连接Amazon EC2 Instance

    Amazon的EC2中,默认是不允许使用用户名和密码直接连接Instance的,而是通过AWS (Amazon Web Service)提供的证书.在第一次使用EC2的时候,AWS会要求你创建一个证书 ...

  5. Session的过期时间如何计算?

    在生成session的时候,会设置一个session过期时间.session的过期时间并不是从生成session对象开始计算,超过过期时间,session就失效了. 而是每当一个浏览器请求,sessi ...

  6. 第四十三条:返回零长度的数组或者集合,而不是null

    如果一个方法的返回值类型是集合或者数组 ,如果在方法内部需要返回的集合或者数组是零长度的,也就是没有实际对象在里面, 我们也应该放回一个零长度的数组或者集合,而不是返回null.如果返回了null,客 ...

  7. 流程控制语句(MySQL/MariaDB )

    本文目录:1.BEGIN...END2.true和false3.if结构4.case结构5.loop.leave和iterate6.repeat循环7.while循环 MySQL/MariaDB中的符 ...

  8. Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇——多页面VueSSR+热更新Server)

    Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇--多页面VueSSR+热更新Server) @(HTML/JS) 这是Vue多页面框架系列文章的第二篇,上一篇(纯前 ...

  9. 阿里云API网关(17)签名算法

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  10. notepad++运行Python

    1.打开notepad++的菜单栏,点击run 2.输入cmd /k python "$(FULL_CURRENT_PATH)" & PAUSE & EXIT 3. ...