codevs1253 超级市场

来源:互联网 发布:如何自学seo 编辑:程序博客网 时间:2024/05/29 13:24

dp。

f[i]=买菜单前i个菜的最小花费。

#include<cstdio>#include<iostream>#include<iomanip>#include<queue>#define R0(i,n) for(int i=0;i<n;++i)#define R1(i,n) for(int i=1;i<=n;++i)#define INF 0x7fffffffusing namespace std;typedef long long ll;double f[101]; int m,n,k,menu[105];int main(){double p;R0(i,101)f[i]=INF;f[0]=0;cin>>m>>n;R1(i,m)cin>>menu[i]; R1(i,n){cin>>k>>p;for(int j=m;j>=0;j--) if(menu[j]==k)f[j]=min(f[j],f[j-1]+p);}if(f[m]>=INF) cout<<"Impossible";else cout<< fixed<<setprecision(2)<<f[m];return 0;}


0 0