Codeforces Round #811 (Div. 3) E. Add Modulo 10
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相关推荐
- 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 ...
- Codeforces Round #811 (Div. 3)
Codeforces Round #811 (Div. 3) D.Color with Occurrences 题意: 给你一个长度为∣t∣|t|∣t∣的母串ttt,给你nnn个子串,如果子串和母串的 ...
- Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...
- Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...
- Codeforces Round #694 (Div. 1 + Div2)(A ~ H,8题全,超高质量题解)【每日亿题】2021/2/1、2/2
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #694 (Div. 1 + Div2)(A ~ ...
- Codeforces Round #108 (Div. 2)
Codeforces Round #108 (Div. 2) C. Pocket Book 题意 给定\(N(N \le 100)\)个字符串,每个字符串长为\(M(M \le 100)\). 每次选 ...
- 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 ...
- 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]内一 ...
- Codeforces Round #245 (Div. 1) E. Points and Segments 欧拉回路 + 建模
传送门 文章目录 题意: 思路: 题意: 思路: 考虑对于线段,如何建模. 我们考虑先将线段转换成左闭右开的形式,将左右点连起来. 再考虑每个点,将所有离散化后的点拿出来,每个点都有一个度,现在问题就 ...
最新文章
- 技术 | 入门机器学习必须知道的6件事,你可未必都了然于心了
- 【2006-4】【木偶玩具】
- 薛老师软考高项学员:2016年4月6日作业
- java 1.7的新特性_[Java] JDK 1.7版本的 新特性
- Comet OJ(Contest #14)-飞翔的小鸟【tarjan】
- 浅析文件传输协议 (ftp) 的工作原理
- android 服务是什么问题,Android Studio 中的Service问题
- 捕获系统异常崩溃的方法
- 华为机试:提取不重复的整数
- maven依赖的版本管理
- 关于matlab快速下载
- 出生日期转化为岁月天
- 函数TEXT - 补0实现数字固定位数输出
- Java爬取王者荣耀全英雄全皮肤图片
- 1.6编程基础之一维数组 10大整数加法
- 遗留物检测算法及实现
- 查询表中最高分的学生的学号和课程号(两种方法)
- acme.sh证书申请
- 21.android 7.0,8.0,9.0 Settings设置内置选项在一级菜单fragment方式
- 在蚂蚁森林把逝去的能量抢回(Python实现)