zoukankan      html  css  js  c++  java
  • 反思

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    
    int main(){
    	int a,b,c1,c2;
    	double ans,x,y;
    	scanf("%d %d", &a, &b);
    	if(a<b){
    		puts("-1");
    	}
    	else if(a==b){
    		printf("%d
    ", a);
    	}else{
    		double x = a - b, y = a + b;
            int c1 = x/b/2, c2 = y/b/2;
            ans = min(x / c1 / 2, y / c2 / 2);
            printf("%.10lf
    ", ans);
    
    	}
    	
    	return 0;
    }
    
     
    没读懂题意 而且。。。 写的错误不堪。。
    注意反思
     A Problem about Polyline
    Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u
    Submit Status

    Description

    There is a polyline going through points (0, 0) – (x, x) – (2x, 0) – (3x, x) – (4x, 0) – ... - (2kx, 0) – (2kx + x, x) – ....

    We know that the polyline passes through the point (a, b). Find minimum positive value x such that it is true or determine that there is no such x.

    Input

    Only one line containing two positive integers a and b (1 ≤ a, b ≤ 109).

    Output

    Output the only line containing the answer. Your answer will be considered correct if its relative or absolute error doesn't exceed 10 - 9. If there is no such x then output  - 1 as the answer.

    Sample Input

    Input
    3 1
    Output
    1.000000000000
    Input
    1 3
    Output
    -1
    Input
    4 1
    Output
    1.250000000000

    Hint

    You can see following graphs for sample 1 and sample 3.

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    int main()
    {
        double x;
        double a,b;
        while(cin>>a>>b)
        {
            if(b>a)
            {
                x=-1;
            }
            else if(b==a)
            {
                x=a;
            }
            else
            {
                double r=(a+b)/2;
                double d=(a-b)/2;
                //cout<<r<<" "<<d<<endl;
                int rr=r/b,dd=d/b;
                while(r/rr<b)
                {
                    rr--;
                }
                while(d/dd<b)
                {
                    dd--;
                }
                //cout<<rr<<" "<<dd<<endl;
                if((double)r/rr>=(double)d/dd)
                {
                    x=(double)d/dd;
                }
    
                else
                {
                    x=(double)r/rr;
                }
            }
            printf("%.12f
    ",x);
        }
    
        return 0;
    }
    
  • 相关阅读:
    C#网络安全的一个不错的站点
    SP2已经发布,明天MS要发布一个Exchange的package
    Python学习足迹(3)
    用例子来彻底搞明白Virtual 和 非 virtual(C#)
    概述Web编程的安全极其防护措施(主要针对PHP,PERL)[]
    Java序列化
    Mybatis缓存及原理
    代理模式
    Spring的依赖注入
    Mybatis运行流程
  • 原文地址:https://www.cnblogs.com/Geek-xiyang/p/5149665.html
Copyright © 2011-2022 走看看