HDU 1864 - 최대 청구 액 01 가방
주의 점: 1. 소수 * 100 (모두 두 소수 만 있 음);2. 배열 크기 가 틀 리 지 않도록 합 니 다.3. 단일 물품 은 A 항, B 항, C 항 을 말 하기 때문에 영수증 한 장 에 있 는 모든 A 금액 이 600 을 초과 해 서 는 안 됩 니 다.4. 입력 에 주의 하기;
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxv = 3000000+10;
int dp[maxv];
float q;
int n;
int a[35];
int main()
{
while(~scanf("%f%d", &q, &n))
{
if(n == 0) break;
int cnt = 0;
memset(a, 0, sizeof a);
memset(dp, 0, sizeof dp);
for(int i = 1;i<=n;i++)
{
bool flag = true;
int x;
scanf("%d", &x);
double suma = 0, sumb = 0, sumc = 0;
while(x--)
{
getchar();
char c;
float k;
scanf("%c:%f", &c, &k);
if(c == 'A') suma += k;
else if(c == 'B') sumb += k;
else if(c == 'C') sumc += k;
else flag = false;
}
if(flag && suma <= 600 && sumb <=600 && sumc <= 600)
a[cnt++] = (suma+sumb+sumc)*100*1.0;
}
int sum = q*100*1.0;
for(int i = 0;i<cnt;i++)
{
for(int j = sum;j>=a[i];j--)
dp[j] = max(dp[j], dp[j-a[i]]+a[i]);
}
printf("%.2f
", (float)dp[sum]/100);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.