AcWing第 95 场周赛

4873. 简单计算

给定四个整数 x1,y1,x2,y2,请你计算 max(|x1−x2|,|y1−y2|)。

输入格式

第一行包含两个整数 x1,y1。

第二行包含两个整数 x2,y2。

输出格式

一个整数,表示 max(|x1−x2|,|y1−y2|)的值。

数据范围

前 4 个测试点满足 −10≤x1,y1,x2,y2≤10
所有测试点满足 −109≤x1,y1,x2,y2≤109。

输入样例1:

0 0
4 5

输出样例1:

5

输入样例2:

3 4
6 1

输出样例2:

3
#include
using namespace std;
int main(){
    int x1,y1,x2,y2;
    cin>>x1>>y1>>x2>>y2;
    cout<

4874. 约数

如果一个正整数的约数个数恰好为 33,则称该数为美丽数。

给定 n 个正整数 a1,a2,…,an,请你依次判断每个数是否是美丽数。

输入格式

第一行包含整数 n。

第二行包含 n 个整数 a1,a2,…,an。

输出格式

共 n 行,其中第 i 行输出对 ai 的判断,如果 ai 是美丽数,则输出 YES,否则输出 NO

数据范围

前 66 个测试点满足 1≤n≤10。
所有测试点满足 1≤n≤105,1≤ai≤1012。

输入样例:

3
4 5 6

输出样例:

YES
NO
NO
#include 
#include 
#include 
#include 

using namespace std;

const int N = 1e6 + 10;
typedef long long ll;

int primes[N], cnt; 
bool st[N]; 

void get_primes(int n)
{   st[1] = true;
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i]) primes[cnt ++ ] = i;
        for (int j = 0; primes[j] <= n / i; j ++ )
        {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
}

int main() {
    int n; cin >> n;

    get_primes(N);

    while (n -- ) {
        ll x; cin >> x;

        int t = sqrt(x);
        if ((ll)t * t == x && st[t] == false) puts("YES");
        else puts("NO");
    }
    return 0;
}
 

4875. 整数游戏

Alice 和 Bob 在玩一个游戏。

首先,给定一个长度为 n� 的正整数数列 a1,a2,…,an�1,�2,…,��。

随后,两人轮流展开行动,由 Alice 先手行动。

当轮到一人采取行动时,如果 a1=0�1=0,则该玩家输掉游戏,否则该玩家需要:

  1. 在 [2,n][2,�] 范围内选择一个整数 i�。
  2. 将 a1�1 的值减少 11。
  3. 交换 a1�1 和 ai�� 的值。

假设双方都采取最优策略,请你判断谁将获胜。

输入格式

第一行包含整数 T�,表示共有 T� 组测试数据。

每组数据第一行包含整数 n�。

第二行包含 n� 个整数 a1,a2,…,an�1,�2,…,��。

输出格式

每组数据输出一行结果,如果 Alice 获胜,则输出 Alice,如果 Bob 获胜,则输出 Bob

数据范围

前 33 个测试点满足 1≤T≤101≤�≤10,2≤n≤32≤�≤3。
所有测试点满足 1≤T≤2×1041≤�≤2×104,2≤n≤1052≤�≤105,1≤ai≤1091≤��≤109,一个测试点的所有的 n� 相加之和不超过 2×1052×105。

输入样例:

3
2
1 1
2
2 1
3
5 4 4

输出样例:

Bob
Alice
Alice
#include 
#include 

using namespace std;

const int N = 1e5 + 10;

int n;
int a[N];

void solve() {
    scanf("%d", &n);
    int minv = 2e9;
    for (int i = 1; i <= n; i ++ ) {
        scanf("%d", &a[i]);
        if (a[i] < minv) minv = a[i];
    }
    puts(a[1] == minv ? "Bob" : "Alice");
}

int main() {
    int _; scanf("%d", &_);
    while (_ -- ) solve();
    return 0;
}
 

 

你可能感兴趣的:(AcWing,c++,经验分享,学习)