Codeforces Round 926 (Div. 2)

C:Sasha and the Casino

类似于倍投法,就是在一赔一的情况下,第一次压一块钱,每输一次就押注上一次两倍的金额.

假如资金无限的话,这种方法赢的期望为无穷大.原理类似于二进制,不论你输再多次,只要赢一次总额就增加了1.比如 15 二进制1111,前3把一直输,但是只要第4把赢,就一定可以增加 1 资金.

本题大概也就是这样,假设已经输了s,那么这一把至少要投资多少才可以把之前输的全部赚回来,假设为c ,那么也就是  k*c> s+c , 变形一下就是 c>  \frac{c}{k-1} , 这里我们下取整 再加上1 即可.

那么我们只需要判断资金是否充足即可。

void solve()
{int k, x, a;cin >> k >> x >> a;int s = 1;for (int i = 1; i <= x; i++){int t = s / (k - 1) + 1;s += t;if (s > a){cout << "NO" << endl;return;}}cout << "YES" << endl;
}

D:Sasha and a Walk in the City

 题意: 计算不存在三点在一条线上的点集的数量.反正体面是有点抽象。。

思路:我们考虑树形dp,一般先看单一的树与子树进行分析

一种是从每个叶节点到根结点形成的链上最多只有一个特殊点,用 f [ x ]保存,还有一种就是有存在两个关键点的链,用 dp[x] 保存

那么对于以 x 为根的子树,如果不选择 x 为关键点:

1.第一种情况下因为每条链上只有一个关键点,那么经过 x 的路径一定不会包含第三个关键点, x子树的所有情况可以随意组合,直接将所有子树的 f 乘起来即可

2.第二种情况下,如果 x 的一棵子树存在这样一条链,其他子树的任意节点都不能成为关键点,只能是空白一种情况,所以把所有子树dp相加

如果选择 x 成为关键点的话,子树一定不能含链,分为两种情况:

1.除了 x 均为空白,符合第一种情况,这样只有一种

2.对于一颗子树的所有不含链(也就是最多一个点)且不为空白的可能(即为 f[son]−1 ),加上 x 会构成若干条链,此时其余子树应均为空白。

两种情况相加有

f[x]= 1+\prod i\in son[x] f[i] 

dp[x]=\sum i\in son[x](dp[i]+f[i]-1)

ans=dp[1]+f[1]

初始化的时候,f[i]=1,叶节点为2

int f[N], dp[N];
vector<int> g[N];
void dfs(int u, int fa)
{for (auto ed : g[u]){if (ed == fa)continue;dfs(ed, u);f[u] = ((f[u] * f[ed]) % mod + mod) % mod;dp[u] = (dp[u] + dp[ed] + f[ed] - 1) % mod;}f[u]++;//对于叶节点可以使其变为2,对于其他带f[u]可以加上1f[u] %= mod;
}
void solve()
{int n;cin >> n;for (int i = 1; i <= n; i++){g[i].clear();f[i] = 1;dp[i] = 0;}for (int i = 1; i <= n - 1; i++){int a, b;cin >> a >> b;g[a].pb(b);g[b].pb(a);}dfs(1, -1);int ans = f[1] + dp[1];cout << f[1] << endl;cout << (ans % mod + mod) % mod << endl;
}

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

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

相关文章

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核内存管理-动态内存

目录 一、动态内存运行机制二、动态内存开发流程三、动态内存使用说明四、动态内存核心算法五、动态内存接口六、代码分析&#xff08;待续...&#xff09;坚持就有收获 一、动态内存运行机制 动态内存管理&#xff0c;即在内存资源充足的情况下&#xff0c;根据用户需求&…

算法--数论二

这里写目录标题 高斯消元高斯消元求线性方程组用途高斯消元的数学思想例题代码 二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 高斯消元 高斯消元求线性方程组 用途 这个…

Vite 5.0 正式发布

11 月 16 日&#xff0c;Vite 5.0 正式发布&#xff0c;这是 Vite 道路上的又一个重要里程碑&#xff01;Vite 现在使用 Rollup 4&#xff0c;这已经代表了构建性能的大幅提升。此外&#xff0c;还有一些新的选项可以改善开发服务器性能。 Vite 4 发布于近一年前&#xff0c;它…

黄金交易策略(Nerve Nnife.mql4):做单手数设计

完整EA&#xff1a;Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 NK的做单量是由参数设定的&#xff0c;以下分别是参数项&#xff1a; 考虑到复利的情况&#xff0c;若10000本金&#xff0c;在以上三个参数的设计下&#xff0c;第1单的购买量是0.01*10,第2单是0.01*10*2…

Tuxera NTFS 2024永久免费版Mac系统NTFS磁盘读写软件

Tuxera NTFS 2024是一款Mac系统NTFS磁盘读写软件&#xff0c;由Tuxera公司开发。该软件可以在Mac上打开、编辑、复制、移动或删除存储在Windows NTFS格式USB驱动器上的文件。对于需要在Mac和Windows之间频繁传输文件的用户来说&#xff0c;Tuxera NTFS 2024无疑是一个方便且高效…

00x集——查询CAD (DWG格式)文件扩展属性(vba代码实现)

cass文件中图元经常有扩展属性&#xff0c;查询扩展属性代码及方法如下&#xff1a; 打开dwg文件 —> altF11打开ide窗口&#xff0c;粘贴如下代码&#xff0c;并运行&#xff1a; Sub 查看扩展属性()提取块的扩展属性只针对带有属性的图元On Error Resume NextDim sst As …

拿捏c语言指针(上)

目录 前言 ​编辑 指针 内存与地址 计算机常见单位 理解编址 取地址&#xff0c;指针变量&#xff0c;解引用 取地址 指针变量 解引用 指针变量大小 指针类型的作用 char*解引用后 指针-整数 应用 void*指针 const修饰指针变量 const修饰普通变量 const修饰指…

数据库实验三

目录 1 建立表并插入数据 1.1 SQL语句 1.2 截图 2 单表查询 2.1 选择表中若干列 2.1.1 SQL语句 2.1.2 截图 2.2 选择表中若干元组 2.2.1 SQL语句 2.2.2 截图 2.3 order by子句 2.3.1 SQL语句 2.3.2 截图 ​​​​​​​2.4 聚集函数 2.4.1 SQL语句 2.4.2 截图 …

Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(中)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Lag-Llama:第一个时间序列预测的开源基础模型介绍和性能测试

2023年10月&#xff0c;我们发表了一篇关于TimeGPT的文章&#xff0c;TimeGPT是时间序列预测的第一个基础模型之一&#xff0c;具有零样本推理、异常检测和共形预测能力。 虽然TimeGPT是一个专有模型&#xff0c;只能通过API访问。但是它还是引发了对时间序列基础模型的更多研…

Ollama 可以在 Windows 上运行了

Ollama 可以在 Windows 上运行了 0. 引言1. 下载 Ollma 安装文件2. 安装 Ollama3. 使用 Ollama4. (可选)环境变量5. (可选)修改默认模型 0. 引言 Ollama 终于可以在 Windows 上运行了&#xff0c;一直以来都是 “Coming soon”。 运行 Mixtral 8*7B 试了一下&#xff0c;推理…

OpenCV中的边缘检测技术及实现

介绍: 边缘检测是计算机视觉中非常重要的技术之一。它用于有效地识别图像中的边缘和轮廓&#xff0c;对于图像分析和目标检测任务至关重要。OpenCV提供了多种边缘检测技术的实现&#xff0c;本博客将介绍其中的两种常用方法&#xff1a;Canny边缘检测和Sobel边缘检测。 理论介…