专栏文章

CF2133A Redstone?题解

CF2133A题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mio5jzoq
此快照首次捕获于
2025/12/02 13:43
3 个月前
此快照最后确认于
2025/12/02 13:43
3 个月前
查看原文

CF2133A Redstone?题解

分析

查看样例,注意到:有相同数值的组输出 YES,否则输出 NO

证明

形式化题意:给出 a1,a2,a3,,ana_1, a_2, a_3, \dots, a_nf(1)=1,f(2)=a1a2,f(n)=an1an×f(n1)f(1) = 1, f(2) = \frac{a_1}{a_2}, f(n) = \frac{a_{n - 1}}{a_n} \times f(n - 1),问 f(n)f(n) 的值是否为 11
我们展开一下:
f(n)=an1an×f(n1)=an1an×an2an1×f(n2)=an1an×an2an1××a1a2=a1an\begin{aligned} f(n) &= \frac{a_{n - 1}}{a_n} \times f(n - 1) \\ &= \frac{a_{n - 1}}{a_n} \times \frac{a_{n - 2}}{a_{n - 1}} \times f(n - 2) \\ & \dots \\ &= \frac{a_{n - 1}}{a_n} \times \frac {a_{n - 2}}{a_{n - 1}} \times \dots \times \frac{a_1}{a_2} \\ &= \frac{a_1}{a_n} \end{aligned}
最后得出结论:f(n)=a1anf(n) = \frac{a_1}{a_n}
所以只要给出的 aa 数组中有至少 22 个相同的数即可。

代码

CPP
#include <bits/stdc++.h>

using namespace std;

int T;

void solve(){
    int n;
    cin >> n;
    vector <int> a(110, 0);
    bool f = 0;
    for(int i = 1, x; i <= n; i++){
        cin >> x;
        a[x]++;
        if(a[x] == 2)
            f = 1;
    }
    if(f)
        cout << "Yes\n";
    else
        cout << "No\n";
}

int main(){
    cin >> T;
    while(T--){
        solve();
    }
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...