HDU 4923 Room and Moor(瞎搞题)

瞎搞题啊。找出1 1 0 0这样的序列,然后存起来,这样的情况下最好的选择是1的个数除以这段的总和。

然后从前向后扫一遍。变扫边进行合并。每次合并。合并的是他的前驱。这样到最后从t-1找出的那条链就是最后满足条件的数的大小。

Room and Moor

Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 307    Accepted Submission(s): 90


Problem Description
PM Room defines a sequence A = {A1, A2,..., AN}, each of which is either 0 or 1. In order to beat him, programmer Moor has to construct another sequence B = {B1, B2,... , BN} of the same length, which satisfies that:


Input
The input consists of multiple test cases. The number of test cases T(T<=100) occurs in the first line of input.

For each test case:
The first line contains a single integer N (1<=N<=100000), which denotes the length of A and B.
The second line consists of N integers, where the ith denotes Ai.

Output
Output the minimal f (A, B) when B is optimal and round it to 6 decimals.

Sample Input
4 9 1 1 1 1 1 0 0 1 1 9 1 1 0 0 1 1 1 1 1 4 0 0 1 1 4 0 1 1 1

Sample Output
1.428571 1.000000 0.000000 0.000000

Source
2014 Multi-University Training Contest 6
#include <algorithm>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <iomanip>
#include <stdio.h>
#include <string>
#include <queue>
#include <cmath>
#include <stack>
#include <ctime>
#include <map>
#include <set>
#define eps 1e-9
///#define M 1000100
#define LL __int64
///#define LL long long
///#define INF 0x7ffffff
#define INF 0x3f3f3f3f
#define PI 3.1415926535898
#define zero(x) ((fabs(x)<eps)?

0:x) using namespace std; const int maxn = 1000010; int num[maxn]; int sum[maxn][2]; int pre[maxn]; double x[maxn]; int main() { int T; cin >>T; while(T--) { int n; scanf("%d",&n); for(int i = 0; i < n; i++) scanf("%d",&num[i]); int t = 0; int cnt1 = 0; int cnt2 = 0; if(!num[0]) cnt1 = 1; if(num[0]) cnt2 = 1; for(int i = 1; i < n; i++) { if(num[i] > num[i-1]) { sum[t][0] = cnt1; sum[t++][1] = cnt2; cnt1 = cnt2 = 0; if(!num[i]) cnt1++; if(num[i]) cnt2++; continue; } if(!num[i]) cnt1++; if(num[i]) cnt2++; } sum[t][0] = cnt1; sum[t][1] = cnt2; t++; for(int i = 0 ; i < t; i++) x[i] = (1.0*sum[i][1]/((sum[i][0]+sum[i][1])*1.0)); pre[0] = -1; for(int i = 1; i < t; i++) { if(x[i] < x[i-1]) { sum[i][0] += sum[i-1][0]; sum[i][1] += sum[i-1][1]; x[i] = 1.0*sum[i][1]/(sum[i][1]+sum[i][0])*1.0; pre[i] = pre[i-1]; int p = pre[i]; while(p != -1) { if(x[i] < x[p]) { sum[i][0] += sum[p][0]; sum[i][1] += sum[p][1]; x[i] = 1.0*sum[i][1]/(sum[i][0]+sum[i][1])*1.0; pre[i] = pre[p]; p = pre[p]; continue; } break; } continue; } pre[i] = i-1; } int p = pre[t-1]; double ans =0; ans += sum[t-1][0]*pow(x[t-1], 2)+sum[t-1][1]*pow(x[t-1]-1, 2); while(p != -1) { ans += sum[p][0]*pow(x[p], 2)+sum[p][1]*pow(x[p]-1, 2); p = pre[p]; } printf("%.6lf\n",ans); } return 0; }



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下的文件系统,Linux根文件系统(“/”文件系统)下的目录介绍

Linux下的文件存储与Windows完全不同&#xff0c;Windows将系统文件存储在系统盘(比如说C:\下)Linux根本没有盘符到概念只有一个根文件系/&#xff0c;各个磁盘分区挂载在/media/下(或者/mnt/下)/下到如/etc,/proc,/bin,/dev,lib等很是让用惯了Windows的用户不解&#xff0c;下…

greenlet 详解

greenlet初体验回到顶部Greenlet是python的一个C扩展&#xff0c;来源于Stackless python&#xff0c;旨在提供可自行调度的‘微线程’&#xff0c; 即协程。generator实现的协程在yield value时只能将value返回给调用者(caller)。 而在greenlet中&#xff0c;target.switch&am…

详细图解mongodb 3.4.1 win7x64安装

原文&#xff1a;http://www.cnblogs.com/yucongblog/p/6895983.html 详细图解&#xff0c;记录 win7 64 安装mongo数据库的过程。安装的版本是 MongoDB-win32-x86_64-2008plus-ssl-3.4.1-signed。 我下载的源文件&#xff1a;mongodb-win32-x86_64-2008plus-ssl-3.4.1-signed我…

linux用ping命令测试网速,linux下面使用命令测试网速

大家都知道在speedtest是市面上最准确最全面的测速工具&#xff0c;但在linux命令行不能直接使用&#xff0c;所以我们就借助脚本调用speedtest的接口来利用他测试网速。1.下载speedtest-cli脚本&#xff1a;下载地址&#xff1a;https://raw.githubusercontent.com/sivel/spee…

rocksdb ubuntu c++源码编译测试

2019独角兽企业重金招聘Python工程师标准>>> 环境&#xff1a; ubuntu16.4 需要安装 snappy gflage bz2 zstd 以及g 其中zstd是facebook开放源代码里的压缩的库 git clone https://github.com/facebook/rocksdb.git cd rocksdb make static_lib 成功生成 librocksd…

NABARD的完整形式是什么?

NABARD&#xff1a;国家农业和农村发展银行 (NABARD: National Bank for Agriculture and Rural Development) NABARD is an abbreviation of National Bank for Agriculture and Rural Development. NABARD是国家农业和农村发展银行的缩写 。 On 12 July 1982, it was establ…

基于opencv+Dlib的面部合成(Face Morph)

引自&#xff1a;http://blog.csdn.net/wangxing233/article/details/51549880 零、前言 前段时间看到文章【1】和【2】&#xff0c;大概了解了面部合成的基本原理。这两天空下来了&#xff0c;于是参考【3】自己实现了下。虽然【1】和【2】已经讲的很清楚了&#xff0c;但是有…

大脑应对危机的模式_危机的完整形式是什么?

大脑应对危机的模式危机&#xff1a;印度信用评级信息服务有限公司 (CRISIL: Credit Rating Information Services of India Limited) CRISIL is an abbreviation of Credit Rating Information Services of India Limited. It is an international analytic company which off…

linux网络延迟命令,2. Linux使用ping命令查看网络延迟

ping命令持续发送少量互联网流量到远程地址并报告收到回应的总时间。如果流量因为网络故障或者错误配置而被丢弃&#xff0c;它也会报告。ping命令是最基本和初级的诊断网络问题的工具之一。ping常被用来测试网络延迟&#xff0c;但是有时ping的延迟并不是网络引起的&#xff0…

linux查看磁盘io带宽,[Linux] 磁盘IO性能查看和优化以及iostat命令

iostat命令:%user&#xff1a;CPU处在用户模式下的时间百分比。%nice&#xff1a;CPU处在带NICE值的用户模式下的时间百分比。%system&#xff1a;CPU处在系统模式下的时间百分比。%iowait&#xff1a;CPU等待输入输出完成时间的百分比。%steal&#xff1a;管理程序维护另一个虚…

Jsoup 数据修改

2019独角兽企业重金招聘Python工程师标准>>> 1 设置属性的值 在解析一个Document之后可能想修改其中的某些属性值&#xff0c;然后再保存到磁盘或都输出到前台页面。 可以使用属性设置方法 Element.attr(String key, String value), 和 Elements.attr(String key, S…

软件静态架构 软件组件图_组件图| 软件工程

软件静态架构 软件组件图什么是组件图&#xff1f; (What is Component Diagram?) A Component Diagram breaks down the real system under development into different heights of working. Every component is reactive for the main aim in the entire system and only re…

如何卸载非linux系统分区,如何卸载Linux系统分区?卸载Linux系统分区的方法-站长资讯中心...

系统为windows xp sp2和redhat as 5双系统&#xff0c;其中linux系统后安装的在D盘&#xff0c;华彩软件站www.huacolor.com小编今天发现硬盘不够用了&#xff0c;想干掉linux分区&#xff0c;在虚拟机中用linux。就在windows的磁盘管理(命令为:diskmgmt)下删除linux分区&#…

顺序结构复习

复习一些易错知识点还有习题 目录 可能不熟悉的知识点 逻辑表达式的求解 if,else的配队 条件运算符 运算符优先级的问题 switch的使用 goto和if构成的循环 例题讲解 1 2 3 4 ​编辑 5 ​编辑 6赋值 ​编辑 7 可能不熟悉的知识点 逻辑表达式的求解 如果…

模板模式(部分方法延迟到子类实现)

项目中&#xff0c;用到了抽象类作为父类&#xff0c;有部分实现。 提供了了模板方法作为子类公共方法&#xff0c;模板方法中调用了抽象类的抽象方法和部分非抽象方法。 执行代码时&#xff0c;发现模板方法调用了抽象类的抽象方法&#xff0c;当时比较好奇&#xff0c;后来发…

【转载】浏览器缓存详解:expires cache-control last-modified

下面的内容展示了一个常见的 Response Headers&#xff0c;这些 Headers 要求客户端最多缓存 3600 秒&#xff0c;也给出了一个 pub1259380237;gz 的校验值。 HTTP/1.x 200 OK Transfer-Encoding: chunked Date: Sat, 28 Nov 2009 04:36:25 GMT Server: LiteSpeed Connection: …

linux下php的安装,Linux下PHP安装

1 下载php源码安装包 个人是php-5.6.30.tar.gzphp2 解压文件mysqltar -zxvf php-5.6.30.tar.gznginx3 编译安装sqlcd php-5.6.30api建立www用户和www用户组curlgroupadd wwwsocketuseradd -g www wwwphp-fpm在编译以前先把依赖包都装上urlyum install curl curl-develyum inst…

微软宣布以 262 亿美元现金收购 LinkedIn

北京时间6月13日20:45&#xff08;美国当地时间6月13日上午8:45&#xff09;&#xff0c;微软(Nasdaq: MSFT)和LinkedIn(领英&#xff0c;NYSE: LNKD)对外宣布&#xff0c;双方达成协议&#xff0c;微软宣布将以每股196美元、总价262亿美元的价格收购LinkedIn&#xff0c;由现金…

本月初 本月末 java_本月内容作家(2018年8月)

本月初 本月末 javaWe are feeling glad to announce that Prerana Jain is the Content Writer Of The Month (August 2018) on the basis of her excellent contribution and her support to us. 我们很高兴地宣布&#xff0c; Prera​​na Jain凭借其出色的贡献和对我们的支…

c语言案例朗读工具源码,C语言编写简单朗读小工具(有源码)

原标题&#xff1a;C语言编写简单朗读小工具(有源码)最近不少人在后台留言说学C都是面对枯燥的控制台程序&#xff0c;能不能体现一下C语言的实际用途&#xff0c;今天我们就理论结合实践一把&#xff1a;C语言结合VBS脚本编写一个简单的朗读小工具&#xff0c;做一个能够发音的…