P1759 通天之潜水

Miku

很简单的背包,除了我一开始统计错了路径

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int m,v,n;
int a[101],b[101],c[101];
string f[301][301];
int Aimee[201][201];
int use[201];
int x,y,z; 
void find(int x,int y){
	for(int i=0;i<f[x][y].length();++i){
		cout<<(int) f[x][y][i]<<" ";
	}
}
int mAimeen(){
    scanf("%d%d%d",&m,&v,&n);
    for(int i=1;i<=n;++i){
        scanf("%d%d%d",&a[i],&b[i],&c[i]); 
    }
    for(int i=1;i<=n;++i){
        for(int j=m;j>=a[i];--j){
            for(int z=v;z>=b[i];--z){
                if(Aimee[j][z]<Aimee[j-a[i]][z-b[i]]+c[i]){
                    Aimee[j][z]=Aimee[j-a[i]][z-b[i]]+c[i];
                    f[j][z]=f[j-a[i]][z-b[i]]+(char)i;
                }
            }
        }
    }
    cout<<Aimee[m][v]<<endl;
	find(m,v);
    return 0;
} 
posted @ 2020-11-22 19:16  Simex  阅读(64)  评论(0编辑  收藏  举报