HDU-#5003 Osu!(精度题)

博客介绍了HDU鞍山赛区网络赛中的一道精度题,讲解了题目要求及解题思路。作者在解决过程中遇到精度问题,通过转换思维方式避免了精度丢失,提出从最低分开始升序计算,确保计算过程的准确性。提供了问题链接和解题代码。
摘要由CSDN通过智能技术生成

       题目大意:鞍山赛区网络赛签到题,给出每首歌的分值,按照降序排列,每首歌按照0.95^(i-1)*ai来计算最后总共多少分。

       解题思路:理解了题就拍了,以为会是签到题,结果一直WA,那个泪奔。分析了下可能是精度的问题,之前没涉及精度题,一直无语,后边发现可以换种思维解,避免精度丢失的,orz...,算是长见识了。思想就是倒过来求解,升序排列数组,然后每一步更新我的ans值,这样就能保证结果的中间计算不会丢失精度,这样我遍历一次最低值会计算i-1次,而最高位计算了一次。很巧妙的方法的,详见code。

       题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=5003

      code:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

const int MAXN = 50+5;
int t,n;
double ans;
int ai[MAXN];

int main(){
    //f
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值