hihocoder 1358 小P的强力值

    xiaoxiao2025-05-22  6

    贪心:

    已知 (x+u)^a * y^b > x^a * (y+u)^b 

    证明 (x+u)^a * (y+t)^b > x^a * (y+t+u)^b

    由于    ((x+u)/x)^a > ((y+u)/(y))^b > ((y+t+u)/(y+t))^b

    得证

    #include<stdio.h> #include<string.h> #include<algorithm> #include<math.h> using namespace std; int n,k; int a[11],b[11]; double f() { double tem=1; for(int i=0;i<k;i++) tem*=pow(a[i],1.0/b[i]); return tem; } int main() { scanf("%d%d",&n,&k); for(int i=0;i<k;i++) scanf("%d",&a[i]); for(int i=0;i<k;i++) scanf("%d",&b[i]); for(int i=0;i<n;i++){ double ans=-1; int id=-1; for(int j=0;j<k;j++) { a[j]++; double tem=f(); if(ans<tem) ans=tem,id=j; a[j]--; } a[id]++; } printf("%f\n",f()); }

    转载请注明原文地址: https://ju.6miu.com/read-1299161.html
    最新回复(0)