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
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.
#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; }
HDU 4923 Room and Moor(瞎搞题)相关推荐
- 简单瞎搞题 动态规划的优化
链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 一共有 n个数,第 i 个数是 xi xi 可以取 [li , ri] 中任意的一个值. 设 S=∑xi2S = \sum{{x_ ...
- hdu 4923 Room and Moor (单调栈+思维)
题意: 给一个0和1组成的序列a,要构造一个相同长度的序列b.b要满足非严格单调,且 值为0到1的实数.最后使得 sum((ai-bi)^2)最小. 算法: 首先a序列開始的连续0和末尾的连续1是能 ...
- 刷题记录:牛客NC17193简单瞎搞题
传送门;牛客 题目描述: 一共有 n个数,第 i 个数是 xi xi 可以取 [ l i , r i ] [li , ri] [li,ri] 中任意的一个值. 设 S = ∑ x i 2 S = \s ...
- 解题报告:简单瞎搞题(bitset的应用)
题目链接:https://ac.nowcoder.com/acm/contest/5556/E 输入 5 1 2 2 3 3 4 4 5 5 6 输出 26 备注: 1≤n,li,ri≤1001 ≤ ...
- C 简单瞎搞题(牛客练习赛22)(bitset优化dp)
Bitset优化Dp 题目链接 一般DP做法 显然后面的数是与前面的数字相关的,所以我们有dp数组,dp[i][j]dp[i][j]dp[i][j]选取了jjj个数,iii是否可以被创造出来,如果可以 ...
- 牛客网 【每日一题】5月20日题目 简单瞎搞题
比赛链接 文章目录 题目描述 题解: 代码: 题目描述 输入描述: 第一行一个数 n. 然后 n 行,每行两个数表示 li,ri. 输出描述: 输出一行一个数表示答案. 示例1 输入 5 1 2 2 ...
- 简单瞎搞题(简单dp)
链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 一共有 n个数,第 i 个数是 xi xi 可以取 [li , ri] 中任意的一个值. 设 S=∑xi^2,求 S 种类数. ...
- HDU 5600(瞎搞)
第一场Bestcoder居然爆零..果然是too naive..小聪明全部直接输出"YES"过了pretest,结果被叉也是&%$% 找到规律传递下就好.后来看官方题解感觉 ...
- Wannafly交流赛1: C. 腰带图(瞎搞)
链接:https://www.nowcoder.com/acm/contest/69/C 来源:牛客网 题目描述 一个n个点m条边的无向图,它若满足以下性质,我们就称它为腰带图: 1.n为>=6 ...
最新文章
- 【numpy】几种fft函数的使用
- 遭遇错误:ORA-01031
- python 安装PIL包的方法以及简单介绍
- 网络运维现状及发展趋势分析
- 贵州师范学院计算机2级报名,贵州省2021年上半年计算机二级报名时间
- ASP.NET Core 3.x启动时运行异步任务(一)
- java scrollpane源码_JScrollPane用法 Java实例
- 小小知识点(九)——拉盖尔高斯波束自由空间傍轴近似条件下的复振幅
- 瞒不住了!超过4000人都在这里死磕3D视觉技术
- fftshift有什么用?MATLAB做FFT后为什么还要fftshift?
- Oracle卸载方法
- macOS系统怎么本地运行php文件
- 线性代数笔记(矩阵)
- 内网渗透DC-1靶场通关(CTF)
- QTextEdit只接受数字输入
- 网络编程、正则表达式
- 那些年我们没能bypass的xss filter[from wooyun]
- pycharm左侧的导航栏有时候不见了
- VS2017下安装fltk库——C++程序设计原理与实践图形编程指南
- 理解vfs下的open操作
热门文章
- java min 函数的使用方法_【Python】Java程序员学习Python(五)— 函数的定义和使用...
- linux 系统改名,linux改名命令
- mysql 哈希缓存_MySQL数据库性能优化思路总结
- leetcode 贪心_利用贪心算法解LeetCode第1253题:重构2行二进制矩阵
- 在c语言中数组下标的最小值,数组元素下标的上限_c语言中,数组元素的下标下限为...
- linux 未找到wifi适配器,无线 - 重新启动后找不到WI-FI适配器
- 电大计算机应用基础试卷号2007,电大计算机应用基础(试卷版)计算机试卷7.doc...
- linux mysql revoke_Linux环境下MySQL基础命令(4)----数据库的用户授权
- php 5.3.9 漏洞,PHP-5.3.9远程执行任意代码漏洞(CVE-2012-0830) 详解
- 中级软件测试笔试题100精讲_汇集上千位软件测试精英面试笔试题,最全面的题型都在这!...