|
- #include<cstdio>
- #include<algorithm>
- using namespace std;
- const int INF=999999999;
- int O2,N2;
- int n;
- int a[1001],b[1001];
- int w[1001];
- int f[101][101];
- int main()
- {
- scanf("%d%d",&O2,&N2);
- for(int i=0;i<=O2;i++)
- {
- for(int j=0;j<=N2;j++)
- {
- f[i][j]=INF;
- }
- }
- f[0][0]=0;
- scanf("%d",&n);
- for(int i=1;i<=n;i++)
- {
- scanf("%d%d%d",&a[i],&b[i],&w[i]);
- }
- for(int i=1;i<=n;i++)
- {
- for(int j=O2;j>=0;j--)
- {
- for(int k=N2;k>=0;k--)
- {
- int x=j+a[i];
- int y=k+b[i];
- if(x>=O2)
- {
- x=O2;
- }
- if(y>=N2)
- {
- y=N2;
- }
- f[x][y]=min(f[x][y],f[j][k]+w[i]);
- }
- }
- }
- /*for(int i=0;i<=O2;i++)
- {
- for(int j=0;j<=N2;j++)
- {
- printf("%d ",f[i][j]);
- }
- printf("\n");
- }*/
- printf("%d",f[O2][N2]);
- return 0;
- }
复制代码
这个题我已开始还以为是反过来求利润呢 |
|