Codeforces 1646 记录

news/2025/9/18 21:12:35/文章来源:https://www.cnblogs.com/cwkapn/p/19098274

目录

  • C. Factorials and Powers of Two / 阶乘数与二的幂
  • D. Weight the Tree / 树上赋权
  • E. Power Board / 乘方表
  • F. Playing Around the Table / 圆桌打牌

C. Factorials and Powers of Two / 阶乘数与二的幂

题意简述

给出一个 \(n\),定义“好数集合 \(\mathbb{X}\)”为某个数的阶乘或 \(2\) 的次幂,求最小的数 \(k\) 使得 \(\sum\limits_{S\subseteq \mathbb{X}}S_i=n\)\(|S|=k\)

\(n\le 10^{12}\)

解题思路

注意到,\(\le 10^{12}\) 的阶乘数只有不到 \(20\) 个,所以可以直接枚举构成 \(n\) 的阶乘数。设构成 \(n\) 的阶乘数部分和为 \(m\),则剩下的次幂数部分个数最小值显然为 \(\operatorname{popcount}(n-m)\)

代码

#define int long long
int n, cnt, fac[21] = {1, 0}, ans;
void dfs(int x, int y, int z) {ans = min(ans, y + __builtin_popcountll(n - z));for (int i = x; i >= 1; i--) {if (z + fac[i] > n) continue;dfs(i - 1, y + 1, z + fac[i]);}
}

D. Weight the Tree / 树上赋权

题意简述

给定有 \(n\) 个顶点的树。如果某个顶点的权值等于其所有相邻顶点权值之和,则称该顶点为“好顶点”。为每个顶点分配正整数权值,使得“好顶点”数量最大,再使得权值和最小。

\(n\le 2\times 10^5\)

解题思路

注意到,当 \(n\ge2\) 时,相邻点不能同时是“好顶点”,于是最大数量的做法参考 P1352 没有上司的舞会。输出方案的话,把树形 DP 稍微改一下就行。

代码

void dp(int u, int fa) {f[u][0] = 0; g[u][0] = 1;f[u][1] = 1; g[u][1] = z[u].size();for (int i = 0; i < z[u].size(); i++) {int v = z[u][i];if (v == fa) continue;dp(v, u);f[u][1] += f[v][0]; g[u][1] += g[v][0];if (f[v][0] > f[v][1] || f[v][0] == f[v][1] && g[v][0] < g[v][1]) {f[u][0] += f[v][0]; g[u][0] += g[v][0];} else {f[u][0] += f[v][1]; g[u][0] += g[v][1];}}
}

E. Power Board / 乘方表

题意简述

\(n\times m\) 的表格,第 \(i\)\(j\) 列的数是 \(i^j\)。问表格中数字有多少种。

\(n,m\le 10^6\)

解题思路

这道题有多种解法。这里介绍一种比较好理解的。

约定:第 \(i\) 行有冲突当且仅当存在 \(j\le i\) 且第 \(j\) 行和第 \(i\) 行有相同的元素。

注意到,对于没有冲突的两行 \(a,b\),如果 \(\log_an=\log_bn\),那么表格中形如 \(a^k\) 的数种类数与形如 \(b^k\) 的数种类数一致。于是暴力求出每种 \(\log\) 值的答案就做完了。

代码

for (int i = 1; i <= 20; i++) {a[i] = a[i - 1];for (int j = 1; j <= m; j++) {if (!p[i * j]) {a[i]++;p[i * j] = 1;}}
}
long long ans = 1;
for (int i = 2; i <= n; i++) {if (!vis[i]) {long long j = i, cnt = 0;while (j <= n) {cnt++;vis[j] = 1;j *= i;}ans += a[cnt];}
}

F. Playing Around the Table / 圆桌打牌

题意简述

\(n\) 个玩家,从 \(1\)\(n\) 编号,\(i\) 的右边是 \(i + 1\),特别地,\(n\) 的右边是 \(1\)。现在有 \(n^2\) 张牌,每张 \(i\) 号牌有 \(n\) 张。每次操作每个玩家选择一张牌给右边的人。想让玩家 \(i\) 得到 \(n\)\(i\) 号牌。要构造方案,不超过 \((n ^ 2 - n)\) 次操作。

\(2 \leq n \leq 100\)

解题思路

直接转化不好做,考虑先把每个人手里的牌变成 \([1,2,3,\cdots,n]\),再经过转化变成 \([i,i,i,\cdots,i]\)

对于第一种操作,考虑每个人把自己手里多的牌传出去。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

综合与实现流程【p3】--(DSP-存储)优化PS系统集成

(一)资源优化 1 DSP优化 创建优化的DSP映射 创建文件 dsp_optimized_pe.v: `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // 优化的PE模块 - 直接使…

Linux中 sed命令忽略大小写匹配

001、[root@localhost test]# ls a.txt [root@localhost test]# cat a.txt ## 测试数据 22 abc44 88 32 ABC11 43 14 aBc44 86 [root@localhost test]# sed -n /abc/p a.txt ## 匹配abc 22 abc44 88 [r…

VISA Resource name

VISA Resource name📌 步骤放置 VISA Open在 Block Diagram 放一个 VISA Open 节点。Resource name 输入 TCPIP0::192.168.2.121::inst0::INSTR(就是你之前的地址)。VISA Write在 VISA Open 的 session 输出连到 V…

【STL库】哈希封装 unordered_map/unordered_set - 教程

【STL库】哈希封装 unordered_map/unordered_set - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

Docker 常用命令详解与参数说明 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

7zip压缩解压缩-测试CPU性能

前言全局说明在B站刷大佬视频的时候,看到UP在Debign linux 上用7z测试CPU性能,惊讶,7z还有这功能。 赶快打开手边的电脑,看看 Windows 上的 7z 有没有这功能,一用,果然有这个功能。 以前想知道CPU性能就只能装些…

交叉编译openharmony版本的gdb

1465 cd ../gmp-6.3.0/ 1466 ./configure --prefix=/system/ CC=aarch64-linux-gnu-gcc --build=`./config.guess` --target=aarch64-linux-gnu --host=aarch64-linux-gnu 1467 make 1468 …

高数

1 求 \(\lim_{n\to\infty}\left(1-\frac 1n\right)^{n^2}\) 解: 首先证明 \(\lim_{n\to\infty}\left(1-\frac 1n\right)^{n}=e^{-1}\)。 \[\begin{align*} \lim_{n\to\infty}\left(1-\frac 1n\right)^{n} &=\lim_…

06-排序操作

06-排序操作$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");介绍 排序操作很常用,比如查询学员成绩,按照成绩降序排列。排序的SQL语法: select .. from .…

P5666 [CSP-S2019] 树的重心

分为 \(x \ne rt\) 和 \(x = rt\) 两种情况计算. 对于第一种情况,不难发现我们合法的裁减下来的连通块大小是在一个区间范围之内的,于是 DFS 时用一棵树状数组修改即可(因为这个大小可能是子树大小可能是子树外大小,这…

Java运行机制

Java 程序运行机制 编译型(compile) 解释型 程序运行机制 ![机制图](C:\Users\asus\Desktop\图集\屏幕截图 2025-09-18 204707.png)

除自身以外数组的乘积-leetcode

题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 …

【2022】SDRZ夏令营游记

为什么2022的游记会在2025年发? 因为感觉洛谷博客快扛不住了,决定开始搬运。今天是夏令营最后一天了,在机房里坐不住了,写篇游记来纪念一下。 day0: 这天是gryz65级三个校区的信竞同学第一次大会师。我成功与一区…

rapidXML解析xml文件

1.rapidXML介绍 RapidXML 是一个轻量级、高性能的 XML 解析库,以单头文件形式提供(rapidxml.hpp 及辅助头文件),适合在 C++ 中解析中小型 XML 文档。获取 RapidXML:从 官方网站 下载头文件(rapidxml.hpp、rapidx…

2025.9.17 - 呓语

今天在Ubuntu虚拟机上安装配置了Hadoop,Hbase和ZooKeeper下面开始idea连接虚拟机Hbase. 1、在Hbase里创建StudentAndCourse表: (1)启动Hadoop(2)启动Hbase(3)进入shell界面(4)创建表(5)插入数据(6)查看表数据2、id…

office2024免费永久激活版下载安装教程:含激活步骤 + 一键安装包下载

目录一、 Office 2024 专业增强版介绍二、Office 2024 专业增强版核心功能(每个组件都好用)1.Word 2024:写文档再也不用熬夜改格式2.Excel 2024:处理数据超省心三、Office 2024 专业增强版下载渠道(正规才安全,避…

大学不止GPA

🎊精彩预告~~~在这个各类奖项进行评比的时间点,我没得到很好的结果,没有多少经济实力的我,却花了2个月生活费的价钱,买下了大疆Action 5 Pro。📸 上了大学之后,感觉自己反而很少得到来自外界的肯定。我想,有…

大学目标

一、自我介绍:从好奇到尝试 哈喽~我是王星星,一名大数据技术专业的学生。和很多 “一开始就目标明确” 的同学不同,我更像个在代码世界里 “逛园子” 的人 —— 对技术充满好奇,但还在摸索最感兴趣的方向。不过,…

福昕PDF编辑器专业版破解 v2025 中文版安装使用教程

福昕PDF编辑器专业版破解 v2025 中文版安装使用教程福昕高级pdf编辑器介绍 可以对PDF文件进行多种 创建、转换、打印、编辑、注释、表单处理、签名、保护、协同合作 等工作,强大的编辑套件让本身不可以编辑的PDF格式文…

MySQL LIMIT 和 ORDER BY 优化详解

MySQL LIMIT 和 ORDER BY 优化详解MySQL LIMIT 子句 MySQL LIMIT 子句是控制 SELECT 语句返回行数的重要工具。通过指定从结果集中获取的最大行数,它可以让你处理数据子集,尤其是在涉及大表的情况下。该功能可提高查…