Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
32937 | LYLAKIOIAKIOI | 【S】T4 | C++ | 解答错误 | 79 | 2406 MS | 288 KB | 1366 | 2024-10-02 15:27:43 |
#include<bits/stdc++.h> #define PII pair<int,int> #define fi first #define se second using namespace std; const int N=100; vector<int> e[N]; struct nd{ int id,vl; }a[N];bool cmp(nd x,nd y){ return x.vl<y.vl; } bool c[N];int n; vector<int> tmp,tmp2; inline bool chk(){ int s=tmp.size(); for(int i=1;i<=n;i++) c[i]=0; for(int i=0;i<s;i++) c[tmp[i]]=1; for(int i=0;i<s;i++){ for(auto ed:e[tmp[i]]){ if(c[ed]==0) return 0; } }return 1; }mt19937 b(0); int main(){ int n,m;cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i].vl; for(int i=1;i<=n;i++) a[i].id=i; for(int i=1;i<=m;i++){ int u,v;cin>>u>>v;e[u].push_back(v); }int tim=4e4; long double ans=0;sort(a+1,a+n+1,cmp); nd d[N]; while(tim--){ for(int i=1;i<=10;i++){ int x=b()%n+1; int y=b()%n+1; swap(a[x],a[y]); } tmp.clear();tmp2.clear(); long long u=0,d=0; long double res=0; for(int i=1;i<=n;i++){ tmp.push_back(a[i].id);tmp2.push_back(a[i].vl); u+=tmp2[i-1];d+=tmp2[i-1]*tmp2[i-1]; res=1ll*u*u*1.0/d; if(chk()) ans=max(ans,res); }sort(a+1,a+n+1,cmp); }printf("%.8Lf",ans); //cerr<<(clock()-C)/CLOCKS_PER_SEC*1000; return 0; }