求助,在输出double时在第一行第二栏读取'n'
查看原帖
求助,在输出double时在第一行第二栏读取'n'
401052
Endline楼主2023/7/26 14:51

评测记录:

代码:

#include<bits/stdc++.h>
#define MAXN 1002
#define MAXM 60002
using namespace std;
int n;
double nx,ny,nl;
struct object
{
    int x,y,w;
}a[MAXN];
inline void move(double lenth)
{
    double dx=0,dy=0;
    for(int i=1;i<=n;i++)
    {
        double tp=sqrt((a[i].x-nx)*(a[i].x-nx)+(a[i].y-ny)*(a[i].y-ny));
        if(tp==0)continue;
        dx+=a[i].w*(a[i].x-nx)/tp;
        dy+=a[i].w*(a[i].y-ny)/tp;
    }
    double tp=sqrt(dx*dx+dy*dy);
    nx+=lenth/tp*dx;
    ny+=lenth/tp*dy;
    return;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i].x>>a[i].y>>a[i].w;
    nx=a[1].x,ny=a[1].y;
    nl=10000;
    while(nl>1e-4)
    {
        move(nl);
        nl*=0.9;
    }
    cout<<fixed<<setprecision(3)<<nx;
    putchar(' ');
    cout<<fixed<<setprecision(3)<<ny;
    return 0;
}
2023/7/26 14:51
加载中...