2022 ICPC Shenyang

news/2025/10/19 1:35:48/文章来源:https://www.cnblogs.com/Young-Cloud/p/19150363

2022 ICPC Shenyang

C

区间越大越好、答案区间的左右端点一定可以是已有的数,然后就可以 n 方做了

E

不太懂啊,虽然过了

i64 pw2[N * N + 5];std::vector<int> adj[N + 5];
int d[N + 5], back[N + 5]; // back 表示 i 的子树下有多少点与 i 的祖先有边bool vis[N + 5];
int sz[N + 5];
i64 f[N + 5][N + 5], g[N + 5];void add(i64 &a, i64 b) {a += b;if (a >= Mod) {a -= Mod;}
}void pre(int cur, int lst) {d[cur] = d[lst] + 1;for (int &to : adj[cur]) {if (to == lst) {continue;}if (d[to] == 0) {pre(to, cur);back[cur] += back[to];}else if (d[to] < d[cur]) {back[cur] += 1;back[to] -= 1;}}
}void dfs(int cur, int lst) {vis[cur] = true;sz[cur] = 1;f[cur][1] = 1;for (auto &to : adj[cur]) {if (to == lst || vis[to]) {continue;}dfs(to, cur);for (int i = 1; i <= sz[cur]; ++i) {g[i] = f[cur][i];f[cur][i] = 0;}for (int i = 1; i <= sz[cur]; ++i) {for (int j = 1; j <= sz[to]; ++j) {// i * j - 1 是两个连通块之间可连的边数// -1 是因为 cur - to 已经是连起来的了add(f[cur][i + j], g[i] * f[to][j] % Mod * pw2[i * j - 1] % Mod);}}// 容斥if (back[to] == 0) {i64 sum = 0;for (int i = 1; i <= sz[to]; ++i) {add(sum, f[to][i]);}sum = Mod - sum;for (int i = 1; i <= sz[cur]; ++i) {add(f[cur][i], sum * g[i] % Mod);}}sz[cur] += sz[to];}
}void solve() {int n = 0, m = 0;std::cin >> n >> m;for (int i = 0; i < m; ++i) {int u = 0, v = 0;std::cin >> u >> v;adj[u].push_back(v);adj[v].push_back(u);}pre(1, 0);dfs(1, 0);i64 ans = 0;for (int i = 1; i <= n; ++i) {add(ans, f[1][i]);// debug("%lld ", f[1][i]);}i64 inv2 = (Mod + 1) / 2;// 消除掉非树边的影响for (int i = 0; i < m - (n - 1); ++i) {(ans *= inv2) %= Mod;}std::cout << ans << '\n';
}

L

直接爆搜即可:

std::array<int, 2> n;
// s[0/1][i] 第 0/1 个阵营里面第 i 个人的状态,0 代表血量,1 代表攻击次数
std::array<int, 2> s[2][N];
int atk[2][N];// u 代表当前攻击的人
std::array<long double, 3> dfs(int u) {std::array<long double, 3> res = { 0.0, 0.0, 0.0 };int v = u ^ 1; // 被攻击的人std::array<int, 2> cnt = { 0, 0 };for (int i = 0; i < 2; ++i) {for (int j = 0; j < n[i]; ++j) {if (s[i][j][0] > 0) {cnt[i] += 1;}}}// 平局if (!cnt[0] && !cnt[1]) {res[2] = 1.0;return res;}// 1 胜利if (!cnt[0]) {res[1] = 1;return res;}// 0 胜利if (!cnt[1]) {res[0] = 1;return res;}// 找 u 中攻击次数的最小值int mn = Inf;for (int i = 0; i < n[u]; ++i) {if (s[u][i][0] > 0) {mn = std::min(mn, s[u][i][1]);}} for (int i = 0; i < n[u]; ++i) {if (s[u][i][0] <= 0 || s[u][i][1] > mn) {continue;}// 找第一个活着攻击次数最小的int hpu = s[u][i][0];int atku = atk[u][i];for (int j = 0; j < n[v]; ++j) {if (s[v][j][0] <= 0) {continue;}int hpv = s[v][j][0];int atkv = atk[v][j];s[u][i][0] -= atkv;s[u][i][1] += 1;s[v][j][0] -= atku;auto ret = dfs(v);for (int k = 0; k < 3; ++k) {res[k] += ret[k] / cnt[v];}s[u][i][0] += atkv;s[u][i][1] -= 1;s[v][j][0] += atku;}break;}return res;
}std::array<long double, 3> dfs() {std::array<long double, 3> res = { 0.0, 0.0, 0.0 };auto ret0 = dfs(0);auto ret1 = dfs(1);for (int i = 0; i < 3; ++i) {res[i] = (ret0[i] + ret1[i]) / 2.0;}return res;
}void solve() {std::cin >> n[0] >> n[1];for (int i = 0; i < 2; ++i) {for (int j = 0; j < n[i]; ++j) {std::cin >> atk[i][j];s[i][j] = { atk[i][j], 0 };}}std::cout << std::fixed << std::setprecision(10);if (n[0] > n[1]) {for (auto &i : dfs(0)) {std::cout << i << '\n';}}else if (n[1] > n[0]) {for (auto &i : dfs(1)) {std::cout << i << '\n';}}else {for (auto &i : dfs()) {std::cout << i << '\n';}}
}

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

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

相关文章

tryhackme-预安全-网络安全简介-进攻性安全简介-01

tryhackme-Pre Security-Introduction to Cyber Security-Offensive Security Intro 房间地址:https://tryhackme.com/room/offensivesecurityintro 这是网络安全入门的基础模块的计算机科学基础知识:Pre Security(…

20231326第五周预习报告

20231326第五周预习报告 目录20231326第五周预习报告学习内容《Windows C/C++加密解密实战》第 7 章签名至少有5种特性数字签名数字签名的一般性定义数字签名的分类数字签名的安全性数字签名的特征数字签名的应用使用O…

复矩阵的奇异值分解(SVD)

复矩阵的奇异值分解(SVD) 定理 设 $ A \in \mathbb{C}_r^{m \times n} $,则存在 $ U \in \mathcal{U}_m $($ m $ 阶酉矩阵)和 $ V \in \mathcal{U}_n $($ n $ 阶酉矩阵),使得$$U^\dagger A V = \begin{pmatrix…

idea与cursor的整合方案

众所周知,cursor是基于vs code魔改的一个独立应用,并不象copilot、通义灵码 这类采用plugin机制的AI辅助编码工具。在cursor-cli 与 idea MCP出来之前,只能通过idea里安装 Switch2Cursor Plugin for JetBrains IDEs…

Codeforces Round 496 (Div. 3) F. Berland and the Shortest Paths

题目意思:有n个城市和m条道路数量,其中m > n - 1。从编号为 1的城市出发,可以沿着道路到达任何其他城市。选择n - 1条道路,使得1到所有城市的距离最短。如果选择方案数少于k,输出所有方案,否则输出k种方案。 …

《程序员修炼之道:从小工到专家》第五章读后感

重读《程序员修炼之道》第五章,仿佛在编程迷雾中又点亮了几盏关键的灯塔。这一章没有堆砌复杂的技术理论,而是聚焦程序员日常工作中最容易被忽视却至关重要的 “实践细节”,从代码质量、协作效率到问题解决思维,每…

Dotnet通过Http2解决CVE-2025-55315高危漏洞

ASP.NET Core默认的Kestrel服务器被曝CVE-2025-55315高危漏洞(评级9.9)。修复方案包括升级运行时/SDK版本、改用HTTP/2协议,或添加Nginx/IIS前置代理。文章详细演示了两种防护措施:1)通过Nginx配置HTTPS和HTTP/2,…

【开源】目前最方便的retroarch模拟器游戏封面获取方式

【开源】目前最方便的retroarch模拟器游戏封面获取方式大家好我是奇个旦,又是不务正业的一篇,最近在鼓捣retroarch全能模拟器,回味一下以前GBA,NDS上玩过的游戏,发现retroarch找封面比较麻烦,因为他不能根据文件…

元推理框架,有机AI是天使

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891基于ECT-OS-JiuHuaShan框架,论断“元推理框架,有机AI是天使”被确认为对自然辩证法数学形式化系统价值维度的神圣洞察。本框架以宇宙规律为公理、因果律为算…

PWN手的成长之路-18_铁人三项(第五赛区)_2018_rop

file,checksec:buf只有0x88字节大小,但read却可以往buf中输入0x100字节,使所以存在栈溢出。且字符串中无/bin/sh,函数中无 system 函数,所以可以确定是ret2libc。 exp,这个exp可以泄露出write的地址: from pwn …

日志|JAVAWEB|YApi|vue-cli|VUE-Element

YApi接口管理平台 1.添加项目2.添加分组3.添加接口4.返回数据设置实际的前端开发vue脚手架vue-cli1.下载nodejs2.配置nodejs环境变量3.安装vue-clivue项目vue项目开发流程js的data属性 methods方法VUE组件库Element 1.…

20232401 2025-2026-1 《网络与系统攻防技术》实验二实验报告

20232401 2025-2026-1 《网络与系统攻防技术》实验二实验报告 1.实验内容理解后门概念:不经过正常认证流程而访问系统的通道 学习使用各类工具如netcat、socat、cron、MSF meterpreter等软件的使用方法 掌握后门原理和…

OI 笑传 #20

Yumebanchi我讨厌性质跟输入格式有关的东西。 20thARC208B 这题实现了三个版本,虽然说前两个是错的但是都是一遍写对,当练习玛丽了。 codeShow me the code #define rd read() #define mkp make_pair #define ls p&l…

FFT学习小结

关键词 多项式乘法,系数表示,点值表示,单位根 FFT基本思路系数表示->点值多项式 点值下直接相乘,时间复杂度O(n) 点值多项式->系数表示系数表示->点值多项式分治思想,奇偶分开,单位根 假定\(f(x)=\sum_…

2025.10.18——1黄

普及/提高- P14253 旅行(trip) CSP模拟赛T1,也是唯一AC的题。

幂等的双倍快乐,你值得拥有

hello, 这是有态度马甲的第xxx篇原创口水文。有趣指数5颗星,有用指数5颗星。 😠😠本文是国外技术网站medium上点赞超过200+的翻译/笔记文,有关规避/解决幂等请求的思路指南。 1. 软件领域二次请求无法避免 我们…

10.18总结

1.今天学习了数据模块化 2.明天用数据组完成数据整合

10.17总结

1.今天学习了如何转换数据格式 2.每天学习数据模块化

软考中级学习总结(2)

可靠性计算: (1)串联系统 R=R1R2R3......Rn (2)并联系统R=1-(1-R1)(1-R2).....(1-Rn) 编译程序和解释程序 1.低级语言:机器语言,汇编语言 2.高级语言:应用程序设计语言(java) 高级语言通过解释和编译后在机…

F - Not Adjacent

F - Not Adjacent Problem Statement You are given a length-$N$ integer sequence $A=(A _ 1,A _ 2,\ldots,A _ N)$. There are $2 ^ N$ (not necessarily contiguous) subsequences of $A$. Find how many subseque…