A----奇怪的玩意

题目:

我们的化学生物学家发明了一种新的叫stripies非常神奇的生命。该stripies是透明的无定形变形虫似的生物,生活在果冻状的营养培养基平板菌落。大部分的时间stripies在移动。当他们两个碰撞,会有新stripie生成,而旧的不见了。经过长期研究,他们发现新stripies的体重不等于消失的stripies的体重,而是:如果一个质量为m1和m2的stripies相撞,生成的stripies体重是2*sqrt(m1*m2) 现在,科学家们想知道,如果stripies两两碰撞至只剩一个,则这一个的最小质量是多少?

Input

第一行输入 N (1 <= N <= 100) :stripies的数量. 接下来的 N 行是stripies的质量(1<=m<=10000)

Output

输出最小质量。保留至小数点后三位

Sample Input

3
72
30
50

Sample Output

120.000

解题思路:显然这一题需要用优先队列来储存每个小虫以及碰撞后的的质量。要想得到最小的质量,就要注意他们碰撞后计算质量的公式:M=2*sqrt(m1*m2).我们要知道sqrt(m*m1)的值肯定位于m与m1之间,把所有的质量从小到大排序m1,m2,m3...;如果从小的一头开始碰撞,则碰撞后的质量ans=sqrt(m1*m2)肯定大于m1,再碰撞sqrt(ans*m3)的结果肯定大于ans。不难发现,每一次碰撞后ans都在往右边移动(也就是大的一边)显然与题意相反;因此,必须从大的一端开始碰撞,则碰撞后ans的质量都在往左移动(小的一边),所以得到最后的质量是最小的。

 1 #include <iostream>
 2 #include <queue>
 3 #include <cmath>
 4 #include <cstdio>
 5 using namespace std;
 6
 7 int main()
 8 {
 9     int i,n;
10     float ans,x1,x2,k;
11     priority_queue<float,vector<float> >pq;
12     cin >>n;
13     for (i=0;i<n;i++)
14     {
15         cin >>k;
16         pq.push(k);
17     }
18     while (pq.size()!=1)
19     {
20         x1=pq.top();pq.pop();
21         x2=pq.top();pq.pop();
22         ans=2*sqrt(x1*x2);
23         pq.push(ans);
24     }
25         printf("%0.3f",pq.top());
26     return 0;
27 }

AC代码

				
时间: 2024-10-11 00:14:35

A----奇怪的玩意的相关文章

anaconda+youcompleteme

简单记录一下混合使用anaconda和youcompleteme的经历 最近python写得比较多,使用vim+youcompleteme总觉得补全好差,任何第三方库都搞不定,想不通这玩意这么菜还怎么用?之前我的archlinux+普通python+vim+ycm不是好好的吗? 之前忙,没时间管这事,即使补全差点,加上ipython凑合也还能用. 今晚有些受不了,于是就思考了一番,还试了试jedi-vim,结果不合意,弃.仔细思考后发现不是ycm菜,是我蠢.ycm默认解释器路径是系统自带的pyt

阿里云centos服务器tomcat启动后,浏览器请求无响应

最近无事折腾了下阿里云服务器 系统选择了个centos7.2 装了个jdk 1.8 搞了个apache-tomcat-8.5.51 装好启动tomcat后发现浏览器访问不了,状态一直显示等待服务器响应... 奇怪...这玩意不是弄了n回了,还会出问题? 一顿检查: 发现装的centos7的云服务器,两个地方没弄会有这个问题: 1.阿里云安全策略,开放tomcat端口 阿里云控制台,云服务器-->网络与安全-->安全组-->配置规则 把tomcat 的端口配置到入方向里即可 2.CentO

#3144. 「APIO 2019」奇怪装置

#3144. 「APIO 2019」奇怪装置 题目描述 考古学家发现古代文明留下了一种奇怪的装置.该装置包含两个屏幕,分别显示两个整数 \(x\) 和 \(y\). 经过研究,科学家对该装置得出了一个结论:该装置是一个特殊的时钟,它从过去的某个时间点开始测量经过的时刻数 \(t\),但该装置的创造者却将 \(t\) 用奇怪的方式显示出来.若从该装置开始测量到现在所经过的时刻数为 \(t\),装置会显示两个整数:\(x = ((t + \lfloor \frac{t}{B} \rfloor) \b

修改 const 的值之后的奇怪变化

1 #include <iostream> 2 3 int main(void) 4 { 5 const int a = 10; 6 int* p = (int*)&a; 7 *p = 20; 8 std::cout << a << "|" << &a << std::endl; 9 std::cout << *p << "|" << p <<

第7题:奇怪的国家&amp;第8题:字符串长度

第7题:奇怪的国家 有一个奇怪的国家,里面的国民对于事情的态度永远只有两面.当两个人遇到一起讨论一个事情的时候--两个持赞同观点的人遇到一起后会对这个事情都继续赞同:一个持赞同观点的人遇到一个持不赞同观点的人的时候,两人都会不再继续赞同:两个持不赞同观点的人遇到一起讨论后反而会对这个事情开始赞同. 输入包括两行,每行包括N个数字(1≤N≤50),分别表示两个人对于N个事情对应的看法--0表示不赞同.1表示赞同. 输出包括一行,包括N个数字,表示两人相遇后,对于这N件事情的最终看法. 样例输入 1

洛谷 P2759 奇怪的函数

P2759 奇怪的函数 题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^x 达到 n 位数字的最小正整数 x 输入输出样例 输入样例#1: 11 输出样例#1: 10 说明 n<=2000000000 思路:根据换底公式 可以推得,当x*log10(x)==n-1时x^x恰好为n位数,所以二分查找即可,在特判一下为1的情况. #include<cmath> #include<cstdio>

做一个手机端页面时,遇到了一个奇怪的问题:字体的显示大小,与在CSS中指定的大小不一致

最近在做一个手机端页面时,遇到了一个奇怪的问题:字体的显示大小,与在CSS中指定的大小不一致.大家可以查看这个Demo(记得打开Chrome DevTools). 就如上图所示,你可以发现,原本指定的字体大小是24px,但是最终计算出来的却是53px,看到这诡异的结果,我心中暗骂一句:这什么鬼! 随后开始对问题各种排查:某个标签引起的?某个CSS引起的?又或者是某句JS代码引起的.通过一坨坨的删代码,发现貌似都不是.我不禁又骂,到底什么鬼!不过中间还是发现了一些端倪:当页面中的标签数量或者文本数

[jzoj]1383.奇怪的问题

Link https://jzoj.net/senior/#main/show/1383 Problem Alice总是会提出很多奇怪的问题,一天他让他的朋友Bob跟他一起研究一个奇怪的问题.问题是:[A,B]中有多少个数满足组成这个数的数字之和为S,另一个问题是[A,B]内满足这一要求最小的数是哪个? 编程帮Bob解决这个问题. Solution 30分 显然可以使用暴力枚举,像我这样的渣渣,考试的时候想到数位DP,设完一个不完整的状态,根本不知道如何统计答案 100分 聪明的人都知道,若要求

一个基础而奇怪的问题:算法执行加法、乘法、除法性能无区别?

一个基础而奇怪的问题:算法执行加法.乘法.除法性能无区别? 计算机原理分析觉得:加法.乘法和除法的计算性能依次减少,但减少到什么程度? 编写C程序用30次百万数据计算来測试时间差异性,代码例如以下: #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 1000000 void add(float x[], long n) { float sum = 0; for(long i = 0; i

奇怪的道路(状压)

[Jxoi2012]奇怪的道路 时间限制: 1 Sec  内存限制: 128 MB提交: 55  解决: 23[提交][状态][讨论版] 题目描述 小宇从历史书上了解到一个古老的文明.这个文明在各个方面高度发达,交通方面也不例外.考古学家已经知道,这个文明在全盛时期有n座城市,编号为1..n.m条道路连接在这些城市之间,每条道路将两个城市连接起来,使得两地的居民可以方便地来往.一对城市之间可能存在多条道路.据史料记载,这个文明的交通网络满足两个奇怪的特征.首先,这个文明崇拜数字K,所以对于任何一