C. Alice and the Cake
题目链接: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相关推荐
- Module3:Alice in Wonderland
1.Down the Rabbit Hole Alice and her big sister were sitting on the grass. Her sister was reading a ...
- [Cake] 1. CI中的Cake
在上一篇C#Make自动化构建-简介中,简单的介绍了下Cake的脚本如何编写以及通过Powershell或者Bash在本地运行Cake脚本.本篇在此基础上,介绍下如何在CI环境中使用Cake. 1. ...
- Trie树合并 + SG函数 ---- BZOJ4730. Alice和Bob又在玩游戏(动态开点Trie 树上全局异或标记 + 合并 + 博弈论)
题目大题 题目大意: 解题思路: 首先我们对于子树u的SG函数为SG函数为SG函数为 ⨁是异或和\bigoplus是异或和⨁是异或和 SG[u]=mex{⨁w∈(w的父亲在u到v的路径上)SG[w]∣ ...
- 【清华集训2016】Alice和Bob又在玩游戏
不难的题目.因为SG性质,所以只需要对一棵树求出. 然后如果发现从上往下DP不太行,所以从下往上DP. 考虑一个点对子树的合并,考虑下一个删的点在哪一个子树,那么剩下的状态实际上就是把一个子树所有能达 ...
- 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 ...
- Sicily1798. Alice and Bob[策略问题]
[原题描述] Description Bob is very famous because he likes to play games. Today he puts a chessboard in ...
- ALICE源代码分析
前言 ALICE(爱丽丝)事实上是"人工语言计算机实体"的英文缩写. 它以前在往年(2000年.2001年和2004年)的勒布纳人工智能奖角逐中三次获胜.并在其它年度中也获过骄人的 ...
- SDUT2608(Alice and Bob)
题目描述 Alice and Bob like playing games very much.Today, they introduce a new game. There is a polynom ...
- hdu 4268 Alice and Bob(STL版)
http://acm.hdu.edu.cn/showproblem.php?pid=4268 这是今天网络赛的水题,下午短路了,没想到怎么做.队友hq是用treap做的,不过赛后我才想懂怎么做,回到宿 ...
最新文章
- Netapp存储基础之WAFL, NVRAM, RAID, SnapShot
- 一个理想主义者关于爱情和美女、事业与金钱的疯人痴语
- Linux脚本点空格,linux – 在bash脚本中使用引号和空格的awk
- Spark RDD概念学习系列之rdd持久化、广播、累加器(十八)
- Python Django 可变参数代码示例
- PHY管理接口(MDIO)
- python第九天(9-33)
- 数据结构顺序表基本流程
- 灵活的数据管理和展示javascript类库 - Recline.js
- knowledge_based topic model - 基于知识的主题模型概述
- c语言——约瑟夫环(数组)
- 不到100行代码搞定Python做OCR识别身份证,文字等各种字体
- protel相关资料
- java applet插件下载_Java Applet.zip
- java奖学金课设系统_java毕业设计_springboot框架的基于奖学金评定系统
- 计算机 未保存,电脑突然关机wps没保存怎么办
- 活动桌面处理和一个例子
- 【搬运及个人处理】联想电脑(Lenovo XiaoXinAir-14IIL 2020)散热模式Fn+Q 失效解决方案
- 360在网站安全防护中的实践
- 软件项目中引用头文件的几种方法及要点