题目链接:C. Alice and the Cake

题意: 爱丽丝有一块蛋糕,她要把蛋糕切成n份,每一次操作,她会选择一块蛋糕(另大小为A),将其切成两半,两块大小分别为A / 2, (A + 1) / 2,及分成整数的两半,如果原大小为奇数,则一块会大1,现在给出一个序列,问有没有可能为一块蛋糕经过n - 1次操作后得到的

方法一.

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{int t;cin>>t;while(t--){int n;cin>>n;//优先队列,从大到小进行排列 priority_queue <ll,vector<ll>,less<ll> >q1;//q1队列存的为初始值 priority_queue <ll,vector<ll>,less<ll> >q2;//q2队列存的是转换后的值 ll sum=0;for(int i=0;i<n;i++){int x;cin>>x;sum+=x;q1.push(x);}q2.push(sum);//将和推入队列q2中 int s=0,f=0;while(q1.size()>0)//当q1队列为空时,跳出循环, {ll h=q2.top();q2.pop();if(h==q1.top())//如果h为q1队列的最大的数,将h从q1中删去 q1.pop();else//如果h不为q1队列的最大值,则将其进行转换 {s++;q2.push(h/2);q2.push((h+1)/2);}if(s>n-1)//满足q1队列不为空且转换次数用完,则输出NO {cout<<"NO"<<endl;f=1;break;}}if(!f)cout<<"YES"<<endl;}
}

方法二

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll t,a[N],m,n,sum;
map<ll,int>mp;
void dfs(ll x)
{if(n==0||m)return;if(mp[x]){n--;mp[x]--;return;}if(x==1){m=1;return;}dfs(x/2);dfs(x-x/2);
}
int main()
{ cin>>t; while (t--){cin>>n;sum=0;m=0;mp.clear();for(int i=1;i<=n;i++){cin>>a[i];sum+=a[i];mp[a[i]]++;}dfs(sum);if(n)puts("NO");elseputs("YES"); }}

C. Alice and the Cake相关推荐

  1. Module3:Alice in Wonderland

    1.Down the Rabbit Hole Alice and her big sister were sitting on the grass. Her sister was reading a ...

  2. [Cake] 1. CI中的Cake

    在上一篇C#Make自动化构建-简介中,简单的介绍了下Cake的脚本如何编写以及通过Powershell或者Bash在本地运行Cake脚本.本篇在此基础上,介绍下如何在CI环境中使用Cake. 1. ...

  3. Trie树合并 + SG函数 ---- BZOJ4730. Alice和Bob又在玩游戏(动态开点Trie 树上全局异或标记 + 合并 + 博弈论)

    题目大题 题目大意: 解题思路: 首先我们对于子树u的SG函数为SG函数为SG函数为 ⨁是异或和\bigoplus是异或和⨁是异或和 SG[u]=mex{⨁w∈(w的父亲在u到v的路径上)SG[w]∣ ...

  4. 【清华集训2016】Alice和Bob又在玩游戏

    不难的题目.因为SG性质,所以只需要对一棵树求出. 然后如果发现从上往下DP不太行,所以从下往上DP. 考虑一个点对子树的合并,考虑下一个删的点在哪一个子树,那么剩下的状态实际上就是把一个子树所有能达 ...

  5. Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake 线段树维护dp

    D. Babaei and Birthday Cake 题目连接: http://www.codeforces.com/contest/629/problem/D Description As you ...

  6. Sicily1798. Alice and Bob[策略问题]

    [原题描述] Description Bob is very famous because he likes to play games. Today he puts a chessboard in ...

  7. ALICE源代码分析

    前言 ALICE(爱丽丝)事实上是"人工语言计算机实体"的英文缩写. 它以前在往年(2000年.2001年和2004年)的勒布纳人工智能奖角逐中三次获胜.并在其它年度中也获过骄人的 ...

  8. SDUT2608(Alice and Bob)

    题目描述 Alice and Bob like playing games very much.Today, they introduce a new game. There is a polynom ...

  9. hdu 4268 Alice and Bob(STL版)

    http://acm.hdu.edu.cn/showproblem.php?pid=4268 这是今天网络赛的水题,下午短路了,没想到怎么做.队友hq是用treap做的,不过赛后我才想懂怎么做,回到宿 ...

最新文章

  1. Netapp存储基础之WAFL, NVRAM, RAID, SnapShot
  2. 一个理想主义者关于爱情和美女、事业与金钱的疯人痴语
  3. Linux脚本点空格,linux – 在bash脚本中使用引号和空格的awk
  4. Spark RDD概念学习系列之rdd持久化、广播、累加器(十八)
  5. Python Django 可变参数代码示例
  6. PHY管理接口(MDIO)
  7. python第九天(9-33)
  8. 数据结构顺序表基本流程
  9. 灵活的数据管理和展示javascript类库 - Recline.js
  10. knowledge_based topic model - 基于知识的主题模型概述
  11. c语言——约瑟夫环(数组)
  12. 不到100行代码搞定Python做OCR识别身份证,文字等各种字体
  13. protel相关资料
  14. java applet插件下载_Java Applet.zip
  15. java奖学金课设系统_java毕业设计_springboot框架的基于奖学金评定系统
  16. 计算机 未保存,电脑突然关机wps没保存怎么办
  17. 活动桌面处理和一个例子
  18. 【搬运及个人处理】联想电脑(Lenovo XiaoXinAir-14IIL 2020)散热模式Fn+Q 失效解决方案
  19. 360在网站安全防护中的实践
  20. 软件项目中引用头文件的几种方法及要点

热门文章

  1. Revit二次开发之 自定义选项卡排在最前端
  2. 什么是php 抽象类
  3. Web自定义表单工具和协同办公系统之集成(1)
  4. 驱动程序和触摸屏的下载
  5. 汉字风格迁移篇---个人手写体汉字字体的学习与生成*
  6. 把自己曾经写的一个客户间聊天的程序与大家分享(2)
  7. 克罗内克积(Kronecker product)与笛卡尔乘积(Cartesian product)
  8. Git回退和取消回退
  9. Quasi_Newton
  10. 华师大计算机基础在线作业,华东师范大学计算机作业答案