Codeforces Round #622 (Div. 2) A. Fast Food Restaurant

题意:

你是餐馆老板,虽然只会做三道菜,上菜时还有个怪癖:一位客人至少上一道菜,且一种菜最多上一次,所有客人菜单不能相同。给出三种菜的数量,问最多能接收多少客人。

思路:

一人一道 → 一人两道 → 一人三道。

#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;cin>>t;
while(t--){
int a[3];for(int &i:a) cin>>i;
int ans=0;
for(int i=0;i<3;i++)
if(a[i]) --a[i],++ans;
sort(a,a+3,greater<int>());
for(int i=0;i<3;i++)
if(a[i]&&a[(i+1)%3])
--a[i],--a[(i+1)%3],++ans;
if(a[0]&&a[1]&&a[2]) ++ans;
cout<<ans<<endl;
}
return 0;
}

拓展:

你疫情在家闲的没事干多学做了几道菜。

#include <bits/stdc++.h>
using namespace std; const int M=3;//会做几种菜 int a[M],ans;
vector<int> index; bool ok(){
for(int &i:index)
if(a[i]==0) return false;
return true;
} void dfs(int start,int dep,int max_dep){
if(dep>max_dep){
if(ok()){
for(int &i:index) --a[i];
++ans;
}
return;
}
for(int i=start;i<M;i++)
if(a[i]){
index.push_back(i);
dfs(i+1,dep+1,max_dep);
index.pop_back();
}
} void solve(){
for(int &i:a) cin>>i;
sort(a,a+M,greater<int>());
ans=0;
for(int i=0;i<M;i++)
dfs(0,0,i);
cout<<ans<<endl;
} int main()
{
int t;cin>>t;
while(t--)
solve();
return 0;
}

最新文章

  1. BZOJ1303 [CQOI2009]中位数图
  2. java报表工具finereport常用函数的用法总结(数组函数)
  3. 【ibus】设置ibus输入法(pinyin &amp; sunpinyin)
  4. setting菜单界面的形成--未优化
  5. OpenStack:安装Glance
  6. spring中的BeanFactory与ApplicationContext的作用和区别?
  7. CSS基础(01)
  8. windows 编程—— 学习指导
  9. [置顶] 【原创分享】嵌入式linux应用之内核移植定制篇-前篇(linux-3.8.12 mini2440)--20130824
  10. Serializable接口的背后
  11. 动手学习TCP:数据传输(转)
  12. 如何利用百度音乐播放器的API接口来获取高音质歌曲
  13. 改ext界面
  14. Algorithm --&gt; 阶乘和因子
  15. [Codeforces]849E Goodbye Souvenir
  16. Ansible安装及简单使用备注
  17. MySql:SELECT 语句(六) CONCAT() 函数的使用
  18. C# 基础运算符及运算
  19. Web自动化
  20. python---面对对象的组合

热门文章

  1. 大厂面试官竟然这么爱问Kafka,一连八个Kafka问题把我问蒙了?
  2. MyBatis初级实战之一:Spring Boot集成
  3. Head First 设计模式 —— 12. 状态 (State) 模式
  4. python学习笔记 | PyCharm出现卡顿解决方法
  5. postgresql数据库升级
  6. SAP中用户口令状态的一点说明
  7. B树的进化版----B+树
  8. 入门OJ:Coin
  9. Python爬虫:数据分析小能手:JSON库的用法
  10. .NetCore 在不同位置添加过滤器