CF#772 Div.2 A~C 题解

CF题解DIV2 Oops! Google Chrome could not connect to codeforces.com Try reloading: codeforces.­com Additional suggestions: Access a cached copy of codeforces.­com Search on Google: 立即下载

A. Min Or Sum(位运算 + 构造)

Description:

​ 对一个数组 任意选择ai aj 用 x y替换他们 不限次数

​ 要求ai | aj == x | y

​ 问操作完毕后数组和的最小值

Method:

​ 将ai aj换到最小 指的是尽量让每个位数上只有一个1

​ 5|6 – > min(0|7)

​ 所以使数列的全部数得到min 但是又要保证位上原有的1不发生改变 那么删去多出来的1即可

​ 在代码上的体现就是|全部数

Code:

void solve()
{
	int res = 0;
	cin >> n;
	while(n--)
	{
		int x; cin >> x;
		res |= x;
	}
	cout << res << endl;
}

B. Avoid Local Maximums(模拟 + 贪心)

Description:

​ 以最小次数的操作来避免数列中出现山峰

​ 每次操作可以对一个值进行更改

Method:

​ 假设样例3 5 4 7

​ 5是山峰

​ 因为是for过来的 所以改i - 1已经对整体不造成贡献了

​ 我们只能改i + 1 如果说a_i+1 = a_i 那么i就不造成山峰了 但是这样的话 i + 2又有可能变成山峰 所以这时候a_i = max(a_i + 1, a_i + 2)可以使ai 和 a i + 2都不能构成山峰 比选择ai更优

Code:

void solve()
{
	int n;
    scanf("%d", &n);
    vector<int> q(n);
    for(int i = 0; i < n; i++)  scanf("%d", &q[i]);

    int res = 0;
    for(int i = 1; i + 1 < n; i++)
    {
        if(q[i] > q[i - 1] && q[i] > q[i + 1])  //若i是山峰
        {
            if(i + 2 < n)   q[i + 1] = max(q[i], q[i + 2]); // 贪心
            else q[i + 1] = q[i];
            res ++;
        }
    }
    cout << res << endl;
    for(int x : q)  printf("%d ",x);
    cout << endl;
}

C. Differential Sorting

Description:

​ 给定长度为n的序列 任意选择三个下标x, y, z 将a_x 换成 a_y - a_z

​ 是否能通过操作 构造出单调不降的序列

Method:

​ If there are multiple solutions, you can output any. Note that you don’t have to minimize the number of operations in this task.请注意,你不必在这项任务中尽量减少操作的数量。

​ 对解题来说非常重要的一句话,这样的话 本来是非常难以抉择去选择最少操作次数的问题 变成了直接考虑最多操作次数的这种情况 这样的情况会非常容易解答

​ 操作次数最多的情况就是让a_1~a_n-2都是同一个数字(a_n - a_n-1)

​ 因为a_n - 1无法被替换 所以正确答案必定有 a_n - 1 <= a_n

​ 当a_n为负数的时候 构造的a_i一定是比a_n-1大的 不符合题意

​ 所以当a_n为负数的时候 除非a已经是单调不降序列 不然都是错误的

​ 当a_n-1 <= a_n && a_n > 0 对1~n-2进行操作即可

Code:

void solve()
{    
    int n;
    scanf("%d", &n);
    vector<int> q(n);
    for(int i = 0; i < n; i++) scanf("%d", &q[i]);

    if(q[n - 2] > q[n - 1])     printf("-1\n");
    else 
    {
        if(q[n - 1] < 0)
        {
            if(is_sorted(q.begin(), q.end()))   printf("0\n");
            else printf("-1\n");
        }
        else 
        {
            printf("%d\n", n - 2);
            for(int i = 1; i <= n - 2; i++) printf("%d %d %d\n", i, n - 1, n);
        }
    }
}
如何入门强化学习 很多同学在入门强化学习的时候都会遇到困难,那我这里就简单介绍一下应该如何入门强化学习,并以开源代码为例详解强化学习实战。 阅读详情

相关推荐

手把手教你用CH340给正点原子ESP8266烧录固件(附串口调试技巧)

本文详细讲解了使用CH340模块为正点原子ESP8266烧录AT固件的完整流程与关键技巧。核心在于烧录时必须使用3.3V供电,并正确连接GPIO0引脚至GND以进入下载模式。文章涵盖了从硬件接线、软件参数配置到烧录后串口调试验证的全步骤,并提供了常见问题排查方案,帮助开发者一次性成功完成固件烧录。

weixin_29201933的博客 231

2.21 CodeForces 补题

Codeforces Round #772 Div. 2A. Min Or SumB. Avoid Local MaximumsC. Differential Sorting A. Min Or Sum 题目链接 解题思路: t组样例,每组给n个数据,对这n个数做或运算,输出。 代码如下: #include<iostream> using namespace std; int main() { int t; cin>>t; while(t--) { int n,x,an

zoloftkiller的博客 413

carsim与simulink联合仿真学习笔记(二)——使用C-class车模做driver model仿真(5 driver sensors)

Driver model 在carsim的Simulink库中自带外部驾驶员模型,打开后如图所示: 然后打开carsim中对应的数据集,如图所示: 具体仿真步骤不在赘述,注意到这里选择的是E-Class车模,那么如果我想选择C-Class车型进行仿真呢?点三角选择车型可以看到: 马赛克部分是我后来建的,如过没有使用过是没有马赛克部分的。那么既然这里没有C-class,又该怎么办呢? 创建C-...

xufuqiang2017的博客 4116

【CF #772 div2】A-C

A. Min Or Sum 题目 分析 根据样例寻找规律,发现只需将所给数组挨个进行或运算即可。 代码 #include<bits/stdc++.h> #define ll long long using namespace std; const ll maxn=1e9+10; const ll mod=1e9+7; const double pi=acos(-1); int main() { int t; cin>>t; while(t--) { int

m0_56535442的博客 229

Unity 2D精灵点击交互实现:从BoxCollider 2D到Event Trigger的完整指南

本文提供了Unity 2D精灵点击交互的完整实现指南。通过详细拆解BoxCollider 2D与Event Trigger两大核心组件的协同工作原理,手把手教你为Sprite Renderer添加点击、悬停等事件响应。文章包含从基础配置到进阶优化、性能调试的实战步骤,帮助开发者高效实现游戏世界内的对象交互,是Unity 2D开发的实用教程。

ansible6ops的博客 300

基于 Simulink 的固态变压器(SST)多级协同控制实战教程

《固态变压器多级协同控制仿真指南》摘要: 本教程详细讲解了基于Simulink的固态变压器(SST)三级架构建模与控制方法。核心内容包含:1)搭建级联H桥整流(CHB)、双有源桥(DAB)和逆变器(VSI)的三级主电路;2)提出创新的多级协同控制策略,通过功率前馈实现输入输出级动态匹配;3)给出系统级功率平衡、单元级均压控制的具体实现方案。教程特别强调解决实际工程中的关键问题:代数环处理、软启动设计和刚性系统求解器选择,并提供了硬件在环(HIL)仿真建议。附带的MATLAB代码示例可直接用于实现电容电压均衡

xiaoheshang_123的博客 116

【题目记录】——Codeforces Round #772 (Div. 2)

文章目录 题目集地址Codeforces Round #772 (Div. 2)

气派飞鹰的博客 409

【深度学习新浪潮】如何上手DINO v3:Meta新一代视觉大模型实战指南

自定义数据集类(适配本地/公开数据集)# 去除batch维度# 构建数据加载器# 定义分类模型(冻结预训练层,仅训练分类头)self.classifier = nn.Linear(dino_model.config.hidden_size, num_classes) # 分类头global_feat = outputs.global_attention_pool # 取全局特征# 初始化模型# 冻结预训练层(仅训练分类头)# 定义损失函数和优化器。

专注:太空算力、AI infra、异构调度、大模型成本工程 491

Codeforces Round #772 (Div. 2)简训

Codeforces Round #772 (Div. 2)简训 二分图那个题不是很难,主要建议建图

C_eeking的博客 840

工业-实时数据采集

在主节点使用Flume采集/data_log目录下实时日志文件中的数据,将数据存入到Kafka的Topic 中(Topic名称分别为ChangeRecord、ProduceRecord和EnvironmentData,分区数为4),Flume 采集ChangeRecord。

dafsq的博客 589

双端之Nginx+Php结合PostgreSQL搭建Wordpress

制作的 PG4WP 分支版本,它与所有版本的 WordPress 兼容,解决了原版的一些问题。参数,确保 PostgreSQL 正在监听默认端口(通常是 5432),或者你自定义的端口。:PG4WP 插件存在缺陷和不完整的功能,可能与最新版本的 WordPress 不兼容。的插件,它允许 WordPress 使用 PostgreSQL 数据库。,如果看到 Nginx 的默认欢迎页面,说明 Nginx 已正确安装。,如果看到 Nginx 的默认欢迎页面,说明 Nginx 已正确安装。

宇宙第一小趴菜的博客 1891

【DP】【二进制】Codeforces Round #772 (Div. 2) D.Infinite Set

链接: https://codeforces.com/contest/1635 A. Min Or Sum 只要满足两个值的或结果在某一位上为1的时候,保证两个值有一个为1即可。 所以结果为所有值的或,只要所有值该位上有1,那么结果就存在1 #include<bits/stdc++.h> using namespace std; void solve() { int n; cin >> n; int res = 0; for(int i = 1; i <= n; i+

行码棋 445

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Codeforces Round #772 (Div. 2) A B C D

Codeforces Round #772 (Div. 2) A B C D A. Min Or Sum 思路: 一眼题,最好的情况就是二进制形式下出现过的数字最多保留111位。全部∣|∣起来即可。 参考代码: #include<bits/stdc++.h> using namespace std; #define mp make_pair #define int long long #define re register int #define pb emplace_back #de

qq_53504307的博客 641

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Codeforces 1635 A. Min Or Sum —— 简单思维

This way 题意: 给你一个长度为n的数组a,你每次可以选择i,j两个位置,将a[i],a[j]变成x,y,要求满足x|y=a[i]|a[j]。问你最终要使得数组和最小是多少。 题解: 一眼看过去就知道是所有数的或之和 因为我们要使得x|y=a[i]|a[j]且要x+y最小。 那么我们就可以把二进制上重复的位消掉。如此反复,最终留下来的就是所有存在于数组a中的二进制位之和。 #include<bits/stdc++.h> using namespace std; int main()

天翼之城的博客 753

Codeforces Round #772 (Div. 2) A. Min Or Sum

A. Min Or Sum time limit per test:1 second memory limit per test:256 megabytes inputstandard input outputstandard output 题目描述 You are given an array a of size n. You can perform the following operation on the array: Choose two different integers i,j (1≤i&l

m0_52798489的博客 1056

Codeforces Round#772(Div.2) A. Min Or Sum

题目 给定一个大小为 n 的数组 a。 您可以对阵列执行以下操作: 选择两个不同的整数 i,j (1≤i<j≤n),将 ai 替换为 x,将 aj 替换为 y。 为了不破坏数组,必须保持 ai|aj=x|y,其中 | 表示按位或运算。 请注意,x 和 y 是非负整数。 请输出使用上述操作任意次数后可以得到的数组的最小和。 输入 每个测试包含多个测试用例。 第一行包含测试用例的数量 t (1≤t≤1000)。 测试用例的描述如下。 每个测试用例的第一行包含一个整数 n (2≤n≤100) — 数组 a

TGX的博客 665

Codeforces Round #772 (Div. 2)A - Min Or Sum

A - Min Or Sum

Ghostsman的博客 518

【记录CF】Codeforces Round #775 (Div. 2) A~C 题解

记录自己Codeforces的历程+本场过题题解+赛后补题题解

Wmiracle的博客 898

【解题报告】CF DIV2 #ROUND 716 A~C

【解题报告】CF DIV2 #ROUND 716A~D 比赛链接 数学场/规律场 A题5分钟速切,B题开始没看懂先看了C,发现C整不来,B整了半天打表找规律一发AC。 排名:4300+ A. Perfectly Imperfect Array 思路 完全平方数=完全平方数x完全平方数 所以只要看有没有非完全平方数即可。 赛后很多人FST了,原因是sqrt误差,我这里先转化成int再判断的所以没事 代码 // Problem: A. Perfectly Imperfect Array // Contest:

鱼竿钓鱼干 458

【记录CF】Codeforces Round #774 (Div. 2) A~C 题解

记录自己Codeforces的历程+本场过题题解+赛后补题题解

Wmiracle的博客 980

篮球比赛-前端算法

// 篮球比赛 let [a, b, af, bf] = [[], [], 0, 0]; // 定义需要的数据两个队伍数组ab;两个队战斗力af,bf function race(arr) { let tmp = arr.sort((a, b) => b - a); // 对战力进行排序 for (i = 0; i < 10; i++) { // 从大到小排序处理 if (i == 0) { // 最大的战力给a组 a.push(tmp[i]); af .

阿赛 474

关于篮球计算战斗力的一道题

有十个人打篮球。每个人都有对应的战斗力。如何去将这些人分成两队。并且在战斗力的差距上是最小的。

L_TZzzz的博客 563

【解题报告】CF DIV2 #ROUND 721 A~C

【解题报告】CF DIV2 #ROUND 721 A~C 比赛链接 比赛评价: A题码了后实在太累了,明天还要早训就没交题,白天补的题目。 各位还是要注意身体健康呀,这几天感觉确实不大对劲。 A. And Then There Were K 题意 找到最大的k满足上面的式子 思路 比较简单1发AC 先暴力打了一遍程序找的规律 ans=2int(log2k)−1ans=2^{int(log_2k)}-1ans=2int(log2​k)−1 不过据说有人用pow实现的,然后WA了 代码 // Problem:

鱼竿钓鱼干 445

【解题报告】CF DIV2 #ROUND 709 A~C

【解题报告】CF DIV2 #ROUND 709 A~D 比赛链接 A 思路 代码 在这里插入代码片 B 思路 代码 在这里插入代码片 C 思路 代码 在这里插入代码片 D 思路 代码 在这里插入代码片 反思 A: B: C: D:

鱼竿钓鱼干 337

CF div2 a b c

A. Points on the line time limit per test 1 second memory limit per test 256 megabytes input standard input output standard outputWe’ve got no test cases. A big olympiad is coming up. But the p

fbher的博客 791
上一篇: CF#771 Div.2 A~C 题解
下一篇: AtCoder ABC 239题解(A ~ E)
a simple_boy
博客等级 码龄5年 1粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值