diff --git a/day12/U466168/U466168.cpp b/day12/U466168/U466168.cpp index ca6224d..ab84c05 100644 --- a/day12/U466168/U466168.cpp +++ b/day12/U466168/U466168.cpp @@ -1,4 +1,4 @@ -//30%Points k==1 +//60%Points k==1 & 1->k->n #include #include @@ -21,15 +21,28 @@ int main(){ for(int i=1;i<=n;i++){ nodes[i].t=readint(); } - if(k==1){AC_KE_Q1();exit(0);} - -} -void AC_KE_Q1(){ for(int i=1;i<=m;i++){ const int u=readint(),v=readint(); nodes[u].next.push_back(v); nodes[v].next.push_back(u); } + if(k==1){AC_KE_Q1();exit(0);} + int uNum=k-1; + cout<<"P"; + for(int i=2;i +using namespace std; +#define int long long + +const int MAX_M=1e4+5; +const int MAX_T=1e7+5; +int T,m; +int t[MAX_M],v[MAX_M]; +int dp[MAX_T]; + +int readint(); + +signed main(){ + T=readint(),m=readint(); + for(int i=1;i<=m;i++){ + t[i]=readint(); + v[i]=readint(); + } + for(int i=1;i<=m;i++){ + for(int j=t[i];j<=T;j++){ + dp[j] = max(dp[j],dp[j-t[i]]+v[i]); + } + } + cout< +using namespace std; + +const int MAX_M = 1'2880+5; +int dp[MAX_M],w[MAX_M],v[MAX_M]; +int n,m; + +int readint(); + +int main(){ + n=readint(); + m=readint(); + + for(int i=1;i<=n;i++){ + w[i]=readint(); + v[i]=readint(); + } + + for(int i=1;i<=n;i++){ + for(int j=m;j>=w[i];j--){ + dp[j]=max(dp[j-w[i]]+v[i],dp[j]); + } + } + + cout<