1. 程式人生 > >洛谷 P3112 後衛馬克Guard Mark

洛谷 P3112 後衛馬克Guard Mark

href org one eof https %d () spa ostream

->題目鏈接

技術分享圖片

技術分享圖片

題解:

貪心+模擬

技術分享圖片
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int inf=1e9+7;
int n,H,h[25],w[25],s[25],f[(1<<20)+1],g[(1<<20)+1],ans=-1;
int main() {
    scanf("%d%d",&n,&H);
    
for(int i=0; i<=n-1; i++) scanf("%d%d%d",&h[i],&w[i],&s[i]); memset(f,-1,sizeof(f)); f[0]=inf; for(int i=0; i<=(1<<n)-1; i++) for(int j=0; j<=n-1; j++) if(f[i]>=w[j]) { if((i>>j)&1) continue;
int k=i^(1<<j); f[k]=max(f[k],min(f[i]-w[j],s[j])); g[k]=g[i]+h[j]; if(g[k]>=H) ans=max(ans,f[k]); } if(ans<0) printf("Mark is too tall"); else printf("%d",ans); return 0; }
AC

擁抱過後,我的雙手應該放在哪裏

洛谷 P3112 後衛馬克Guard Mark