E. Add Modulo 10
题意
给你n个数,你现在可以执行一个操作,假如对a[i]执行操作:a[i] = a[i] + (a[i] % 10),问你能不能够最后让所有的数都相等。
思路
首先我们来看两个图


上面这个图我是模拟只是个位累加的结果,我们可以发现除了第五行,其他的都会有一个规律,那就是每一次个位最后都会呈现2 4 8 6 的顺序展现,无论个位是奇还是偶,所以呢,在最开始的时候,我们可以通过一次操作将奇数变成偶数,这个时候数组里面的所有的数全都成为偶数,后面个位也只会出现2 4 8 6。
现在来看第二幅图,我们可以发现,对于个位是6的这些数字,无论怎么累计,只要个位出现了6,它的除去各位以外的位置,它的奇偶性是不改变的,就比如第二行,2 4 8 16……这一行,我们观察个位为6嗦出现的位置,36 56 76 96这些数字,它的是为都是奇数,而出现2 4 8 6的这些位置它们的十位都是偶数,那么我们会发现,个位为6是个特例,它累加后的结果与其他数字累加的结果的奇偶会不相同,那么个位为6的我们要单独考虑:
综上,我们一共分为了三类,第一类是个位为0,第二类是个位为2 4 8的,第三类是个位为6的,所以,要想最终得到一样的结果,给的数组里的数字只能满足上面三类中的一类结果

#include <bits/stdc++.h>#define int long long
#define x first
#define y secondusing namespace std;typedef pair<int, int> PII;
const int N = 2e5 + 10;int n;void solve()
{cin >> n;int flag = 1;set<int> s;int cnt[2] = {0};for (int i = 1; i <= n; i ++){int x; cin >> x;while (x & 1) x = x + x % 10;int t1 = x % 10, t2 = x / 10;if (t1 == 0) s.insert(x);else if (t1 == 6) cnt[t2 & 1] ++;else cnt[!(t2 & 1)] ++;}if (s.size()){if (s.size() == 1 && cnt[0] + cnt[1] == 0) cout << "Yes" << endl;else cout << "No" << endl;}else{if (cnt[0] == n || cnt[1] == n) cout << "Yes" << endl;else cout << "No" << endl;}
}signed main()
{std::ios::sync_with_stdio(false);int t; cin >> t;while (t --) solve();return 0;
}

Codeforces Round #811 (Div. 3) E. Add Modulo 10相关推荐

  1. Codeforces Round #811 (Div. 3) E Add Modulo 10

    原题链接:Problem - E - Codeforces 题目描述: You are given an array of nn integers a1,a2,-,ana1,a2,-,an You c ...

  2. Codeforces Round #811 (Div. 3)

    Codeforces Round #811 (Div. 3) D.Color with Occurrences 题意: 给你一个长度为∣t∣|t|∣t∣的母串ttt,给你nnn个子串,如果子串和母串的 ...

  3. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

  4. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

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

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

  6. Codeforces Round #108 (Div. 2)

    Codeforces Round #108 (Div. 2) C. Pocket Book 题意 给定\(N(N \le 100)\)个字符串,每个字符串长为\(M(M \le 100)\). 每次选 ...

  7. Codeforces Round #585 (Div. 2) F. Radio Stations 2-sat + 神仙建模

    传送门 文章目录 题意: 思路: 题意: 你现在有ppp种电台,有nnn对关系(x,y)(x,y)(x,y)代表xxx电台或yyy电台中至少有一个,mmm对关系(x,y)(x,y)(x,y)代表xxx ...

  8. Codeforces Round #740 (Div. 2) D2. Up the Strip dp + 分块优化 + 逆向思维

    传送门 文章目录 题意: 思路 题意: 有nnn个细胞,你初始在第nnn细胞上,假设你当前在xxx处,你每次可以进行如下两个操作: (1)(1)(1)选择[1,x−1][1,x-1][1,x−1]内一 ...

  9. Codeforces Round #245 (Div. 1) E. Points and Segments 欧拉回路 + 建模

    传送门 文章目录 题意: 思路: 题意: 思路: 考虑对于线段,如何建模. 我们考虑先将线段转换成左闭右开的形式,将左右点连起来. 再考虑每个点,将所有离散化后的点拿出来,每个点都有一个度,现在问题就 ...

最新文章

  1. 技术 | 入门机器学习必须知道的6件事,你可未必都了然于心了
  2. 【2006-4】【木偶玩具】
  3. 薛老师软考高项学员:2016年4月6日作业
  4. java 1.7的新特性_[Java]  JDK 1.7版本的 新特性
  5. Comet OJ(Contest #14)-飞翔的小鸟【tarjan】
  6. 浅析文件传输协议 (ftp) 的工作原理
  7. android 服务是什么问题,Android Studio 中的Service问题
  8. 捕获系统异常崩溃的方法
  9. 华为机试:提取不重复的整数
  10. maven依赖的版本管理
  11. 关于matlab快速下载
  12. 出生日期转化为岁月天
  13. 函数TEXT - 补0实现数字固定位数输出
  14. Java爬取王者荣耀全英雄全皮肤图片
  15. 1.6编程基础之一维数组 10大整数加法
  16. 遗留物检测算法及实现
  17. 查询表中最高分的学生的学号和课程号(两种方法)
  18. acme.sh证书申请
  19. 21.android 7.0,8.0,9.0 Settings设置内置选项在一级菜单fragment方式
  20. 在蚂蚁森林把逝去的能量抢回(Python实现)

热门文章

  1. (logN)²是O(N)的
  2. sparc处理器开发工具_SPARC处理器启动代码的分析与编程
  3. SAP管理软件系统框架合同业务的实现及相关注意事项解析
  4. Winserver2016安装Exchange2016总结(一堆坑)
  5. PDF文件如何提取页面,PDF提取页面的小技巧
  6. 计操实验 多级反馈队列C语言
  7. 用 python , opencv 打开网络摄像头读取图像
  8. VMbox 如何显示控制菜单,不显示控制菜单了
  9. 23MySQL 是怎么保证数据不丢的
  10. 综合日语第一册第十一课