【题解】洛谷P5911 :[POI2004] PRZ 小trick
状压dp,先预处理出来所以状态的重量和时间,然后枚举集合,然后枚举子集,子集重量合法的话就可以转移,因为这题是多个集合组成最后的集合。
枚举子集。
https://oi-wiki.org/math/binary-set/#__tabbed_1_1
#include <bits/stdc++.h> #define int long long #define ls p<<1 #define rs p<<1|1 #define re register const int N=1<<17; const int mod=998244353; using namespace std; int m,n; int a[N],b[N]; int t[N],w[N]; int f[N]; signed main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cin>>m>>n; for(int i=1;i<=n;i++){ cin>>a[i]>>b[i]; } for(int i=0;i<=(1<<n)-1;i++){ for(int j=1;j<=n;j++){ if(i&(1<<(j-1))){ t[i]=max(t[i],a[j]); w[i]+=b[j]; } } } memset(f,0x3f,sizeof f); f[0]=0; for(int i=0;i<=(1<<n)-1;i++){ for(int j=i;j;j=(j-1)&i){ if(w[j]<=m){ f[i]=min(f[i],t[j]+f[j^i]); } } } cout<<f[(1<<n)-1]; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」