鱼C论坛

 找回密码
 立即注册
查看: 922|回复: 6

[已解决]codeforces上的一道题

[复制链接]
发表于 2023-11-12 22:48:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <bits/stdc++.h>
using namespace std;
const int N= 60;
int a[N];

int main()
{
    int t,n;
    cin>>t;
    while(t--)
    {
        cin>>n;
        for(int i=0;i<n;i++)
        {
            cin>>a[i];
        }
        bool is_two=true;
        for(int i=0;i<n;i++)
        {
            if(a[i]%2!=0)
            {
                is_two =false;
            }
        }
        // if(is_two)cout<<"YES"<<endl;  //表示全部是奇数
        bool is_one=true;
        for(int i=0;i<n;i++)
        {
            if(a[i]%2==0)
            {
                is_one=false;
            }
        }
        if(is_one||is_two)cout<<"YES"<<endl;
        else
        {
            /*我写出了如果全为奇数或者全部为偶数则输出yes,后面通过发现规律,如果奇数位是偶数,此时偶数位为奇数也输出yes,偶数位为奇数,奇数位位偶数
            也是对的,但是逻辑不知道怎么写   */
   
        }
    }
}
最佳答案
2023-11-12 22:49:13
你好,根据你的描述,我理解你想要对奇偶性进行更精细的判断。你可以使用以下逻辑来完成这一部分:
bool is_alternating = true;for (int i = 0; i < n - 1; i++) {    if (a[i] % 2 != a[i + 1] % 2) {        continue;    } else {        is_alternating = false;        break;    }}if (is_alternating) {    cout << "YES" << endl;} else {    cout << "NO" << endl;}
在这段代码中,我们检查相邻元素的奇偶性,如果相邻元素的奇偶性不同,那么数组就是符合条件的;否则,就输出"NO"。希望这能解决你的问题。如果有其他疑问,欢迎随时向我提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-12 22:48:45 | 显示全部楼层
这段代码的作用是判断输入的一组数字中是否全为偶数或者全为奇数。如果全为奇数或者全为偶数,则输出"YES",否则需要根据一定的规律进行进一步判断。

根据题目描述,可以使用以下逻辑来判断是否输出"YES":
#include <bits/stdc++.h>
using namespace std;
const int N = 60;
int a[N];

int main()
{
    int t, n;
    cin >> t;
    while (t--)
    {
        cin >> n;
        for (int i = 0; i < n; i++)
        {
            cin >> a[ i];
        }
        bool is_two = true;
        for (int i = 0; i < n; i++)
        {
            if (a[ i] % 2 != 0)
            {
                is_two = false;
            }
        }
        bool is_one = true;
        for (int i = 0; i < n; i++)
        {
            if (a[ i] % 2 == 0)
            {
                is_one = false;
            }
        }
        if (is_one || is_two)
        {
            cout << "YES" << endl;
        }
        else
        {
            bool is_valid = true;
            for (int i = 0; i < n; i++)
            {
                if (i % 2 != a[ i] % 2)
                {
                    is_valid = false;
                    break;
                }
            }
            if (is_valid)
            {
                cout << "YES" << endl;
            }
            else
            {
                cout << "NO" << endl;
            }
        }
    }
}

这段代码在判断完全为奇数或者全为偶数的情况后,使用了一个新的逻辑来判断是否输出"YES"。它首先遍历数组,判断奇数位和偶数位上的数字是否符合一定的规律,如果符合则输出"YES",否则输出"NO"。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 22:49:13 | 显示全部楼层    本楼为最佳答案   
你好,根据你的描述,我理解你想要对奇偶性进行更精细的判断。你可以使用以下逻辑来完成这一部分:
bool is_alternating = true;for (int i = 0; i < n - 1; i++) {    if (a[i] % 2 != a[i + 1] % 2) {        continue;    } else {        is_alternating = false;        break;    }}if (is_alternating) {    cout << "YES" << endl;} else {    cout << "NO" << endl;}
在这段代码中,我们检查相邻元素的奇偶性,如果相邻元素的奇偶性不同,那么数组就是符合条件的;否则,就输出"NO"。希望这能解决你的问题。如果有其他疑问,欢迎随时向我提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 23:04:46 | 显示全部楼层
你这是哪一道题啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-12 23:10:32 | 显示全部楼层
Mike_python小 发表于 2023-11-12 22:49
你好,根据你的描述,我理解你想要对奇偶性进行更精细的判断。你可以使用以下逻辑来完成这一部分:

tql,我没有想到,膜拜大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-12 23:11:35 | 显示全部楼层
额外减小 发表于 2023-11-12 23:04
你这是哪一道题啊。

codeforces1669C
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 23:24:06 | 显示全部楼层

好。我看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-6 10:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表