VP Educational Codeforces Round 13

news/2025/2/22 18:52:07/文章来源:https://www.cnblogs.com/maburb/p/18731247

A. Johny Likes Numbers

题意:找出比\(n\)大的最小的\(k\)的倍数。

求出\(n\)\(k\)的几倍后加一乘\(k\)

点击查看代码
void solve() {int n, k;std::cin >> n >> k;std::cout << (n / k + 1) * k << "\n";
}

B. The Same Calendar

题意:给出当前年份,求下一个每天星期数都相等的年份。

首先只有两个年份天数相同才可能,然后考虑枚举,发现\(365 \% 7 = 1, 366 \% 7 = 2\),那么当是闰年就加2,不是就加1,当这个加出来的数是7的倍数就是答案。

点击查看代码
void solve() {int n;std::cin >> n;auto check = [&](int n) -> int {return n % 400 == 0 || (n % 4 == 0 && n % 100 != 0);};int x = check(n);int t = 0;do {++ n;if (check(n)) {t += 366;} else {t += 365;}} while (t % 7 || check(n) != x);std::cout << n << "\n";
}

C. Joty and Chocolate

题意:在\([1, n]\)这些数里,你可以给\(a\)的倍数每个加\(p\)的价值,给\(b\)的倍数每个加\(q\)的价值,每个数只能用一次,求最大价值。

显然我们应该让价值大的染更多的色,并且给更多数染色,那么先给\(a, b\)的倍数都算一遍,然后减去它们重复的倍数的价值就行。

点击查看代码
void solve() {i64 n, a, b, p, q;std::cin >> n >> a >> b >> p >> q;if (p < q) {std::swap(a, b);std::swap(p, q);}i64 ans = 0;ans += n / a * p + n / b * q - n / (a / std::gcd(a, b) * b) * q;std::cout << ans << "\n";
}

D. Iterated Linear Function

题意:一个递归函数:\(f(x) = Ax + B, g(n, x) = f(g(n - 1, x)) n > 0; g(n, x) = x, n = 0\)。求\(g(n, x)\)

模拟一下,\(g(0, x) = x, g(1, x) = Ax + B, g(2, x) = A^2x + AB + B, g(3, x) = A^3x + A^2B + AB + B\),那么发现最终\(x\)的系数是\(A^n\),然后后面是\(\sum_{i=0}^{n-1} A^i \times B\),发现这是一个等比数列,用等比数列求和公式计算即可。

点击查看代码
void solve() {i64 A, B, n, x;std::cin >> A >> B >> n >> x;if (A == 1) {std::cout << x + (Z)n * B << "\n";return;}//A^n * x + A^n-1 * B + A^n-2 * B.. A^0 * BZ ans = power<Z>(A, n) * x + (1 - power<Z>(A, n)) / (Z)(1 - A) * B;std::cout << ans << "\n";
}

E. Another Sith Tournament

题意:有\(n\)个人要比赛,每场比赛两两对决,第\(i\)个人有\(p[i][j]\)几率战胜第\(j\)个人。你是第一个人,你可以选择第一个上场的人,已经在每场比赛后选一个没上场的人替换失败的人。

\(n <= 18\),自然想到状压\(dp\),但状态转移有点说法,如果正着做,记\(f[s][i]\)为当前上场过的集合为\(s\),剩下\(i\)的获胜概率,发现转移方程好想,但算出来答案不对,因为有些状态的值不好确定,如果集合有过第一个人,但获胜者不是第一个,概率应该为0,但这样就打乱我们的转移过程。
考虑反着来,\(f[s][i]\)表示\(i\)在擂台上,\(s\)集合的人都可以上场,那么倒着来,\(f[1][0] = 1\),然后对于每个\(f[s][i]\),选一个未上场的\(j\)来和\(i\)打,就有两种结果,取最大值就可以,状态转移方程为\(f[s][i] = \max(f[s][i], f[s - (1 << j)][i] \times p[i][j] + f[1 - (1 << i)][j] \times f[j][i])\)

点击查看代码
void solve() {int n;std::cin >> n;std::vector p(n, std::vector<double>(n));for (int i = 0; i < n; ++ i) {for (int j = 0; j < n; ++ j) {std::cin >> p[i][j];}}std::vector f(1 << n, std::vector<double>(n));f[1][0] = 1;for (int i = 2; i < 1 << n; ++ i) {for (int j = 0; j < n; ++ j) {if (i >> j & 1) {for (int k = 0; k < n; ++ k) {if ((i >> k & 1) && j != k) {f[i][j] = std::max(f[i][j], f[i - (1 << k)][j] * p[j][k] + f[i - (1 << j)][k] * p[k][j]);}}}}}double ans = 0;for (int i = 0; i < n; ++ i) {ans = std::max(ans, f[(1 << n) - 1][i]);}std::cout << std::fixed << std::setprecision(12);std::cout << ans << "\n";
}

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

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

相关文章

[Java SE] Java静态代码块与静态属性的执行顺序

序 重要结论先说结论,再去观察实验现象,印证结论。静态变量初始化和静态代码块的执行顺序是:按照它们在类中出现的顺序进行的。代码实验 实验1import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class JavaStaticTest {private final static String VAR = &qu…

PyTorch TensorBoard 使用

这篇文章介绍如何在 PyTorch 中使用 TensorBoard 记录训练数据。 记录数据 初始化 在程序启动时创建 SummaryWriter 对象用于写入日志数据。 from torch.utils.tensorboard import SummaryWriter import datetime# 获取当前时间戳,一般以时间戳作为记录文件夹名称的一部分 tim…

Svelte 最新中文文档教程(16)—— Context(上下文)

前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:Svelte 以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构…

微信小程序-授权获取手机号

前端 wxml <button name=phone class=phone value={{userInfo.phone}} wx:if="{{!userInfo.phone}}" bindgetphonenumber="getPhoneNumber" hover-class=none open-type=getPhoneNumber>点击获取 </button>js import { wxGetPhoneNumber } fr…

Linux 中xargs 中 -L和-n参数的差异

001、-L :按照换行符的数量来传递[root@PC1 dir1]# ls [root@PC1 dir1]# echo {0..9} 0 1 2 3 4 5 6 7 8 9 [root@PC1 dir1]# echo {0..9} | xargs -L 2 ## 利用echo生成一个1行的测试数据 0 1 2 3 4 5 6 7 8 9 [root@PC1 dir1]# seq 0 9 0 1 2 3 4 5 6 7 8 9 [ro…

【humanoid gym】关于在Issac gym里面PPO算法实现里transitions部分roll out storage的记录

1. 前言 一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流。 如有不对之处,欢迎评论区指出错误,你我共同进步学习! 2. 正文 2.1 在on_policy_runner.py文件夹下,初始化的地方:然后我们寻找定义的地方,在ppo.py文件夹下:其中参数num_transitions_per_env其…

Windows快速部署xxl-job.jar

1.在官网下载文件 https://gitee.com/xuxueli0323/xxl-job 2.在idea打开项目 3.修改maven版本,当前版本(2025/2/22)需要使用maven3.6.3+,maven地址:https://maven.apache.org/download.cgi maven版本过老的报错信息:Failed to execute goal org.apache.maven.plugins:mav…

复制浏览器网页文字 粘贴时却乱码的解决

本文介绍在复制网页内容后粘贴时,粘贴内容出现一个方框图案而不是当初复制内容的解决办法~本文介绍在复制网页内容后粘贴时,粘贴内容出现一个方框图案而不是当初复制内容的解决办法。最近,需要将谷歌地球引擎(Google Earth Engine,GEE)网页中的一段代码复制到另一个网页中…

【翻译】凝视深渊:千核并发控制的评估

凝视深渊:千核并发控制的评估 作者 Xiangyao Yu MIT CSAIL yxy@csail.mit.edu George Bezerra MIT CSAIL gbezerra@csail.mit.edu Andrew Pavlo 卡内基梅隆大学 pavlo@cs.cmu.edu Srinivas Devadas MIT CSAIL devadas@csail.mit.edu Michael Stonebraker MIT CSAIL stonebrake…

2.21课堂测验

需求描述: 请设计一个仓储管理系统原型系统,该系统支持多个仓库的设立。统一设立物资台账,物资台账需包含物资编码、物资名称、规格、材质、供应商、品牌、物资分类,用户可以自定义物资的物资分类。需限制不同的物资名称、规格、材质的物资不能设立相同的物资编码。仓库人员…

CSS2

盒子模型所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容 Margin(外边距):元素与其他元素的距离(边框以外的距离),外边距是透明的,需要修…

清华大学第三版《DeepSeek:如何抓住DeepSeek红利》,普通人必备的Ai手册(附PDF手册)

前两天,清华大学发布了一部极为详尽的电子书——《DeepSeek从入门到精通》。这本书将DeepSeek的基础知识以及提示词的运用方法,讲解得清晰明了、浅显易懂,一经问世便迅速在网络上引发了广泛关注与热潮。 【清华第一版】《DeepSeek从入门到精通》率先登场,给广大对DeepSeek感…