#include <iostream> using namespace std; //自己坐标 敌人的坐标(a,b) double a[6]={0,1,2,3,4,5}; double b[6]={0,1,2,3,4,5}; double c[6]={999}; int who=0; void fun() { for(int i=1;i<6;i++) { a[i]-=a[0];b[i]-=b[0]; } for(int i=1;i<6;i++) { c[i]=a[i]*a[i]+b[i]*b[i]; } for(int i=1;i<6;i++) { if(c[i]<c[0]) {c[0]=c[i];who=i;} } cout<<who<<endl; } //N多个点的优化 void fun() { for(int i=1;i<6;i++) { //全部映射要第一向区域 a[i]-=a[0];b[i]-=b[0]; if(a[i]<0)a[i]*=-1; if(b[i]<0)b[i]*=-1; } for(int i=1;i<6;i++) { //全部映射要第一向1/2 if(a[i]<b[i])swap(a[i],b[i]); } for(int i=1;i<6;i++) { //找最小的x, if(a[i]<=a[1])whos=i; } for(int i=1;i<6;i++) { //x同 取y值最大的 if(a[i]==a[whos]&&b[i]>=b[whos])whos=i; } cout<<who<<endl; } int main() { cout << "Hello,C++ world of AnycodeX!" << endl; fun(); return 0; }
//待交流
时间: 2024-10-16 06:37:47