AtCoder Beginner Contest 337 E-Bad Juice
E-Bad Juice
题目描述:有 杯果汁,其中一杯是发霉的,喝了发霉的果汁会拉肚。
现在你不知道哪杯是发霉的,但明天你要把这些果汁因此你想去坑你的好基友,让他们喝下这些果汁。每个基友可以喝很多杯果汁,每杯果汁可以被很多基友喝。
为了得罪尽量少的人,请求出最少需要给多少基友喝果汁,并构造出一种方案。
接下来用一个字符串 给出你的方案中每个人的窜稀情况, 代表拉肚, 代表没有拉肚。你需要据此输出发霉的果汁编号。
解法:
二进制的经典应用,每一次个人让他喝所有编号二进制表示在第 位为 的所有果汁, 最后根据评测机回答字符串,依次统计答案数字的二进制位,输出即可。
代码:
#include<bits/stdc++.h> using namespace std; int n,ans; char a[105]; int main(){ ios::sync_with_stdio(0); cin>>n; cout<<ceil(log2((double)n))<<endl; for(int i=0;i<ceil(log2((double)n));i++){ vector<int> v; for(int j=0;j<n;j++){ if(j&(1<<i)){ v.push_back(j); } } cout<<v.size(); for(int j=0;j<v.size();j++){ cout<<" "<<v[j]+1; } cout<<endl; } cin>>a; for(int i=0;i<ceil(log2((double)n));i++){ if(a[i]=='1'){ ans+=(1<<i); } } cout<<ans+1; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】