A

显然 \(n\) 个队的得分之和为 \(0\),因此答案为这 \(n-1\) 个数的和的相反数。

赛时代码

B

小贪心。

将所有人按 \(b\) 升序排序,\(b\) 相同时按 \(a\) 降序,对每个人按 \(b\) 进行分类讨论:

  • 若 \(b< p\),那么我们一定要选这个人,因为选了这个人我们就可以用当前最小的代价去选其他的人。

  • 若 \(b\ge p\),那么直接用 \(p\) 的代价选这个人就可以。

还要注意一些边界之类的东西,细节还是有的。

赛时代码

C

细节题。

我们可以看一下当 \(n=3,m=9\) 时的情况:

\[\begin{aligned}
0\ 0\ 0\ 0\\
0\ 1\ 1\ 1\\
0\ 0\ 2\ 2\\
0\ 0\ 0\ 3\\
0\ 1\ 1\ 4\\
0\ 0\ 2\ 5\\
0\ 0\ 0\ 6\\
0\ 1\ 1\ 7\\
0\ 0\ 2\ 8\\
0\ 0\ 0\ 9\\
\end{aligned}\]

不难发现规律:

  • 当 \(k>3\) 时,无解。

  • 当 \(k=1\) 时,有且只有一组解,即全 \(0\) 序列。

  • 当 \(k=2\) 时,有 \(\min(n,m)+\max(0,\lfloor\frac{m}{n}\rfloor -1)\) 组解。

  • 当 \(k=3\) 时,有 \(\max(0,m-n-\lfloor\frac{m}{n}\rfloor+1)\) 组解。

赛时代码

D

简单题。

我们只需要计算对于每个值,它作为最大值出现在了几个方案中即可,产生的贡献就是方案数与其值的乘积。

我们将序列降序排序,按值从大到小考虑,设当前考虑的值为 \(x\),对应的下标为 \(y\)。

因为我们需要强制钦定 \(x\) 为最大值,这就意味着比 \(x\) 大的值都不能选,又因为只要选了一个位置,其倍数都会被选,所以这就意味着比 \(x\) 大的值的下标的约数一个都不能选。

那么我们统计 \(y\) 的约数中有几个可以选,设这个值为 \(a\),再设当前所有能选的数的个数为 \(b\),那么 \(x\) 对应的方案数就是 \((2^a-1)\times 2^{b-a}\),也就是 \(a\) 中至少选一个,剩下的 \(b-a\) 个随便选的方案数,这是因为 \(a\) 中至少要选一个才能选到 \(x\)。

时间复杂度为调和级数 \(O(n\log n)\)。

赛时代码

E

构造题。

将 \(i\) 向 \(a_i\) 连单向边,建成内向基环森林。

一种构造方案等价于将点黑白染色,黑白染色的过程比较复杂,具体看代码,主要就是:

  • 如果存在奇环,无解。

  • 如果存在偶环,那么黑白交替染色。

  • 如果自己不存在子节点为白色,那么自己是白色。

  • 如果自己存在子节点为白色,那么自己是黑色。

最后方案就是所有白点的出点编号,也就是白点下标对应的值。

赛后代码

CF1877 Div2 A-E 题解的更多相关文章

  1. Codeforces Round#630 div2 A~C题解

                                                                                                        ...

  2. Codeforces Round #549 div2 1143-B Nirvana 题解

    Kurt reaches nirvana when he finds the product of all the digits of some positive integer. Greater v ...

  3. cf div2 round 688 题解

    爆零了,自闭了 小张做项目入职字节 小李ak wf入职ms 我比赛爆零月薪3k 我们都有光明的前途 好吧,这场感觉有一点难了,昨天差点卡死在B上,要不受O爷出手相救我就boom zero了 第一题,看 ...

  4. 833(DIV2)——C题题解

    题目链接 题目大意: 给定n个数,你可以对数值为0的数改变其为任意值,问最后前缀和为0的个数的最大值. 思路: 这题比较可惜,自己的思路没有问题,但是他少了一些东西.对数组进行前缀和处理,我们可以发现 ...

  5. Codeforces Beta Round #96 (Div. 2) (A-E)

    写份DIV2的完整题解 A 判断下HQ9有没有出现过 #include <iostream> #include<cstdio> #include<cstring> ...

  6. CF Educational Round 78 (Div2)题解报告A~E

    CF Educational Round 78 (Div2)题解报告A~E A:Two Rival Students​ 依题意模拟即可 #include<bits/stdc++.h> us ...

  7. CF1169(div2)题解报告

    CF1169(div2)题解报告 A 不管 B 首先可以证明,如果存在解 其中必定有一个数的出现次数大于等于\(\frac{m}{2}\) 暴力枚举所有出现次数大于等于$\frac{m}{2} $的数 ...

  8. CF Round #580(div2)题解报告

    CF Round #580(div2)题解报告 T1 T2 水题,不管 T3 构造题,证明大约感性理解一下 我们想既然存在解 \(|a[n + i] - a[i]| = 1\) 这是必须要满足的 既然 ...

  9. 洛谷3月月赛div2 题解(模拟+数学+贪心+数学)

    由于本人太蒻了,div1的没有参加,胡乱写了写div2的代码就赶过来了. T1 苏联人 题目背景 题目名称是吸引你点进来的. 这是一道正常的题,和苏联没有任何关系. 题目描述 你在打 EE Round ...

  10. Codeforces Round #707 Editorial Div2 题解

    CF1501 Div2 题解 CF1501A 这道题其实是一道英语阅读题,然后样例解释又不清晰,所以我看了好久,首先它告诉了你每个站点的预期到达时间 \(a_i\) ,以及每个站点的预期出发时间 \( ...

随机推荐

  1. 2023-07-02:给定一个1~N的排列,每次将相邻两数相加,可以得到新的序列,长度是N-1 再对新的序列,每次将相邻两数相加,可以得到新的序列,长度是N-2 这样下去可以最终只剩一个数字 比如 :

    2023-07-02:给定一个1~N的排列,每次将相邻两数相加,可以得到新的序列,长度是N-1 再对新的序列,每次将相邻两数相加,可以得到新的序列,长度是N-2 这样下去可以最终只剩一个数字 比如 : ...

  2. MODBUS-TCP转Ethernet IP 网关连接空压机配置案例

    本案例是工业现场应用捷米特JM-EIP-TCP的Ethernet/IP转Modbus-TCP网关连接欧姆龙PLC与空压机的配置案例.使用设备:欧姆龙PLC,捷米特JM-EIP-TCP网关, ETHER ...

  3. Hexo博客Next主题相册搭建

    参考文章,小红鸡 参考文章,主题美化 效果展示:相册 在blog文件夹/source下创建photos文件夹,在photos文件夹创建index.md文件,编辑index.md文件,写入以下代码: & ...

  4. 如何在 Ubuntu 20.04 上安装 KVM

    如何在 Ubuntu 20.04 上安装 KVM 遇到两个问题: 没有创建 /etc/qemu/bridge.conf 文件 ERROR internal error: /usr/lib/qemu/q ...

  5. 2021-11-30 WPF的MVVM绑定

    主页面代码 public partial class MainWindow : Window { MainViewModel mainViewModel = null; public MainWind ...

  6. 2021-7-6 new tcpip

    using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Ne ...

  7. Cilium系列-8-绕过 IPTables 连接跟踪

    系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, ...

  8. 四 APPIUM GUI讲解(Windows版)(转)

    Windows版本的APPIUM GUI有以下图标或者按钮: ·Android Settings  - Android设置按钮,所有和安卓设置的参数都在这个里面 ·General Settings – ...

  9. PXE操作过程 kickstart 无人值守安装

    PXE操作过程 分配给同一局域网内新加机器的地址(配置文件) dhcp 分配地址 指明tftp 服务器的地址 tftp服务端开启 udp 配置 默认关闭 安装syslinux 取得 pxelinux. ...

  10. 【技术积累】Linux中的命令行【理论篇】【十】

    bunzip2 命令说明 bunzip2命令是Linux系统中的一个用于解压缩文件的命令.它可以解压缩使用bzip2算法压缩的文件,将其恢复为原始的未压缩文件. 命令介绍 bunzip2命令的语法如下 ...