• 数学题


    在这里插入图片描述
    在这里插入图片描述

    可以证明
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    所以我们每次把角度尽量增大

    #include<cstdio>
    #include<iostream>
    #include<cmath>
    using namespace std;
    
    long long x_0,y_0,x_1,y_1;
    
    double dis(long long x,long long y){
    	return 	sqrt(x*x+y*y);
    }
    
    double P(long long x_0,long long y_0,long long x_1,long long y_1){
    	double S=(x_0*x_1+y_0*y_1+0.0)/(sqrt(x_0*x_0+y_0*y_0)*sqrt(x_1*x_1+y_1*y_1)+0.0);
    	return S;
    }
    
    int main(){
    	freopen("math.in","r",stdin);
    	freopen("math.out","w",stdout);
    	while(scanf("%lld%lld%lld%lld",&x_0,&y_0,&x_1,&y_1)!=EOF){
    		while(P(x_0,y_0,x_1,y_1)>0.5||P(x_0,y_0,x_1,y_1)<0){
    			if(dis(x_0,y_0)>dis(x_1,y_1)) swap(x_0,x_1),swap(y_0,y_1);
    			double d0=dis(x_0,y_0),d1=dis(x_1,y_1),ita=P(x_0,y_0,x_1,y_1);
    			if(ita<0){
    				x_0=-x_0,y_0=-y_0; 
    				continue;
    			}
    			if(P(x_0,y_0,x_1,y_1)>0.5){
    				long long lda=d1*ita/d0+0.5;
    				x_1=x_1-x_0*lda;
    				y_1=y_1-y_0*lda;
    			}
    		}
    		printf("%lld
    ",min(x_0*x_0+y_0*y_0,x_1*x_1+y_1*y_1));
    	}
    }
    
  • 相关阅读:
    XML案例
    4.6Java数组的遍历
    4.3Java多态(polymorphism)
    XML文档的标准
    4.6Java数组的定义
    4.6Java数组初始化的方式
    XML介绍
    4.6Java对象转型(casting)
    HelloWorld之MyBatis
    Hibernate查询方法比较
  • 原文地址:https://www.cnblogs.com/Chandery/p/11349630.html
Copyright © 2020-2023  润新知