Greedy:Stripes(POJ 1826)

题目大意:给你一堆数,两两结合,答案为2*sqrt(x1*x2),问组合成一个数时,最小的量?
超级无敌大水题,排序或者用堆都可以,反正就是优先组合大的,让根号一直把大数开根降低整体的大小
#include <iostream>
#include <functional>
#include <algorithm>
#include <math.h> using namespace std; typedef int Heap, Position;
static Heap Stripes[]; static int Heap_size = ;
void Insert(const int, Position);
int Delete_Max(void); void Insert(const int item, Position pos)
{
Position s, pr; for (s = pos; s > ; s = pr)//大元素上滤
{
pr = s % == ? s >> : (s - ) >> ;
if (Stripes[pr] < item)
Stripes[s] = Stripes[pr];
else break;
}
Stripes[s] = item;
} int Delete_Max(void)
{
int max = Stripes[], tmp = Stripes[Heap_size--];
Position pr = , s1, s2, s; for (; pr <= Heap_size;)
{
s1 = pr << ; s2 = s1 + ;
if (s2 <= Heap_size)
{
s = Stripes[s1] > Stripes[s2] ? s1 : s2;
Stripes[pr] = Stripes[s];
pr = s;
}
else
{
if (s1 <= Heap_size)
{
Stripes[pr] = Stripes[s1];
pr = s1;
}
break;
}
}
Insert(tmp, pr);
return max;
} int main(void)
{
int n,tmp;
double ans = ; while (~scanf("%d", &n))
{
for (int i = ; i < n; i++)
{
scanf("%d", &tmp);
Insert(tmp, ++Heap_size);
}
ans = (double)Delete_Max();//处理初始情况
for (int i = ; i < n; i++)
ans = * sqrt(ans*(double)Delete_Max());
printf("%.3f", ans);
}
return ;
}
实在是太简单,我自己用自己写的堆实现了一下,数据量也很小,才100,洪水不解释
Greedy:Stripes(POJ 1826)的更多相关文章
- Greedy:Subsequence(POJ 3061)
和最短序列 题目大意:找出一个序列中比至少和S相等的最短子序列(连续的) 本来这道题可以二分法来做复杂度O(NlogN),也可以用一个类似于游标卡尺的方法O(N)来做 先来讲游标卡尺法: 因为子序 ...
- Greedy:Allowance(POJ 3040)
零用钱大作战 题目大意:农夫和牛又搞新花样了,现在农夫想给Bessie每个星期都给一点零用钱,农夫有一堆面值的钱币,并且这个钱币都能被上一个钱币整除(1,5,10,50),并且钱币有一定数量,要你求最 ...
- Greedy:Packets(POJ 1017)
装箱问题1.0 题目大意:就是一个工厂制造的产品都是正方形的,有1*1,2*2,3*3,4*4,5*5,6*6,高度都是h,现在要包装这些物品,只能用6*6*h的包装去装,问你怎么装才能使箱子打到最小 ...
- Greedy:Cow Acrobats(POJ 3045)
牛杂技团 题目大意:一群牛想逃跑,他们想通过搭牛梯来通过,现在定义risk(注意可是负的)为当前牛上面的牛的总重量-当前牛的strength,问应该怎么排列才能使risk最小? 说实话这道题我一开始给 ...
- Greedy:Physics Experiment(弹性碰撞模型)(POJ 3848)
物理实验 题目大意:有一个与地面垂直的管子,管口与地面相距H,管子里面有很多弹性球,从t=0时,第一个球从管口求开始下落,然后每1s就会又有球从球当前位置开始下落,球碰到地面原速返回,球与球之间相碰会 ...
- Greedy:Linear world(POJ 2674)
Linear world 题目大意:一些人生活在线性世界中,到达线性世界两端就会消失,两个人的前进方向有两个,相遇会改变各自相遇方向,求最后一个人掉下的人的名字和时间. 其实这一题就是弹性碰撞的模 ...
- Greedy:The Water Bowls(POJ 3185)
水池 题目大意:给定一个20的数组,全都是0和1,可以翻一个数改变成另一个数(0或者1),但是其左右两边的数都会跟着变为原来的相反数,问你怎么用最小的操作数使全部数变成0 这一题的:满足 1:翻转次序 ...
- Greedy:Graveyard Design(POJ 2100)
墓地 题目大意,给定一个整数,要你找出他的平方和组合 太简单了....不过一开始我储存平方和想降低时间,后来发现会超内存,直接用时间换空间了,游标卡尺法 #include <iostream&g ...
- Greedy:Sum of Consecutive Prime Numbers(POJ 2739)
素数之和 题目大意:一些整数可以表示成一个连续素数之和,给定一个整数要你找出可以表示这一个整数的连续整数序列的个数 方法:打表,然后用游标卡尺法即可 #include <iostream> ...
随机推荐
- POJ 1625 Censored!
辣鸡OI毁我青春 Description The alphabet of Freeland consists of exactly N letters. Each sentence of Freela ...
- LeetCode 65 Valid Number
(在队友怂恿下写了LeetCode上的一个水题) 传送门 Validate if a given string is numeric. Some examples: "0" =&g ...
- 从js的repeat方法谈js字符串与数组的扩展方法
js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { ...
- WAMP 403 Forbidden禁止访问
WAMP .5修改方法 修改httpd.conf文件 # onlineoffline tag - don't remove Require local To # onlineoffline tag - ...
- 全程图解 手把手教您开启windows终端服务
一.什么是远程桌面? 远程桌面是微软公司为了方便网络管理员管理维护服务器而推出的一项服务.从windows 2000 server版本开始引入,网络管理员使用远程桌面连接程序连接到网络任意一台开启了远 ...
- hdu 1176 免费馅饼(动态规划)
AC code: #include<stdio.h> #include<string.h> #define max(a,b) (a>b?a:b) #define maxo ...
- ASP.NET WebAPI 03 返回结果
在WebAPI中HttResponseMessage作为消息返回,而在ApiController中我们经常讲四类数据作为返回值,void,object(可序列化),IHttpActionResult, ...
- Visual Studio Online Integrations-Testing
原文:http://www.visualstudio.com/zh-cn/explore/vso-integrations-directory-vs
- UICollectionViewController用法
在iOS 6 发布前,开发人员习惯使用UITableView来展示几乎所有类型的数据集合.ios 6 为 IOS 引入了全新的控制器,用来显示数据集合,集合视图控制器是与表视图控制器类似的全新UI框架 ...
- Linux下链接mysql数据库的命令
一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u root -p123 二. ...