Codeforces Round #461 (Div. 2)

Codeforces Round #461 (Div. 2)

A. Cloning Toys

思路:找规律

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int x,y;
    cin>>x>>y;
    if(x==0&&y==1)
        cout<<"Yes"<<endl;
    else if((x-y+1)%2==0&&(x-y+1)>=0&&y>1)
        cout<<"Yes"<<endl;
    else
        cout<<"No"<<endl;
    return 0;
}

B. Magic Forest

思路:, 试了几个异或,发现一个数异或自己为0,所以可以用两个边来遍历,之后再满足三角形和题中a<b<c 且都大于1小于n的条件就可以了。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int z,n,i,j;
    int sum=0;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            z=i^j;//3
            if(z>=1&&z>i&&z>j&&z<=n&&i+j>z&&i+z>j&&j+z>i)
            {
                 sum++;
                 //cout<<i<<" "<<j<<" "<<z<<endl;
            }

        }
    }
    cout<<sum<<endl;
    return 0;
}

C. Cave Painting

不会啊~~(一开始想是素数结果发现不行2333)

思路:素数会在第60组超时...

     后来发现是思维题啊。

          n(任何数)mod1=0,而n%2=0或1  由于题中要求所有余数都不相等,那么n%2必须等于1  同理n%3=2......  所以规律是n%k=k-1(k=1,2,3,4......)

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long num,k;
    int flag=0;
    scanf("%lld%lld",&num,&k);
    for(long long i=1;i<=k;i++)
    {
        if(num%i!=(i-1))
        {
            flag=1;
            break;
        }
    }
    if(flag)
        cout<<"No"<<endl;
    else
        cout<<"Yes"<<endl;
    return 0;
}
原文地址:https://www.cnblogs.com/Kohinur/p/8798616.html