卡我精度恶心
查看原帖
卡我精度恶心
1122530
elpsconr楼主2024/10/8 19:46

有13个点wa,求调

/*
   卫风·芄兰
芄兰之支,童子佩觿.
虽则佩觿,能不我知?
容兮遂兮,垂带悸兮.
芄兰之叶,童子佩韘.
虽则佩韘,能不我甲?
容兮遂兮,垂带悸兮.
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define PII pair<int,int>
#define tul tuple<int,int,int>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define rep_(i,a,b) for(int i=a;i>=b;--i)
#define all(x) x.begin(),x.end()
#define cy cout<<"Yes"<<endl
#define cn cout<<"No"<<endl
#define lc (rt<<1)
#define rc (rt<<1|1)
mt19937_64 rnd(time(0));
const int N=35,yyx=998244353;
vector<int> to[N];
int n,a[N],s,t,p[N];
struct node{
    int sx,sy,tx,ty;
    double w;
}e[N];
double dis(int sx,int sy,int tx,int ty){
    return sqrtl((sx-tx)*(sx-tx)+(sy-ty)*(sy-ty));
}
inline void solve(){
 cin>>n>>s>>t;
 rep(i,1,n){
    cin>>e[i].sx>>e[i].sy>>e[i].tx>>e[i].ty;
    e[i].w=dis(e[i].sx,e[i].sy,e[i].tx,e[i].ty);
    p[i]=i;
 }
 double ans=0;
 rep(i,1,n) ans+=e[i].w/(t*1.0);
 double mi=2e17;
 do{
    double sum=0;
    int x=0,y=0;
    rep(i,1,n){
        int id=p[i];
        auto [sx,sy,tx,ty,w]=e[id];
        sum+=(min(dis(x,y,sx,sy),dis(x,y,tx,ty)))/(s*1.0);
        if(dis(x,y,sx,sy)<dis(x,y,tx,ty)) x=tx,y=ty;
        else x=sx,y=sy;
    }
    mi=min(mi,sum);
 }while(next_permutation(p+1,p+1+n));
 ans+=mi;
 printf("%.08lf\n",ans);
}
signed main(){
  cin.tie(0)->sync_with_stdio(0);
  //freopen("D://321//in.txt","r",stdin);
  //freopen("D://321//out.txt","w",stdout);
  int _=1;
  //cin>>_;
  while(_--)
  solve();
  return 0;
}
2024/10/8 19:46
加载中...