​​​​​​Problem - B - Codeforces

题意就是给你序列a,问最小操作可以使a里面的数都是奇数

操作1:选任意两个数合并

操作2:选一个偶数/2

这个题的思路还是很明朗的,奇数就是0,奇数+偶数必为奇数,序列a中如果存在奇数就是偶数的个数,因为偶数可以不断加到奇数上面去。但是如果都是偶数怎么办,这个地方就是贪心了,我一开始思路错了,想着全部加起来是个偶数,然后每次除以2除到奇数为止。

这个就是贪心的策略了,我这么想得需要证明这个方法的合理性啊,不证明合理性就这么想当然当然会错,比如32,要除以到奇数得5次,两个奇数偶数相加得到32,得6次。那如果取两个偶数先除以2,得到最小的操作次数到奇数,然后把另外的偶数依次加上去,当然这样更优

所以都是偶数的情况:每个数都除以2到奇数的最小操作次数求出来,先在序列里面找到一个奇数,然后把偶数依次加上去:cnt+n-1

#include<iostream>
#include<vector>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll a[N];
int main(){int T;cin>>T;while(T--){ll n,even=0,od=0,sum=0,res=0x3f3f3f3f;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]%2==1) od++;if(a[i]%2==0) even++;sum+=a[i];}if(od&&even){cout<<even<<"\n";continue;}else if(even==0&&od){cout<<"0\n";continue;}else if(od==0&&even){for(int i=1;i<=n;i++){ll cnt=0;while(a[i]%2==0){cnt++;a[i]/=2;}res=min(res,cnt);}cout<<res+n-1<<"\n";}}return 0;
}

B. Patchouli‘s Magical Talisman #796 div2相关推荐

  1. Codeforces Round #796 (Div. 2) B Patchouli‘s Magical Talisman

    题意: 广藿香正在制作一个神奇的护身符. 她最初有 n 个魔法令牌. 它们的魔力可以用正整数a1,a2,-,an来表示. 广藿香可以对令牌执行以下两种操作. 融合:广藿香选择两个标记,移除它们,并创造 ...

  2. cf:B. Patchouli‘s Magical Talisman【数学贪心思维 + 奇偶分析】

    分析 给出一堆数 可以通过相加或除2让它们全部变成奇数 如果全奇数返回0 由于奇数 + 偶数 = 奇数 所以只要有一个奇数就能把偶数和它相加不停的变成奇数 所以只要存在奇数,就可以返回偶数的个数 否则 ...

  3. cf #796 Div.2

    cf #796 Div.2 文章目录 cf #796 Div.2 [A. Cirno's Perfect Bitmasks Classroom](https://codeforces.com/cont ...

  4. Codeforces Round #796 (Div. 2)

    目录 A. Cirno's Perfect Bitmasks Classroom B. Patchouli's Magical Talisman C. Manipulating History D. ...

  5. 【CF 比赛记录】Roye_ack的艰难上分日常(35)

    目录 #792 Div1+Div2 AC  A1. Digit Minimization #Edu 129 Div2 !A2. Game with Cards #795 Div2 AC  A3. Be ...

  6. #423 Div2 D

    #423 Div2 D 题意 构造一个 n 个节点的树,恰好有 k 个叶子节点 (叶子节点的定义是只与树上的某一个节点存在连边),要求任意两个叶子节点的距离的最大值最小,距离为两个节点间边的数量,输出 ...

  7. Codeforces Round #694 (Div. 1 + Div2)(A ~ H,8题全,超高质量题解)【每日亿题】2021/2/1、2/2

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #694 (Div. 1 + Div2)(A ~ ...

  8. ACM-ICPC 2018 南京赛区网络预赛 L. Magical Girl Haze 最短路+分层图

    类似题解 There are NN cities in the country, and MM directional roads from uu to v(1\le u, v\le n)v(1≤u, ...

  9. Topcoder Srm 671 Div2 1000 BearDestroysDiv2

    \(>Topcoder \space Srm \space 671 \space Div2 \space 1000 \space BearDestroysDiv2<\) 题目大意 : 有一 ...

最新文章

  1. 禁止windows系统的自动运行功能
  2. 基于opencv实战眼睛控制鼠标
  3. 使用python的while语句,编写简单门票与年龄计算器
  4. 洛谷 P3384 【模板】树链剖分-树链剖分(点权)(路径节点更新、路径求和、子树节点更新、子树求和)模板-备注结合一下以前写的题目,懒得写很详细的注释...
  5. python 解析xml格式_Python解析XML文件
  6. 【转】补零与离散傅里叶变换的分辨率
  7. GDCM:gdcm::Coder的测试程序
  8. python 迭代详解_详解python中的迭代
  9. liferay 调用ajax
  10. 大学生如何成功就业。
  11. P2659 美丽的序列
  12. 云服务器选ssd还是hdd_云服务器应该怎么选择?
  13. 单向关联java_java – 使用单向或双向关系的不同行为
  14. 购买计算机相关配件的会计分录,购买电脑配件自己组装电脑怎么写会计分录
  15. c语言读取sgy格式文件,用C语言读写SGY格式的地震数据文件
  16. 各代iphone尺寸_Iphone 历代 参数
  17. html是什么文件 可以删除吗,perflogs是什么文件夹?perflogs可以删除吗?
  18. xdg在Linux中的用法,linux-如何使用sudo获取XDG变量?
  19. 千呼万唤始出来——DataV私有部署功能
  20. 动态路由 华三nat 静态路由_史上最详细H3C路由器NAT典型配置案例

热门文章

  1. java class加载_Java 类加载
  2. 人工只能对php的影响,阿西莫夫眼中的人工智能
  3. Javaweb化妆品网上购物系统
  4. R语言ggplot2绘图教程——Pathway富集分析气泡图
  5. 并购后仍不吭声的当当,下一步剑指何方?
  6. 耦合器 功分器 合路器
  7. 风速的java_UV数据与风速风向数据转换
  8. 如何选择正确的RF连接器
  9. 2022-2028全球月桂醇磷酸酯(MAE)行业调研及趋势分析报告
  10. 协同过滤系统基于用户的评分预测