难以理解,为什么就对了?
查看原帖
难以理解,为什么就对了?
921176
leiwenjin1234楼主2023/9/18 21:46

这是代码```c #include<bits/stdc++.h> using namespace std; typedef struct M{ long long v,w; }; M a[1000001]; bool cmp(const M &a ,const M &b){ if(a.v<b.v)return 1; if(a.v>=b.v)return 0; // if(a.v==b.v){ // if(a.w>=b.w)return 1; // return 0; // } } int main(){ long long m,n; std::cin>>m>>n; for(long long i=1;i<=n;i++){ std::cin>>a[i].v>>a[i].w; } sort(a+1,a+1+n,cmp); long long i=1,p=0; while(m>0){ if(a[i].w<=m){ m-=a[i].w;p+=a[i].w*a[i].v; i++;

}else{
    p+=m*a[i].v;
    m=0;
}

} std::cout<<p; }

中间注释是为了在价格相同时,优先选择拥有更多牛奶的奶农,可以加快速度(doge)但不知道为什么,加了就有1RE
2023/9/18 21:46
加载中...