낙곡1164-소A 주문(동적 기획의 가방 문제)
1762 단어 동적 기획2017 겨울방학 숙제낙곡
uim신번은 uoi의 라(라듐표)를 받자마자 친구 A군을 끌고 식당에 갔어요. 아주 낮은 거요.
임은 벽에 있는 가격표(너무 저급해서 메뉴가 없다)를 가리키며 "마음대로 시키세요."라고 말했다.
제목 설명
그러나 uim은 보조책을 좀 샀기 때문에 주머니에 M위안(M<=10000)만 남았다.
식당은 비록 저급하지만 메뉴의 종류가 적지 않다. N종(N<=100), i종은ai원(ai<=1000)에 팔린다.아주 낮은 식당이기 때문에 종류별로 1인분만 있습니다.
A봉행이'돈을 다 먹지 않으면 그만두지 않는다'고 해서 주문을 하면 꼭 맞을 거예요. uim이 가진 모든 돈을 다 써요.그는 몇 가지 주문 방법이 있는지 알고 싶어 한다.
A군은 배가 너무 고파서 최대 1초만 기다릴 수 있었다.
입력 출력 형식
입력 형식: 첫 번째 줄은 두 개의 숫자로 N과 M을 나타낸다.
두 번째 줄부터 N개의 정수ai(같은 숫자가 있을 수 있고 모든 숫자가 1000 이내일 수 있다).
출력 형식: 주문 방안의 수를 나타내는 정수입니다.
출력 샘플 가져오기
샘플 입력 #1:4 1 2 출력 샘플 #1:3
먼저 f[i]를 i원을 사용한 방안수로 설정하고 f[0]를 1로 부여하는 것을 쉽게 알 수 있다.그리고 이중 순환, 하나는 몇 번째 요리를 일일이 주문하고, 하나는 이 요리를 주문한 후의 가격을 일일이 계산한다.마지막으로 우리는 dp식 f[j]:=f[j]+f[j-a[i]를 쉽게 얻을 수 있다.
코드는 다음과 같습니다.
var a,f:array[0..10000] of longint;
n,m,i,j:longint;
begin
readln(n,m);
for i:=1 to n do read(a[i]);
f[0]:=1;
for i:=1 to n do
for j:=m downto a[i] do f[j]:=f[j]+f[j-a[i]];
writeln(f[m]);
end.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
01 가방, 완전 가방, 다중 가방 dp(동적 기획 입문 dp)01 가방은 2진법으로 직접 표시할 수 있지만 데이터 양이 너무 많으면 시간을 초과하는 것이 폭력이다.01 가방의 사상은 바로 이 물품에 대해 내가 넣은 가치가 큰지 안 넣은 가치가 큰지 비교하여 방정식 f[i][v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.