1020.月饼 (贪心算法)
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct mooncake
{
double storage;
double total_price;//总售价
double unit_price;//单价
}cake;
bool mycompare(cake x1,cake x2)
{
return x1.unit_price>x2.unit_price;
}
int main()
{
int n,sum;
double s=0;
cin>>n>>sum;
vector<cake> c(n);
for(int i=0;i<n;i++){
cin>>c[i].storage;
}
for(int i=0;i<n;i++){
cin>>c[i].total_price;
c[i].unit_price=c[i].total_price/c[i].storage;
}
sort(c.begin(),c.end(),mycompare);
for(int i=0;i<n && sum>0;i++){
if(sum>=c[i].storage){
s+=c[i].total_price;
sum-=c[i].storage;
}else{
s+=c[i].unit_price*sum;
break;
}
}
printf("%.2lf",s);
return 0;
}
1021.个位数统计 map的掌握
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
string s;
cin>>s;
map<char,int> m;
for(int i=0;i<s.length();i++){
m[s[i]]++;
}
for(map<char,int>::iterator it=m.begin();it!=m.end();it++){
cout<<it->first<<":"<<it->second<<endl;
}
return 0;
}