POJ1862 Stripies 贪心 B
POJ 1862 Stripies
https://vjudge.net/problem/POJ-1862
题目:
You are to write a program that will help them to answer this question. You may assume that 3 or more stipies never collide together.
Input
Output
Sample Input
Sample Output
120.000
分析:
贪心题目
题目本身不难,总共就几种策略,WA几发蒙也能蒙过了
问题在于这个题为什么这么做是正确的
我在做的时候就顺便用txt进行了证明,毕竟是练习,也为了保证一遍过

首先写了这个,然后意识到不是相加,是直接把v1和v2变成另外一种,所以这是错误的

然后列了几种情况,当两个数的时候,产生的结果是不固定的,可能大,可能小,也可能与其中一个相等,这里就可以想到用增加变量然后用字母来代替数值进行分析

V1v2v3
然后进行第一步,如果12合并,如果23合并,如果13合并

一行一个情况
在这其中保证

那么最后的三个结果就是

看起来比较复杂emmmm
那就简单化简吧,假设第一个和第二个相等

化简

然后取平方

诶是不是发现什么了
都会有

这个东西,
唯一的区别是v1,v2,v3
那么显然是

倒推:

得证
放全部分析过程:

v1+v2 -> 2*sqrt(v1*v2)
sqrt(v1^2+v2^2+2*v1*v2) -> sqrt(4*v1*v2)
1 100
20
72 50
120
2 50
20
5 20
20
v1 v2 v3
2*sqrt(v1*v2) v3
2*sqrt(v1*v3) v2
2*sqrt(v2*v3) v1
v1<v2<v3
2*sqrt(2*sqrt(v1*v2)*v3)
2*sqrt(2*sqrt(v1*v3)*v2)
2*sqrt(2*sqrt(v2*v3)*v1)
2*sqrt(2*sqrt(v1*v2)*v3)=2*sqrt(2*sqrt(v1*v3)*v2)
sqrt(v1*v3)*v2=sqrt(v1*v2)*v3
v1*v2*v3*v3 v1*v3*v2*v2
v1*v2*v3
v1*v2*v3*v1 min
也就是sqrt(v2*v3)*v1
再倒推就是2*sqrt(2*sqrt(v2*v3)*v1)
再倒推就是先处理两个大的
得证
AC代码:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <string>
#include <time.h>
#include <queue>
#include <string.h>
#define sf scanf
#define pf printf
#define lf double
#define ll long long
#define p123 printf("123\n");
#define pn printf("\n");
#define pk printf(" ");
#define p(n) printf("%d",n);
#define pln(n) printf("%d\n",n);
#define s(n) scanf("%d",&n);
#define ss(n) scanf("%s",n);
#define ps(n) printf("%s",n);
#define sld(n) scanf("%lld",&n);
#define pld(n) printf("%lld",n);
#define slf(n) scanf("%lf",&n);
#define plf(n) printf("%lf",n);
#define sc(n) scanf("%c",&n);
#define pc(n) printf("%c",n);
#define gc getchar();
#define re(n,a) memset(n,a,sizeof(n));
#define len(a) strlen(a)
#define LL long long
#define eps 1e-6
using namespace std;
double a[];
bool cmp(double a, double b){
return a > b;
}
int main() {
int n = ;
s(n);
for(int i = ; i < n; i ++){
slf(a[i]);
}
sort(a,a+n,cmp);
double temp = a[];
for(int i = ; i< n ;i ++){
temp = 2.0*sqrt(a[i]*temp);
}
pf("%.3lf\n",temp);
return ;
}
POJ1862 Stripies 贪心 B的更多相关文章
- (贪心和优先队列) POJ1862 Stripies
Stripies Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 21506 Accepted: 9478 Descrip ...
- poj1862 Stripies
思路: 简单贪心. 实现: #include <iostream> #include <cstdio> #include <algorithm> #include ...
- POJ 1862 Stripies#贪心(水)
(- ̄▽ ̄)-* #include<iostream> #include<cstdio> #include<cmath> #include<algorithm ...
- POJ 1862 Stripies 贪心+优先队列
http://poj.org/problem?id=1862 题目大意: 有一种生物能两两合并,合并之前的重量分别为m1和m2,合并之后变为2*sqrt(m1*m2),现在给定n个这样的生物,求合并成 ...
- 《挑战程序设计竞赛》2.2 贪心法-其它 POJ3617 3069 3253 2393 1017 3040 1862 3262
POJ3617 Best Cow Line 题意 给定长度为N的字符串S,要构造一个长度为N的字符串T.起初,T是一个空串,随后反复进行下列任意操作: 从S的头部(或尾部)删除一个字符,加到T的尾部 ...
- 【POJ - 1862】Stripies (贪心)
Stripies 直接上中文了 Descriptions 我们的化学生物学家发明了一种新的叫stripies非常神奇的生命.该stripies是透明的无定形变形虫似的生物,生活在果冻状的营养培养基平板 ...
- POJ 1862 & ZOJ 1543 Stripies(贪心 | 优先队列)
题目链接: PKU:http://poj.org/problem?id=1862 ZJU:http://acm.zju.edu.cn/onlinejudge/showProblem.do?proble ...
- 【POJ】1862:Stripies【贪心】【优先队列】
Stripies Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 20456 Accepted: 9098 Descrip ...
- POJ_1862 Stripies 【贪心】
一.题面 POJ1862 二.分析 反省一下,自己英语水平着实不行,该题其实就是问若给出若干个这种生物,根据这种体重变换方式,最终合并成一个后,体重最少是多少.根据公式 $m = 2\sqrt{m_{ ...
随机推荐
- json和数组的区别
原文地址:https://www.cnblogs.com/zhangjingyun/p/4554054.html 我们都知道,json和数组一样,都可以存数据,但是下面我们来总结一下json和数组的区 ...
- Java构造器练习题
仔细阅读下面的程序 public class Car { String name = "汽车"; public Car(String name) { this.name = nam ...
- 04-体验一下apache组织封装的BeanUtil工具包
apache 自己为程序员们封装了一个专门用于处理的工具类,其功能有(数据类型会自动转成与JavaBean相关的) map转javabean javabean转map javabean对象复制 获取j ...
- 关于性能(SEO)
性能优化有很多方面:细节决定成败,系统慢是由一个又一个的小细节造成的,所以开发初期做好充足的准备,开发中认真负责,不偷工减料,维护期更注重代码质量,这样才会让我妈的系统稳定高效. 1.0 使用CDN( ...
- 使用Jenkins部署Python项目
廖大使用Fabric部署的.我使用Jenkins试试部署过程.虽然说是用python项目部署测试的,但其他项目也是同理的. 参考Jenkins+Python部署完整版,不过安装方式不同. 安装tomc ...
- 阿里云 配置ssl 在nginx上
写给自己的备忘录: 很乱 如果你也是 配置nginx ssl 可以给我留言 ,我是为了 捣鼓微信小程序后台 需要https 阿里云有免费一年的 ssl服务 链接 https://www.aliyun. ...
- html: 仿制soundmanager2右上角面板
仿制 http://schillmania.com/projects/soundmanager2/#volume 右上角面板 <style type="text/css"&g ...
- 59.纯 CSS 创作彩虹背景文字
原文地址:https://segmentfault.com/a/1190000015352436 修改后地址:https://scrimba.com/c/cqK3LaTQ 感想: 又一次见识到CSS的 ...
- 机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)
摘要: 数据挖掘.机器学习和推荐系统中的评测指标—准确率(Precision).召回率(Recall).F值(F-Measure)简介. 引言: 在机器学习.数据挖掘.推荐系统完成建模之后,需要对模型 ...
- leetcode94
class Solution { public: vector<int> V; void inOrder(TreeNode* node) { if (node != NULL) { if ...