题目链接:点击查看
题目大意:中文题意
题目分析:
代码:
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef unsigned long long ull; const int inf=0x3f3f3f3f; const int N=1e5+100; struct Node { int val,id; bool operatora.val; } }a[N]; int b[N]; int main() { #ifndef ONLINE_JUDGE // freopen("input.txt","r",stdin); // freopen("output.txt","w",stdout); #endif // ios::sync_with_stdio(false); int w; cin>>w; while(w--) { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { int num; scanf("%d",&num); a[i].val=(1<<num); a[i].id=i; b[i]=0; } sort(a+1,a+1+n); int sum=(1<<30); for(int i=1;i=a[i].val) { sum-=a[i].val; b[a[i].id]=1; } } if(sum) puts("impossible"); else { for(int i=1;i<=n;i++) printf("%d",b[i]); putchar('\n'); } } return 0; } 作者:Frozen_Guardian 牛客 背包问题
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef unsigned long long ull; const int inf=0x3f3f3f3f; const int N=1e5+100; struct Node { int val,id; bool operatora.val; } }a[N]; int b[N]; int main() { #ifndef ONLINE_JUDGE // freopen("input.txt","r",stdin); // freopen("output.txt","w",stdout); #endif // ios::sync_with_stdio(false); int w; cin>>w; while(w--) { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { int num; scanf("%d",&num); a[i].val=(1<<num); a[i].id=i; b[i]=0; } sort(a+1,a+1+n); int sum=(1<<30); for(int i=1;i=a[i].val) { sum-=a[i].val; b[a[i].id]=1; } } if(sum) puts("impossible"); else { for(int i=1;i<=n;i++) printf("%d",b[i]); putchar('\n'); } } return 0; }
牛客 背包问题
帮助他人,成就自己。
人生最大成功就是伸出热情而温暖的双手,尽自己所能去帮助身边的每一个人,只要无私的奉献,就会收获到美好的生活。
1024问感谢每一位朋友的帮助和支持。