(タイトルはまだ顔、プラス後半平面のタイトルを見ることができません)
ACコード:
1つの#include <ビット/ STDC ++ H> 2 の#pragma GCCの最適化(3) 3 使用して 名前空間STDを、 4のtypedef 長い 長LL。 5 のconst int型 MAXN = 1E6 + 7 。 6 CONST LL INF = 0x3f3f3f3f3f 。 7 のconst int型 MAXM = 1E4。 8 構造体NODE 9 { 10 LLウェイ。 11 LLのヴァル; 12 }ノード[MAXN]。 13 ; MAXN] F LL 14テンプレート<クラス T> 15インラインボイドリード(T&X) 16 { 17 T ANS = 0、F = 1 。 18 CHAR CH = GETCHAR()。 19 一方(CH> ' 9 ' || CH < ' 0 ' ) 20 { 21 であれば(CH == ' - ')、F = - 1 。 22 CH = GETCHAR()。 23 } 24 ながら、(CH <= ' 9 '&& CH> = ' 0 ' ) 25 { 26件 のANS =のANS * 10 +(CH- ' 0 ' )。 27 CH = GETCHAR()。 28 } 29 = ANS * X fは、 30 } 31 のint main()の 32 { 33 INT N。 34 のLL M。 35 一方(〜のscanf(" %d個の%のLLD "、&N、&M)) 36 { 37 のためのレジスタ(INT I =1 ; I <= N。++ I) 38 { 39 リード(ノード[I] .val)。 40 リード(ノード[I] .wei)。 41 } 42 のmemset(F、INF、はsizeof (F))。 43 F [ 0 ] = 0 。 44 のために(登録をint i = 1 ++; iが<= N I) 45 { 46 用(登録INT [I] .wei J =ノードと、J <= MAXM; ++ j)の 47 { 48 F [J] =分(F [J]、F [J-ノード[I] .wei] +ノード[I] .val)。 49 } 50 } 51 LLアンサ= INF。 52 INTのansB = 0 。 53 のために(登録INT I = M; I <= MAXM; ++ I) 54 { 55 であれば(F [i]が< アンサ) 56 { 57 アンサ= F [i]は、 58 のansB = I; 59 } 60 他の 場合([I] ==アンサ&&のansB <F I) 61 { 62 ansB = I; 63 } 64 } 65 のprintf(" %LLD%D \ n " 、アンサ、のansB)。 66 } 67 リターン 0 。 68 }