c_cpp a thiefhttp://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id = 0042サンプルは通るのですがWAになりますよかったら间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp a thiefhttp://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id = 0042サンプルは通るのですがWAになりますよかったら间相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cctype>
#include <iostream>
#include <vector>
#include <deque>
#include <queue>
#include <map>
#include <algorithm>
using namespace std;
//#define deb_table(arr, w, h) rep(w_n, w){ rep(h_n, h) {cout << arr[w][h] << " " } cout << endl; }
#define rep(i, n) for(int i = 0; i < n; i++)
// P(価値, 重さ)
typedef pair<int ,int> P;
class data
{
public:
int v;
int w;
public:
data(int a, int b){ v=a; w=b;}
};
int case_num=1;
/*
風呂敷の耐えられる重さW(1000 以下)
お宝の数 N
お宝 1 の価値(整数), お宝 1 の重さ( < W:整数)
お宝 2 の価値(整数), お宝 2 の重さ( < W:整数)
.
.
.
お宝 N の価値(整数), お宝 N の重さ( < W:整数)
*/
int max( int a, int b)
{
if(a > b) { return a;}
else { return b; }
}
//
int solve()
{
int w,n;
vector<data> v;
cin >> w;
//終わりのときは-1を返す
if(w == 0) { return -1; }
cin >> n;
int value, weight;
//int dp[n+1][w+1];
//dp[考えたインデックス][重さ]
//インデックスは0から数えてnまで => [n+1]
//重さは0から数えてwまで => [w+1]
int dp[n+1][w+1];
//dp init
rep(i,n+1)rep(j,w+1) dp[i][j] = 0;
rep(i, n)
{
scanf("%d,%d" ,&value, &weight);
v.push_back( data(value, weight) );
}
//dp[何番目まで考えたか][重さ] = 最大値
rep(i,n+1)
{
rep(j,w+1)
{
//dp[i][j]から二つ分岐、分岐先ではmaxをとる
if(0 <= i && i < n && 0 <= j && j <= w )
{
dp[i+1][j] = max(dp[i+1][j] , dp[i][j]);
if ( j+v[i+1].w <= w )
{
dp[i+1][j + v[i+1].w] = max(dp[i+1][j + v[i+1].w] , dp[i][j] + v[i+1].v);
}
}
}
}
/*
rep(i,n+1){
cout << "[";
rep(j,w+1){
cout << dp[i][j] << " ";
}
cout << "]" << endl;
}
*/
//maxを取る値の最小の重さを探す
int least_weight;
rep(j,w){
if(dp[n][j] < dp[n][j+1])
{
least_weight= j+1;
}
}
cout << "Case " << case_num << ":" << endl;
cout << dp[n][w] << endl;
cout << least_weight<< endl;
return 0;
}
int main()
{
while (1)
{
if(solve() == -1){ break;};
case_num++;
}
}
以上是关于c_cpp a thiefhttp://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id = 0042サンプルは通るのですがWAになりますよかったら间的主要内容,如果未能解决你的问题,请参考以下文章