【CF闯关练习】—— 1400分(C. Make Good、B. Applejack and Storages)

2024-01-17 07:44

本文主要是介绍【CF闯关练习】—— 1400分(C. Make Good、B. Applejack and Storages),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🌏博客主页:PH_modest的博客主页
🚩当前专栏:cf闯关练习
💌其他专栏:
🔴每日一题
🟡 C++跬步积累
🟢 C语言跬步积累
🌈座右铭:广积粮,缓称王!

一.关卡1(C. Make Good)

👉传送门👈
在这里插入图片描述

1.Tutorial

XOR运算就是按位异或:相同为0,不同为1
这个操作符有两个结论:

  • X ⊕ X = 0 X\oplus X= 0 XX=0
  • 0 ⊕ X = X 0 \oplus X=X 0X=X

本题从这两点入手,题目中说最多添加3个数,我们不妨大胆假设只需要两个数,一个数将原数组中的数按位异或之后变成0,再用一个数^0*2等于所有数之和,这边只需要解个方程即可
在这里插入图片描述

2.Solution

//https://codeforces.com/problemset/problem/1270/C
//
//
#include<bits/stdc++.h>
#define int long long
using namespace std;void solve()
{int n;cin>>n;int sum=0;int tmp=0;for(int i=0;i<n;i++){int x;cin>>x;sum+=x;tmp^=x;}cout<<"2\n"<<tmp<<" "<<tmp+sum<<"\n";
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

二.关卡2(B. Applejack and Storages)

👉传送门👈
在这里插入图片描述

1.Tutorial

正方形由4个相同的边组成,长方形由2组2个相同的边组成,sum2表示两个一组的个数,sum4表示4个一组的个数,首先sum4 >= 1是必须的,然后还需要知道一点,sum4+1的时候sum2+2,原因参考下面这张图
在这里插入图片描述
所以我们得出结论:

  • sum4>=1&&sum2>=4时输出“YES”;
  • 否则输出“NO”

2.Solution

//https://codeforces.com/problemset/problem/1393/B
//
//
#include<bits/stdc++.h>
#define int long long
using namespace std;void solve()
{map<int,int>mp;int n;cin>>n;int sum4=0;int sum2=0;for(int i=0;i<n;i++){int a;cin>>a;mp[a]++;if(mp[a]%4==0) sum4++;if(mp[a]%2==0) sum2++;}int q;cin>>q;while(q--){string a;cin>>a;if(a[0]=='+'){int x;cin>>x;mp[x]++;if(mp[x]%4==0) sum4++;if(mp[x]%2==0) sum2++;}else{int x;cin>>x;if(mp[x]%4==0) sum4--;if(mp[x]%2==0) sum2--;mp[x]--;}if(sum4>=1&&sum2>=4) cout<<"YES\n";else cout<<"NO\n";}
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);solve();return 0;
}

最后:

闯关系列旨在养成刷题的习惯,所以对代码的解释并不会特别详细,但足够引导大家写出来,选的题目都不会特别难,但也不是特别简单,比较考验大家的基础和应用能力,我希望能够将这个系列一直写下去,也希望大家能够和我一起坚持每天写代码。

之后每个星期都会不定期更新codeforces和atcoder上的题目,想要学习算法的友友们千万别错过了,有什么疑问欢迎大家在评论区留言或者私信博主!

在这里送大家一句话:广积粮,缓称王!

这篇关于【CF闯关练习】—— 1400分(C. Make Good、B. Applejack and Storages)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/615330

相关文章

cf 164 C 费用流

给你n个任务,k个机器,n个任务的起始时间,持续时间,完成任务的获利 每个机器可以完成任何一项任务,但是同一时刻只能完成一项任务,一旦某台机器在完成某项任务时,直到任务结束,这台机器都不能去做其他任务 最后问你当获利最大时,应该安排那些机器工作,即输出方案 具体建图方法: 新建源汇S T‘ 对任务按照起始时间s按升序排序 拆点: u 向 u'连一条边 容量为 1 费用为 -c,

RabbitMQ练习(AMQP 0-9-1 Overview)

1、What is AMQP 0-9-1 AMQP 0-9-1(高级消息队列协议)是一种网络协议,它允许遵从该协议的客户端(Publisher或者Consumer)应用程序与遵从该协议的消息中间件代理(Broker,如RabbitMQ)进行通信。 AMQP 0-9-1模型的核心概念包括消息发布者(producers/publisher)、消息(messages)、交换机(exchanges)、

CF 508C

点击打开链接 import java.util.Arrays;import java.util.Scanner;public class Main {public static void main(String [] args){new Solve().run() ;} }class Solve{int bit[] = new int[608] ;int l

【Rust练习】12.枚举

练习题来自:https://practice-zh.course.rs/compound-types/enum.html 1 // 修复错误enum Number {Zero,One,Two,}enum Number1 {Zero = 0,One,Two,}// C语言风格的枚举定义enum Number2 {Zero = 0.0,One = 1.0,Two = 2.0,}fn m

MySql 事务练习

事务(transaction) -- 事务 transaction-- 事务是一组操作的集合,是一个不可分割的工作单位,事务会将所有的操作作为一个整体一起向系统提交或撤销请求-- 事务的操作要么同时成功,要么同时失败-- MySql的事务默认是自动提交的,当执行一个DML语句,MySql会立即自动隐式提交事务-- 常见案例:银行转账-- 逻辑:A给B转账1000:1.查询

html css jquery选项卡 代码练习小项目

在学习 html 和 css jquery 结合使用的时候 做好是能尝试做一些简单的小功能,来提高自己的 逻辑能力,熟悉代码的编写语法 下面分享一段代码 使用html css jquery选项卡 代码练习 <div class="box"><dl class="tab"><dd class="active">手机</dd><dd>家电</dd><dd>服装</dd><dd>数码</dd><dd

014.Python爬虫系列_解析练习

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

如何快速练习键盘盲打

盲打是指在不看键盘的情况下进行打字,这样可以显著提高打字速度和效率。以下是一些练习盲打的方法: 熟悉键盘布局:首先,你需要熟悉键盘上的字母和符号的位置。可以通过键盘图或者键盘贴纸来帮助记忆。 使用在线打字练习工具:有许多在线的打字练习网站,如Typing.com、10FastFingers等,它们提供了不同难度的练习和测试。 练习基本键位:先从学习手指放在键盘上的“家位”开始,通常是左手的

anaconda3下的python编程练习-csv翻译器

相关理解和命令 一、环境配置1、conda命令2、pip命令3、python命令 二、开发思路三、开发步骤 一、环境配置 1、conda命令 镜像源配置 conda config --show channels //查看镜像源conda config --remove-key channels //删除添加源,恢复默认源#添加镜像源conda config --ad

推荐练习键盘盲打的网站

对于初学者来说,以下是一些推荐的在线打字练习网站: 打字侠:这是一个专业的在线打字练习平台,提供科学合理的课程设置和个性化学习计划,适合各个水平的用户。它还提供实时反馈和数据分析,帮助你提升打字速度和准确度。 dazidazi.com:这个网站提供了基础的打字练习,适合初学者从零开始学习打字。 Type.fun打字星球:提供了丰富的盲打课程和科学的打字课程设计,还有诗词歌赋、经典名著等多样