lsmCC 发表于 2023-11-12 22:48:34

codeforces上的一道题

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

int main()
{
    int t,n;
    cin>>t;
    while(t--)
    {
      cin>>n;
      for(int i=0;i<n;i++)
      {
            cin>>a;
      }
      bool is_two=true;
      for(int i=0;i<n;i++)
      {
            if(a%2!=0)
            {
                is_two =false;
            }
      }
      // if(is_two)cout<<"YES"<<endl;//表示全部是奇数
      bool is_one=true;
      for(int i=0;i<n;i++)
      {
            if(a%2==0)
            {
                is_one=false;
            }
      }
      if(is_one||is_two)cout<<"YES"<<endl;
      else
      {
            /*我写出了如果全为奇数或者全部为偶数则输出yes,后面通过发现规律,如果奇数位是偶数,此时偶数位为奇数也输出yes,偶数位为奇数,奇数位位偶数
            也是对的,但是逻辑不知道怎么写   */
   
      }
    }
}

isdkz 发表于 2023-11-12 22:48:45

这段代码的作用是判断输入的一组数字中是否全为偶数或者全为奇数。如果全为奇数或者全为偶数,则输出"YES",否则需要根据一定的规律进行进一步判断。

根据题目描述,可以使用以下逻辑来判断是否输出"YES":

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

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"。

Mike_python小 发表于 2023-11-12 22:49:13

你好,根据你的描述,我理解你想要对奇偶性进行更精细的判断。你可以使用以下逻辑来完成这一部分:


bool is_alternating = true;
for (int i = 0; i < n - 1; i++) {
    if (a % 2 != a % 2) {
      continue;
    } else {
      is_alternating = false;
      break;
    }
}
if (is_alternating) {
    cout << "YES" << endl;
} else {
    cout << "NO" << endl;
}


在这段代码中,我们检查相邻元素的奇偶性,如果相邻元素的奇偶性不同,那么数组就是符合条件的;否则,就输出"NO"。希望这能解决你的问题。如果有其他疑问,欢迎随时向我提问。

额外减小 发表于 2023-11-12 23:04:46

你这是哪一道题啊。

lsmCC 发表于 2023-11-12 23:10:32

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



tql,我没有想到,膜拜大佬

lsmCC 发表于 2023-11-12 23:11:35

额外减小 发表于 2023-11-12 23:04
你这是哪一道题啊。

codeforces1669C

额外减小 发表于 2023-11-12 23:24:06

lsmCC 发表于 2023-11-12 23:11
codeforces1669C

好。我看看
页: [1]
查看完整版本: codeforces上的一道题