7th.Mar.2019
T1
- 这题真的神题吧,看完题目只会最短路和暴力dp,但不幸,一分也没有。
- 题解挂上算了……
T2
- 相比第一题,这个题就有点水了。(不过说实话自己是大力猜结论,合理对拍,成功找到正解结论)。
- 对原序列先从小到大排序。考虑要求平均数-中位数最大值,那么奇数个数的集合肯定比偶数个数的集合更优一些。这就是那个大胆的结论,正是有了它,我们才可以摆脱\(2^n\)枚举的魔咒!
- 我们已经知道了集合个数为奇数,显然可以枚举中位数。比较好想的是,我们枚举了中位数,再枚举一个长度,那么当前最优的取法已经确定。在中位数左边的数去靠右的,在中位数右边的也取靠右的。这样一定是最优的。
- 但是这样是\(n^2\)的,60分。要说暴力分挺足的,但是既然想到了这一步,再想不到二分就有点sb了吧。(实锤我就是那个sb)。你中位数已经确定了,你取的方案也知道了,靠右取。那么随着长度越来越长,一定会有一个分界点,使得平均数开始减小。二分这个分界点,就ok了。复杂度\(n*log_n\)。愉快Ac!
- 代码合理分治数据,稳!
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+10;ll sum[N];
int n,a[N],b[N];double ans;
double c,d;
void check(int top){int c[N];for(int i=1;i<=top;++i) c[i]=b[i];sort(c+1,c+top+1);double temp;if(top%2==1) temp=c[top/2+1];else temp=1.0*(c[top/2]+c[top/2+1])/2;double res=0;for(int i=1;i<=top;++i) res+=c[i];res=1.0*res/top;ans=max(ans,res-temp);
}
void dfs(int x,int top){if(x==n+1){check(top-1);return ;}b[top]=a[x];dfs(x+1,top+1);b[top]=0;dfs(x+1,top);
}
bool check1(int i,int mid){c=1.0*(sum[i-1]-sum[i-mid-1]+sum[n]-sum[n-mid]+a[i])/(2*mid+1)-a[i];d=1.0*(sum[i-1]-sum[i-mid]+sum[n]-sum[n-mid+1]+a[i])/(2*mid-1)-a[i];if(c<d) return 1;else return 0;
}
int main(){freopen("subset.in","r",stdin);freopen("subset.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;++i) scanf("%d",&a[i]);if(n<=20){dfs(1,1);printf("%.5lf\n",ans);}else if(n<=2000){sort(a+1,a+n+1);for(int i=1;i<=n;++i) sum[i]=sum[i-1]+a[i];for(int i=1;i<=n;++i){//i是当前中位数 for(int l=1;l<=min(i-1,n-i);++l){ans=max(ans,1.0*(sum[i-1]-sum[i-1-l]+sum[n]-sum[n-l]+a[i])/(2*l+1)-a[i]);}}printf("%.5lf\n",ans); }else{sort(a+1,a+n+1);for(int i=1;i<=n;++i) sum[i]=sum[i-1]+a[i];for(int i=1;i<=n;++i){//i是当前中位数 int l=1,r=min(i-1,n-i);while(l+1<r){int mid=l+r>>1;if(check1(i,mid)) r=mid;else l=mid;}if(check1(i,r)) ans=max(ans,d);else ans=max(ans,c);}printf("%.5lf\n",ans);}return 0;
}
T3
看完题目,完了。AC自动机+dp+期望+高斯消元,爆零吧。(哭了)
![](/skins/gray/images/speech.gif)
7th.Mar.2019相关推荐
- 【今日CV 计算机视觉论文速览】Thu, 28 Mar 2019
今日CS.CV计算机视觉论文速览 Thu, 28 Mar 2019 Totally 32 papers Daily Computer Vision Papers 1.Title: GAN-based ...
- 【今日CV 计算机视觉论文速览】Wed, 27 Mar 2019
今日CS.CV计算机视觉论文速览 Wed, 27 Mar 2019 Totally 44 papers ?昨日速览 ✈更多精彩请移步主页 Daily Computer Vision Papers 1. ...
- 【今日CV 计算机视觉论文速览】Mon, 25 Mar 2019
今日CS.CV计算机视觉论文速览 Mon, 25 Mar 2019 Totally 21 papers Interesting: ?图像超分辨的快速贝叶斯不确定性估计,在测试阶段,利用批均值和方差作为 ...
- 【今日CV 视觉论文速览】Tue 21 Mar 2019
今日CS.CV计算机视觉论文速览 Tue 21 Mar 2019 Totally 24 papers Daily Computer Vision Papers [1] Title: Photometr ...
- 【今日CV 计算机视觉论文速览】Wed, 20 Mar 2019
今日CS.CV计算机视觉论文速览 Wed, 20 Mar 2019 Totally 30 papers Daily Computer Vision Papers [1] Title: Corners ...
- 【今日CV 计算机视觉论文速览】19 Mar 2019
今日CS.CV计算机视觉论文速览 Wed, 20 Mar 2019 Totally 66 papers Interesting: ?LiteFlowNet2, 基于数据可信度和正则化的轻量级的光流框架 ...
- 【今日CV 计算机视觉论文速览】Mon, 18 Mar 2019
今日CS.CV计算机视觉论文速览 Mon, 18 Mar 2019 Totally 48 papers Daily Computer Vision Papers [1] Title: Adversar ...
- 【今日CV 计算机视觉论文速览】Tue, 12 Mar 2019
今日CS.CV计算机视觉论文速览 Tue, 12 Mar 2019 Totally 50 papers Interesting: SARA基于深度强化学习用艺术笔触渲染图片,使得机器可以学会解构图片, ...
- 【今日CV 计算机视觉论文速览】 11 Mar 2019
今日CS.CV计算机视觉论文速览 Mon, 11 Mar 2019 Totally 35 papers Interesting: ?Three-Player GAN,在通常GAN的基础上增加了生成器和 ...
最新文章
- 学习动态性能表 第二篇--v$sesstat
- 分库分表就能无限扩容吗,解释得太好了!
- PHP学习方向-进阶(二)
- 使用druid【使用官方的stater】||集成JdbcTemplate
- ---WebCam网络摄像头10 socket
- unix网络编程 的环境配置
- 斗地主AI算法——第六章の牌型判断
- linux 目录sbit,linux中SUID,SGID与SBIT的奇妙用途详解
- block inline 和inline-block 块级元素和内联元素
- Lua游戏开发----游戏搭建
- Linux IPC(Inter-Process Communication,进程间通信)之管道学习
- Python进程学习笔记-多进程修改全局变量
- CSS之立方体绘画步骤
- 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(八)——反馈
- Visio流程图配色
- 使用WP-Salts-Update-CLI自动更新您的WordPress盐
- 看机器学习精准预测:谁是iphone的忠实玩家?
- 一个使用 selenium 模块爬取(Twitter、New York Times)网站的可配置爬虫代码
- 计算机基础知识------操作系统
- vue-epg解决iptv项目中的焦点获取和移动