E. Add Modulo 10(规律)

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了E. Add Modulo 10(规律)相关的知识,希望对你有一定的参考价值。

E. Add Modulo 10(规律)

可以看出末位为1、3、6、7、9 最终会进入到2、4、8、6的循环。

2 + 4 + 8 + 6 = 20 2+4+8+6=20 2+4+8+6=20,这个周期的长度为20。

对于末位 5 , 0 5,0 5,0 最终会变成末位为0。

因此分两种情况: 0 、 2 0、2 02

先把第一种情况末位变成为2,然后模20,第二种情况就变成末位为0,不取模。

然后比较 n n n个数是否相同。

#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main()

    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int t; cin >> t;
    while(t--)
    
        int n; cin >> n;
        vector<int> a(n);
        // 2 0
        for (int i = 0; i < n; i++) 
            cin >> a[i];
            while(a[i]%10 != 2 && a[i]%10 != 0) 
                a[i] += a[i]%10;
            
            if(a[i]%10 == 2) 
                a[i] %= 20;
            
        
        cout << (a == vector(n, a[0]) ? "Yes\\n":"No\\n");
    

    return 0;

以上是关于E. Add Modulo 10(规律)的主要内容,如果未能解决你的问题,请参考以下文章

E. Add Modulo 10(规律)

E. Count The Blocks(找数学规律)

E. Common Number (思维 + 规律)

2019 计蒜之道 复赛 E. 撑起信息安全“保护伞” (贪心,构造,规律)

Educational Codeforces Round 47 (Rated for Div. 2) :E. Intercity Travelling

[CF1103B]Game with modulo