贪心
例2.11 FatMouse’ Trade
代码 2.14
#include<iostream>
#include<algorithm>
using namespace std;
struct goods{
double j;
double f;
double s;
bool operator < (const goods &A){
return s > A.s;
}
}buf[1005];
int main(){
double m;
int n,i;
while(cin >> m){
cin >> n;
if(m == -1 && n == -1)
break;
for(i=0;i<n;i++){
cin >> buf[i].j >> buf[i].f;
buf[i].s = buf[i].j / buf[i].f;
}
double x = 0;
sort(buf,buf+n);
for(i=0;i<n;i++){
if(buf[i].f < m){
x += buf[i].j;
m -= buf[i].f;
}
else{
x += buf[i].s * m;
break;
}
}
printf("%.3f\n",x);
}
return 0;
}
例2.12 今年暑假不AC
代码2.15
#include<iostream>
#include<algorithm>
using namespace std;
struct show{
int start;
int end;
bool operator < (const show &A){
return end < A.end;
}
}buf[105];
int main(){
int N,i;
int s = 0, x = 0;
while(cin >> N){
if(N == 0)
break;
for(i=0;i<N;i++){
cin >> buf[i].start >> buf[i].end;
}
sort(buf,buf+N);
for(i=0;i<N;i++){
if(buf[i].start >= s){
x++;
s = buf[i].end;
}
}
cout << x << endl;
}
return 0;
}
填写与不填写
之后填坑
#include<iostream>
#include<algorithm>
using namespace std;
struct station{
double Pi;
double Di;
bool operator < (const station &A){
return Di < A.Di;
}
}buf[505];
int main(){
double Cmax,D,Davg;
int N,i;
while(cin >> Cmax >> D >> Dabg >> N){
for(i=0;i<N;i++)
cin >> buf[i].Pi >> buf[i].Di;
sort(buf,buf + N);
int k = 0;
double m = 0;
}
}