1. 月饼
贪心就行了
三个东西,一个Pair<int,int>,可以用结构体写。这里自带了排序规则
sort函数,相信应该都知道
reverse,翻转,可以理解为数组头变数组尾,好处是默认排序时可以不指定排序方式,排完reverse即可
#include<bits/stdc++.h>
#define endl "\n"
//#define int long long
#define AC return
#define pleaseqwq 0
using namespace std;
const int N=2e5+10;
typedef pair<double,double>PII;
typedef pair<string,int>PSI;
typedef pair<double,double>pdd;
PII a[N];
signed main(){
//cin.tie(0),cout.tie(0);
//ios::sync_with_stdio(false);
int n,d;
cin>>n>>d;
for(int i=0;i<n;i++){
cin>>a[i].second;
}
for(int i=0;i<n;i++){
cin>>a[i].first;
a[i].first/=a[i].second;
}
sort(a,a+n);
reverse(a,a+n);
double res=0;
int cnt=0;
for(int i=0;i<n;i++){
if(cnt+a[i].second<d){
res+=a[i].first*a[i].second;
cnt+=a[i].second;
}else{
res+=(d-cnt)*a[i].first;
break;
}
}
printf("%.2f",res);
AC pleaseqwq;
}
2. 汽车加油问题
我是小丑,第一眼还以为是dp,结果就贪心就好了
果然dp是我最差的部分啊,甚至都一眼看不出来不是dp题
贪心就行了
#include<bits/stdc++.h>
//#define int lo