随机化0分求调!!!
查看原帖
随机化0分求调!!!
487934
ifnotab楼主2024/12/24 17:04
#include<bits/stdc++.h>
#define N 1005
#define pii pair<double,double>
#define fi first
#define se second
using namespace std;
pii sub[N];
int main(){
    int n,m;
    cin>>n>>m;
    mt19937 dzdyy(time(0));
    for(int i=1;i<=n;i++){
        cin>>sub[i].se;
    }
    for(int i=1;i<=n;i++){
        cin>>sub[i].fi;
    }
    double ans=INT_MIN;
    double mid=m;
    for(int ii=1;ii<=100000;ii++){
        m=mid;
        double mi=0;
        // shuffle(sub+1,sub+n+1,dzdyy);
        sort(sub+1,sub+1+n);
        for(int i=1;i<=5;i++){
            swap(sub[dzdyy()%n+1],sub[dzdyy()%n+1]);
        }
        for(int i=1;i<=n;i++){
            if(m-sub[i].fi>=0){
                m-=sub[i].fi;
                mi+=100.0*sub[i].se;
            }else{
                mi+=(m*100.0*sub[i].se)/sub[i].fi;
                break;
            }
        }
        ans=max(ans,mi);
    }
    printf("%.4f",ans);
    //system("pause");
    return 0;
}

这个题随机化可以做吧(超小声)

2024/12/24 17:04
加载中...