• 「个人训练」Can you solve this equation?(HDU-2199)


    题意与分析

    纯粹水题。本来想做下放松心情的,结果还是被坑了qaq
    重点就是在浮点误差。比较左右的下次就直接上1e-10,别看着题目说1e-4然后给个-5,结果暴wa。气傻了。。。。。

    代码

    #include <bits/stdc++.h>
    #define PB push_back
    #define MP make_pair
    
    using namespace std;
    #define NQUICKIO
    #define NFILE
    double xs[]={6,3,2,7,8};
    int main()
    {
    #ifdef QUICKIO
        ios::sync_with_stdio(false);
        cin.tie(0); cout.tie(0);
    #endif
    #ifdef FILE
        freopen("datain.txt","r",stdin);
        freopen("dataout.txt","w",stdout);
    #endif
        int T; cin>>T;
        while(T--)
        {
            double y; cin>>y;
            xs[0]=6-y;
            double l=0,r=100;
            if(double(6-y)*(807020306-y)>=1e-8) cout<<"No solution!"<<endl;
            else
            {
                do
                {
                    double mid=(l+r)/2;
                    double ans=0;
                    for(int i=4;i>=0;--i)
                    {
                        ans*=mid;
                        ans+=xs[i];
                    }
                    //cout<<mid<<" "<<ans<<endl;
                    if(ans<0) l=mid;
                    else r=mid;
                }
                while(!(fabs(r-l)<1e-10));// 1e-5 before
                cout<<fixed<<setprecision(4)<<(l+r)/2.0<<endl;
            }
        }
        return 0;
    }
    
    如非注明,原创内容遵循GFDLv1.3发布;其中的代码遵循GPLv3发布。
  • 相关阅读:
    结对开发第一阶段,10天冲刺第十天
    结对开发第一阶段,10天冲刺第九天
    vim 编辑器
    用户、群组和权限
    硬盘分区、格式化及文件系统管理
    系统监控
    Linux 系统初始化和服务
    文件合并与打包
    计算机原理
    Linux 之添加系统环境变量
  • 原文地址:https://www.cnblogs.com/samhx/p/HDU-2199.html
Copyright © 2020-2023  润新知