diff --git a/day14/P1064/P1064.cpp b/day14/P1064/P1064.cpp index 9c7f5da..76a46d5 100644 --- a/day14/P1064/P1064.cpp +++ b/day14/P1064/P1064.cpp @@ -40,12 +40,12 @@ int main(){ } for(int i=1;i<=m;i++){ for(int j=n;j>=0;j--){ - if(items[i].subNum==2&&j>=(items[i+1].v+items[i+2].v)){ - dp[j]=max(dp[j],dp[j-(items[i+1].v+items[i+2].v)]+(items[i+1].v*items[i+1].p)+(items[i+2].v*items[i+2].p)); - }else if((items[i].subNum==2&&j>=items[i+1].v) || (items[i].subNum==1&&j>=items[i+1].v)){ - dp[j]=max(dp[j],dp[j-items[i+1].v]+(items[i+1].v*items[i+1].p)); - }else if(items[i].subNum==2&&j>=items[i+2].v){ - dp[j]=max(dp[j],dp[j-items[i+2].v]+(items[i+2].v*items[i+2].p)); + if(items[i].subNum==2&&j>=(items[i].v+items[i+1].v+items[i+2].v)){ + dp[j]=max(dp[j],dp[j-(items[i].v+items[i+1].v+items[i+2].v)]+(items[i].v*items[i].p)+(items[i+1].v*items[i+1].p)+(items[i+2].v*items[i+2].p)); + }else if((items[i].subNum==2&&j>=(items[i].v+items[i+1].v)) || (items[i].subNum==1&&j>=(items[i].v+items[i+1].v))){ + dp[j]=max(dp[j],dp[j-(items[i].v+items[i+1].v)]+(items[i].v*items[i].p)+(items[i+1].v*items[i+1].p)); + }else if(items[i].subNum==2&&j>=(items[i].v+items[i+2].v)){ + dp[j]=max(dp[j],dp[j-(items[i].v+items[i+2].v)]+(items[i].v*items[i].p)+(items[i+2].v*items[i+2].p)); }else if(j>=items[i].v){ dp[j] = max(dp[j],dp[j-items[i].v]+items[i].v*items[i].p); } diff --git a/day14/P3367/1.ans b/day14/P3367/1.ans new file mode 100644 index 0000000..ff729d8 --- /dev/null +++ b/day14/P3367/1.ans @@ -0,0 +1,4 @@ +N +Y +N +Y \ No newline at end of file diff --git a/day14/P3367/1.in b/day14/P3367/1.in new file mode 100644 index 0000000..a6df0f1 --- /dev/null +++ b/day14/P3367/1.in @@ -0,0 +1,8 @@ +4 7 +2 1 2 +1 1 2 +2 1 2 +1 3 4 +2 1 4 +1 2 3 +2 1 4 \ No newline at end of file diff --git a/day14/P3367/P3367.cpp b/day14/P3367/P3367.cpp new file mode 100644 index 0000000..6cea857 --- /dev/null +++ b/day14/P3367/P3367.cpp @@ -0,0 +1,62 @@ +#include +#include +#include +using namespace std; + +const int MAX_N=1e4+114; +int n,m; +int b[MAX_N]; + +inline int readint(); +inline int getfather(int n); +inline int getroot(int n); +inline void pre(int n); + +#define PV(v){cout<<#v<<" : "<<(v)< +#include +#include +#include +#include +using namespace std; + +int readint(); +const int MAX_N = 1e5+5; +const int MAX_LN = 20; +int s[MAX_N][MAX_LN]; +int m,n; +int l2[MAX_N]; + +int main(){ + n=readint(),m=readint(); + l2[1]=0; + for(int i=2;i<=n;i++){ + l2[i]=l2[i/2]+1; + } + for(int i=1;i<=n;i++){ + s[i][0]=readint(); + } + for (int j=1;j<=l2[n]; j++) { + for(int i=1;i<=n-(1<