ZROIDay4-比赛解题报告

扯闲话

感觉这个出题人的题做起来全都没感觉啊,今天又凉了,T1完全不知道什么意思,T2只会暴力,T3现在还不懂什么意思,真的太菜了

A

题意半天没搞懂爆零GG了,讲了一下才知道什么意思,还是比较有趣的一道题,一位大佬20分钟就切了

设默认押法国队本金是\(v\),则期望收益\(p*vx\),当\(p*xv-v>=0\)时,即\(p*x >= 1\)他才会押法国队,克罗地亚队类似。从这可以看到会押本金的人在排序后一定是一个前缀

然后容易发现,若法国队赔率一定,你的收益与克罗地亚队成一个单峰函数关系,因为法国队赢了,你要用他们押克罗地亚的本钱去偿还他们的赌金,然而赔率一旦过大,克罗地亚赢的话同理

于是我们枚举押法国队赢的人数(相当于枚举赔率),再二分出押克罗地亚队的最佳人数(相当于二分最佳赔率),然后枚举法国队赢或输你的收益,最后统计答案即可。当然正如第一个样例一样还可能出现所有人都不押才是最佳的情况。

还有这题读入巨大,要用double的读入优化

代码:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cctype>
#include <cmath>
#include <queue>
#define ll long long
#define ri register int
using std::sort;
using std::min;
using std::max;
template <class T>inline void read(T &x){
x=0;int ne=0,xx=0;char c;
while(!isdigit(c=getchar()))ne=c=='-';
xx=c-48;
while(isdigit(c=getchar()))xx=(xx<<3)+(xx<<1)+c-48;
if(c!='.'){
x=ne?-xx:xx;
return ;
}
int tot=1;double ans=1.0*xx;
double y=getchar()-48;
while(isdigit(c=getchar())){y=y*10+c-48;tot++;}
while(tot--){y=y/10;}
x=ne?-(ans+y):(ans+y);
}
const int maxn=1000005;
const int inf=0x7fffffff;
struct Dat{
double a,p,x,y,sumx,sumy;
Dat(){x=y=0;}
}dat[maxn];
inline bool cmpx(const Dat &a,const Dat &b){
return a.x<b.x;
}
inline bool cmpy(const Dat &a,const Dat &b){
return a.y<b.y;
}
int n;
int main(){
read(n);
for(ri i=1;i<=n;i++){
read(dat[i].a),read(dat[i].p);
//printf("%lf %lf\n",dat[i].a,dat[i].p);
dat[i].x=1/dat[i].p,dat[i].y=1/(1-dat[i].p);
}
sort(dat+1,dat+1+n,cmpx);
for(ri i=1;i<=n;i++)dat[i].sumx=dat[i-1].sumx+dat[i].a;
sort(dat+1,dat+1+n,cmpy);
for(ri i=1;i<=n;i++)dat[i].sumy=dat[i-1].sumy+dat[i].a;
double tmp1,tmp2,ans=-inf;
for(ri i=0;i<=n;i++){
int l=0,r=n,mid;
while(l<=r){
mid=(l+r)>>1;
tmp1=dat[i].sumx*(1-dat[i].x)+dat[mid].sumy;
tmp2=dat[i].sumx+dat[mid].sumy*(1-dat[mid].y);
ans=max(ans,min(tmp1,tmp2));
if(tmp1<tmp2)l=mid+1;
else r=mid-1;
}
}
printf("%lf\n",ans);
return 0;
}

B

毒瘤数据结构,不会

C

题目看不懂,还要特征多项式!?

ZROIDay4-比赛解题报告的更多相关文章

  1. ZROI Day1 比赛解题报告

    ZROI Day1 比赛解题报告 版权原因不提供题面相关信息 序 前天晚上搞得比较晚,然后早上做题很没状态,刚看到T1发现没什么思路就有点慌,赶紧看了看T2,T3, 发现T3暴力很好打,T2想了一想可 ...

  2. ZROI-Day2比赛解题报告

    ZROIDay2-比赛解题报告 版权原因不提供题面信息 序 这几天作息有点鬼畜,虽然昨晚很晚睡但是早上精神还不错,看到题发现T1很友好?T2woc这暴力都好难打?T3多项式?!这样下去比赛会不会出现更 ...

  3. 「BZOJ1722」「Usaco2006 Mar」Milk Team Select产奶比赛 解题报告

    Milk Team Select 产奶比赛 Description Farmer John's N (\(1 \le N \le 500\)) cows are trying to select th ...

  4. 杭州电子科技大学Online Judge 之 “确定比赛名次(ID1285)”解题报告

    杭州电子科技大学Online Judge 之 "确定比赛名次(ID1285)"解题报告 巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozh ...

  5. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  6. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

  7. Mutual Training for Wannafly Union #1解题报告

    ---恢复内容开始--- q神等人组织的vjudge上的多校训练,题目基本上都来自于CF,#1是上周进行的,参加后感觉收获很多,因为上周准备期中比较忙,解题报告现在补上. 比赛地址(兼题目地址) A题 ...

  8. Facebook Hacker Cup 2014 Qualification Round 竞赛试题 Square Detector 解题报告

    Facebook Hacker Cup 2014 Qualification Round比赛Square Detector题的解题报告.单击这里打开题目链接(国内访问需要那个,你懂的). 原题如下: ...

  9. Codeforces Round #378 (Div. 2) D题(data structure)解题报告

    题目地址 先简单的总结一下这次CF,前两道题非常的水,可是第一题又是因为自己想的不够周到而被Hack了一次(或许也应该感谢这个hack我的人,使我没有最后在赛后测试中WA).做到C题时看到题目情况非常 ...

  10. 【NOIP2015】提高day2解题报告

    题目: P1981跳石头 描述 一年一度的“跳石头”比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N ...

随机推荐

  1. react 实现数据双向绑定

    好久没有更新了 只是都写在有道笔记中 今天整理下 一些基础的 大神勿喷 一个基础的不能再基础的数据双向绑定 因为react不同于vue 没有v-model指令 所以怎么实现呢? import Reac ...

  2. Golang 空指针nil的方法和数据成员

    golang中,有一个特殊的指针值nil. 如何使用nil没有方法和成员变量呢? 下面来看下具体例子. 程序中,定义结构体类型Plane, 将Plane类型的指针作为函数的参数,然后传入nil作为实参 ...

  3. AJAX异步对象,即XMLHttpRequest

    //创建AJAX异步对象,即XMLHttpRequest function createAJAX(){ var ajax = null; try{ ajax = new ActiveXObject(& ...

  4. 怎么让mysql的id从0开始

    有时候我们在测试网站的时候,删除测试数据导致id不是从0开始,那如果想id是从0开始怎么办呢?mysql默认自增ID是从1开始了,但当我们如果有插入表或使用delete删除id之后ID就会不会从1开始 ...

  5. [Kerberos] Kerberos教程(二)

    4 Kerberos操作 最后,在获得前面段落中描述的概念后,可以讨论Kerberos如何运作.我们将通过列出和描述在身份验证期间在客户端和KDC之间以及客户端和应用程序服务器之间的每个数据包来执行此 ...

  6. C# 后台服务 web.config 中 项“ConnectionString”已添加。问题

    是自己在一网站下建了虚拟目录.原本网站为空,后来自己改了路径,有了默认配置很久后打开原本ok的虚拟目录,坑爹了.杯具了.代码:ConfigurationManager.ConnectionString ...

  7. 014-数据结构-树形结构-基数树、Patricia树、默克尔树、梅克尔帕特里夏树( Merkle Patricia Tree, MPT)

    一.基数树 Radix树,即基数树,也称压缩前缀树,是一种提供key-value存储查找的数据结构.与Trie不同的是,它对Trie树进行了空间优化,只有一个子节点的中间节点将被压缩.同样的,Radi ...

  8. vlc命令行: 转码 流化 推流

    vlc命令行: 转码 流化 推流 写在命令行之前的话: VLC不仅仅可以通过界面进行播放,转码,流化,也可以通过命令行进行播放,转码和流化.还可以利用里面的SDK进行二次开发. vlc命令行使用方法: ...

  9. PHP上传超大文件解决方案

    一提到大文件上传,首先想到的是啥??? 没错,就是修改php.ini文件里的上传限制,那就是upload_max_filesize.修改成合适参数我们就可以进行愉快的上传文件了.当然啦,这是一般情况下 ...

  10. linux下的缓存机制buffer、cache、swap

    一.缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果 ...