Codeforces Round 1065 (Div. 3)A-C2

A. Shizuku Hoshikawa and Farm Legs

ideas:

思路1:

可以用递推公式去做,类似于斐波那契

思路2:

首先奇数肯定是不行的,一定是偶数

偶数就看是不是4的倍数,方案数就是n/4+1

复制代码
>为什么是4?
偶数一个可以划分为N个2相加,偶数个2才能合成四,换句话说就是看有多少个4
0也算一种方案数,所以要加1.

数学方法证明:

鸡的数量为X,牛的数量为Y
2X+4Y=N2X+4Y=N2X+4Y=N

化简得:
X=N/2−2YX=N/2-2YX=N/2−2Y

X,Y>=0
Y<=N/4Y<=N/4Y<=N/4

code:

cpp 复制代码
    f[2]=1;
    f[4]=2;
    for(int i=6;i<=100;i+=2){
        f[i]=max(f[i-2],f[i-4]+1);
    }
cpp 复制代码
cout << (n & 1 ? 0 : n/4+1) << '\n';

(n & 1) == 0 ⇔ n 是偶数

(n & 1) == 1 ⇔ n 是奇数

B. Yuu Koito and Minimum Absolute Sum

ideas:

我们根据题目的含义,递推发现公式最小值只与第一个数和最后一个数有关,我们可以贪心的处理,让他们俩相同,中间的数全为0。

code:

cpp 复制代码
	if(a[0] == -1)
        a[0] = a[n-1];
    if(a[n-1] == -1)
        a[n-1] = a[0];
    for(int i=0; i<n; i++)
        if(a[i] == -1)
            a[i] = 0;
    cout << abs(a[n-1] - a[0]) << '\n';
    for(int i=0; i<n; i++)
        cout << a[i] << " \n"[i == n-1];

C1. Renako Amaori and XOR Game (easy version)

ideas :

我们可以统计的1出现的次数,如果两个人一共出现偶数次1就是平局,

随后我们可以发现最后一次能交换且交换有效的一定赢。

code :

cpp 复制代码
	int res=0;
    for(int i=1;i<=n;i++)cin>>a[i],res^=a[i];
    for(int i=1;i<=n;i++)cin>>b[i],res^=b[i];

    if(!res){
        cout<<"Tie"<<endl;
        return ;
    }

    int pos=0;
    for(int i=1;i<=n;i++)
        if(a[i]^b[i])
            pos=i;
    
    if(pos&1)cout<<"Ajisai"<<endl;
    else cout<<"Mai"<<endl;

C2. Renako Amaori and XOR Game (hard version)

ideas:

同上面那个题一样,需要判断是否平局,原理也是一样,如果每一位都相同,注定是平局(这里每一位是二进制中的每一位)

不同的是,这里不是只有0和1了,那么我们需要去判断,是哪一位不同,谁控制的这一位,就是谁赢。

code:

cpp 复制代码
	int n;
    cin>>n;
    vector<int>a(n+1),b(n+1);
    int res=0;
    for(int i=1;i<=n;i++)cin>>a[i],res^=a[i];
    for(int i=1;i<=n;i++)cin>>b[i],res^=b[i];

    if(!res){
        cout<<"Tie"<<endl;
        return ;
    }

    int pos;//找到最高位
    for(int i=0;i<=20;i++)
        if(res&1<<i)
            pos=i;
    int ans;//这一位是谁在控制
    for(int i=1;i<=n;i++)
    //检查 a[i] 和 b[i] 在第pos位是否不同!
        if((a[i]^b[i])&1<<pos)
            ans=i;
    
    if(ans&1)cout<<"Ajisai"<<endl;
    else cout<<"Mai"<<endl;
相关推荐
端平入洛3 小时前
delete又未完全delete
c++
颜酱5 小时前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub8 小时前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub8 小时前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub8 小时前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub8 小时前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub9 小时前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
NAGNIP20 小时前
轻松搞懂全连接神经网络结构!
人工智能·算法·面试
NAGNIP20 小时前
一文搞懂激活函数!
算法·面试
董董灿是个攻城狮20 小时前
AI 视觉连载7:传统 CV 之高斯滤波实战
算法