【CF】Day70——Codeforces Round 896 (Div. 2) CD1 (排列 + 构造 | ⭐思维 + 数学)

article/2025/7/1 15:27:44

C. Fill in the Matrix

题目:

思路:

感觉似曾相识

对于这种排列+构造的题目,我们肯定是先找规律然后再想构造(虽然我结论想出来但没找到一般构造方法)

由于这一题是求 mex ,那我们可以尝试看看能不能构造出最大的的答案,就对于 4 3 这个例子,我们看看能不能使得每列的 mex 分别为 0 1 2,这样最后答案就是 3,答案是显然的,手动画画就知道是可行的,那我们继续尝试 n = 3 2 1 时的情况,我们可以发现一个结论,即答案是 min(n+1,m),那么如何构造呢?

这里直接给出cf官方的方法

我们可以发现其中大多是一个循环的左移,这启示我们没思路的时候可以尝试某些有规律的方法来写,比较这是C题,不会特别考验代码 

代码:

#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"void solve()
{int n, m;cin >> n >> m;if (m == 1){cout << 0 << "\n";for (int i = 0; i < n; i++){cout << 0 << endl;}return;}int res = min(n + 1, m);cout << res << endl;res--;for (int i = 0; i < res; i++){for (int j = i; j < m; j++){cout << j << " ";}for (int j = 0; j < i; j++){cout << j << " ";}cout << endl;}for (int i = 0; i < n - res; i++){for (int j = 0; j < m; j++){cout << j << " ";}cout << endl;}
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}

D1. Candy Party (Easy Version)

题目:

思路:

数学题,学到小技巧

首先搞清楚最后的数组都会变成什么,显然是平均数

证明:设最后的数是 s,那么就有 s * n = sum,即 s = sum / n

那么就有一个非法情况,即 sum 不能被 n 整除时,此时平均数不是整数,那么肯定无法构造

那么看看剩下的如何构造呢?

我们令 b = a[i] - s,即 b 是与平均数还差多少,由于题目说了我们一定要给出以及收入,那么就可以写出以下式子 b = 2^{x} - 2^{y},当 b > 0 时,前者代表收入的数量,后者代表给出的数量, b < 0时反之

也就是我们现在转化为了两个子问题:

① b 能否表示为上述形式 ②.如果能,那么如何判断最后是否真的可以

我们来解决第一问,将原式移项,可得:2^{x} = b + 2^{y},说明 2的x次方 一定大于 b,则我们可以取 x = log2(b) + 1,即大于 b 的最小二次幂,则 y 可以表示为 y = log2(1<<x - b),那么如果 b 能表示,那么就有上述式子,如果不满足就直接输出no,特别的,由于 b 不能是负数,所以我们要取 abs(b)

接下来看第二问,由于 b 能被拆分,那么就要满足一个条件,即给出 x 的人数和收入 x 的人数一定要一样,否则肯定不能构造出来,这还是很好想到的,具体的我们使用cnt代表 x 的数量,如果cnt[x] != 0,那么就无法构造出来

特别的,由于取了 Abs(b),如果b<0,那么 x y 就要交换,因为此时是给出的多

对于b=0的情况有些特殊,由于题目说了必须要给出,但是又不能给自己,那么 b=0如何处理呢?我们可以这样想,既然它的变化值是 0,那么我们其实可以把它当成一个中介,即 a <-> b <-> c这样,这样的话就能解决了,由于题目并不要我们输出具体的操作步骤,所以直接跳过即可

代码:

#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"void solve()
{int n;cin >> n;vector<int> a(n), cnt(33, 0);int avg = 0;for (int i = 0; i < n; i++){cin >> a[i];avg += a[i];}if (avg % n){no;return;}avg /= n;for (int i = 0; i < n; i++){int b = a[i] - avg;if (b == 0){continue;}int c = abs(b);int x = log2(c) + 1, y = log2((1LL << x) - c);if ((1LL << x) - (1LL << y) != c){no;return;}if (b < 0){swap(x, y);}cnt[x]++, cnt[y]--;}for (int i = 0; i < 32; i++){if (cnt[i] != 0){no;return;}}yes;
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}


http://www.hkcw.cn/article/LdigNLciKh.shtml

相关文章

华为OD机试真题——阿里巴巴找黄金宝箱 IV(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 2025华为OD真题目录+全流程解析/备考攻略/经验分享 华为OD机试真题《阿里巴巴找黄金宝箱 IV》:…

AI的出现,是否能替代IT从业者?

引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术取得了突破性进展&#xff0c;从机器学习、自然语言处理到计算机视觉&#xff0c;AI正在深刻改变各行各业。在信息技术&#xff08;IT&#xff09;领域&#xff0c;AI技术已被广泛应用于软件开发、系统运维、数…

午休时间发生的一场中国职业足球该如何解困的讨论 寻找黑暗中的光亮

文艺界、商界和体育界关于中国足球的争论再次出现。这些讨论往往开始得莫名其妙,发展过程中各说各话,最终在上了几次微博热搜后被其他话题取代。然而,对于中国足球而言,仍需在孤独与愤懑中寻找光明。当前关于中国足球的讨论已经很多,但真正有价值的见解却很少。这篇文章或…

北京一小区惊现“钞票雨”?民警:非有人故意撒钱!系工人施工碰倒钱箱:网络谣言勿信

5月29日,北京昌平区住总万科天地一带发生了一起引人关注的事件。有市民发帖称,有人在楼上撒钱,金额高达一千万元。视频画面中可以看到空中飘着几张纸币,楼下有市民在接钱。次日,北京七里渠派出所工作人员回应称,当事人是不小心掉的钱,并提醒市民不要听信网络谣言。至于掉…

3分钟回顾马斯克130天政治生涯 理想与现实的碰撞

据美国有线电视新闻最新报道,一名白宫官员证实马斯克将于28日晚开始办理离职程序。这让全球马斯克的粉丝们开始回味他入驻白宫这130天的经历。2025年1月20日,特朗普宣誓就职时,马斯克以政府效率部(DOGE)掌门人的身份踏入权力核心。这个机构被赋予了在18个月内削减2万亿美元…

男子纵身跳进兵马俑坑 推倒两尊兵马俑 现场目击者震惊

5月30日下午6时许,陕西秦始皇兵马俑博物馆发生了一起意外事件。一名男子在兵马俑3号坑纵身跳下,并推倒了两尊兵马俑。据现场目击者小林回忆,当时他跟随导游前往3号坑,刚一进去就看到这名男子跳入俑坑,先是跳到中间一层,随后又跳到俑坑下方。小林表示,自己和周围的游客都…

FastAPI 项目配置管理

安装Dynaconf Dynaconf 是一个强大的 Python 配置管理库&#xff0c;它支持多种文件格式&#xff08;如 JSON、YAML、TOML 和 .env 文件&#xff09;和环境变量来管理应用程序的配置。使用 Dynaconf&#xff0c;您可以轻松地在不同环境&#xff08;例如开发、测试和生产&#…

FPGA管脚类型,及选择

fpga的IO Type选择&#xff0c;如下&#xff1a; 具体的定义&#xff1a;

c++数据结构9——set结构详解

一、set以二叉查找树为基础 二叉查找树&#xff08;Binary Search Tree&#xff0c;BST&#xff09;是一种特殊的二叉树结构&#xff0c;具有以下特点&#xff1a; 左子树所有节点值小于根节点值 右子树所有节点值大于根节点值 左右子树也都是二叉查找树 图例&#xff1a;…

马克龙香会首秀倡“第三条道路” 吁欧亚共寻战略自主

第22届香格里拉对话会于5月30日在新加坡开幕,法国总统马克龙发表了主旨演讲。他呼吁亚洲各国与欧洲建立新联盟,通过开放贸易和对话以及在防务和安全方面加强合作,以打造一个稳定的环境并维护以规则为基础的国际秩序。北京外国语大学区域与全球治理高等研究院教授崔洪建表示,…

胖东来红内裤案当事人鞠躬道歉 名誉侵权案宣判

2025年5月28日,许昌市魏都区人民法院公开审理了原告许昌市胖东来商贸集团有限公司与被告段某的名誉权纠纷案,并当庭宣判。法院判决段某在其个人抖音账号“两个小段(小)”发布宣读书面道歉信的视频,书面道歉信需经法院审核,发布后30日内不得删除;段某赔偿许昌市胖东来商贸…

媒体人:特朗普在准备关税B计划 两步走应对法律挑战

美国总统特朗普提出的“对等关税”政策实施近两个月,但效果并不理想,还面临严峻的法律挑战。美国上诉法院暂时恢复了关税措施后,特朗普贸易团队正在为关税政策制定备用计划,以防止谈判因法律问题中断。《华尔街日报》5月30日援引消息人士的话称,特朗普团队正考虑一项两步走…

巴方为何突袭巴控克什米尔武装分子 挫败袭击基地企图

巴控克什米尔地区警方于5月29日表示,当地安全部队根据情报突袭了该地区一处武装分子藏身点,随后的枪战导致2名警察和4名巴基斯坦塔利班组织成员死亡。此次夜间突袭发生在拉沃拉果德县。当地警方负责人阿卜杜勒贾巴尔表示,被打死的武装分子隶属于巴基斯坦塔利班组织,并声称该…

端午其实是古人的卫生防疫日 解码香囊养生智慧

解码传统习俗健康密码,聚焦端午养生智慧。端午节历史悠久,蕴藏着中国最早的“卫生防疫”基因。这个节日不仅承载着丰富的文化内涵,还与现代公共卫生理念不谋而合。端午节是中国重要的传统节日,被称为“中国最早的卫生防疫日”。古代先民通过特定习俗与仪式,在仲夏时节主动…

上海独居老人3000万豪宅堆满垃圾 生活令人匪夷所思

中海建国里是上海的顶级豪宅,单价达到每平米23万元。一套160平米的房子总价超过3600万元。然而,有一位上海大妈住在价值3700万的豪宅里,却过着令人难以置信的生活。她喜欢捡垃圾,并且将这些垃圾堆在家里。时间久了,家里充满了苍蝇、蚊子、蟑螂,甚至有死老鼠。楼道里的垃圾…

媒体人:美用签证工具破坏教育交流 无理取闹损人不利己

近日,美国国务卿鲁比奥宣布将开始吊销中国学生签证,这一消息引起广泛关注。鲁比奥在社交媒体上表示,要吊销与中国政府有联系或在关键领域学习的中国学生签证。美国国务院网站也发布声明,称新签证政策优先考虑美国利益,并将与国土安全部合作推进吊销事宜,同时加强对中国学…

机器视觉运动控制一体机在背靠背点胶焊锡机上的应用

市场应用背景 点胶与焊锡作为制造业自动化关键环节&#xff0c;专注服务电子、半导体、汽车及医疗等领域的高精密工艺需求。精密高速点胶焊锡解决方案通过实现高精高效的流体控制与焊接操作&#xff0c;助力企业实现生产效率与产品品质的双重提升。 ▲ 待加工的PCB板 ▲ 点胶…

接口自动化测试实战:测试用例也能自动生成

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 作为测试&#xff0c;你可能会对以下场景感到似曾相识&#xff1a;开发改好的 BUG 反复横跳&#xff1b;版本兼容逻辑多&#xff0c;修复一个 BUG 触发了更多 BUG…

IO进程(进程间通信 IPC)

进程间通信方式IPC 1&#xff09;.早期的进程间通信: 无名管道&#xff08;pipe&#xff09;,有名管道&#xff08;fifo&#xff09;&#xff0c;信号(signal) 2&#xff09;.system V IPC: 共享内存&#xff08;share memory&#xff09;,消息队列&#xff08;message que…

端午时节,粽香四溢

端午时节&#xff0c;粽香四溢&#xff0c;那缕缕清香仿佛在召唤着我们共赴这一夏的热情之约。在这充满活力与希望的氛围里&#xff0c;codigger 作为分布式操作系统闪耀登场。它凭借高效协同的工作模式&#xff0c;让各个节点紧密配合、无缝衔接&#xff1b;以灵活拓展的架构&…