#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=100; int n,c; ll w; ll a[maxn],b[maxn]; bool dfs( int u ) { if( u==n ) return true; for( int i=0;i<min(c,u+1);i++ ) { if( b[i]+a[u]<=w ) { b[i]+=a[u]; if( dfs(u+1) ) return true; b[i]-=a[u]; } } return false; }  void solve() { cin>>n>>c>>w; memset(b,0,sizeof(b)); for( int i=0;i<n;i++ ) cin>>a[i]; if( dfs(0) ) puts("Yes"); else puts("No"); } int main() { int t; cin>>t; while( t-- ) solve(); return 0; } C题dfs搜 能过 是数据的锅吗
点赞 13

相关推荐

不愿透露姓名的神秘牛友
03-19 10:38
实力求职者:真的绷不住了,第一张霸总人设,第二张求生欲拉满
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务