Say 题选记(10.5 - 10.11)

news/2025/10/8 18:59:42/文章来源:https://www.cnblogs.com/Hengqwq/p/19129811

P4797 [CEOI 2015] 波将金的路径

题目要我们找一个环长 \(\ge 4\) 的环,使得这个环没有弦。难点显然在这个没有弦的限制。如果我们直接找最小环,可能会找到一个三元环,虽然没有弦了,但也不满足题目的要求。
一个人类智慧的点边转换,考虑对边之间连边。初步想法是将 \((u, v)\)\((v, w)\) 连边,条件是不存在边 \((u,w)\),这样就手动把三元环排除掉了。可以发现,直接在新图上找最小环(肯定没有弦)就行了。
但这样还是有问题,如果按照无向边来处理的话,如果原图是菊花图,建出来的新图依然有环。那么我们把无向边拆成有向边,还是按照上面的方法建新图,这样新图上的环和原图上的非三元环存在一一对应关系。
最小环跑 \(floyd\)?没必要。仔细思考我们只是要找到一个极小环,直接 dfs,然后处理返祖边就行。具体来说,从上到下 dfs,找到 \(u\) 的返祖边中深度最大的那个(如果存在),直接返回就行,这样找到的一定是极小环。因为如果还有更小的环的话在 \(u\) 的祖先处就被遍历到了。
复杂度在于建图的 \(O(N^3)\)

Code
#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 5, M = 2e5 + 5;
int n, m, g[N][N], ver[M][2], dep[M], st[M], tp;
vector<int> e[M];
bitset<M> in;
void dfs(int u, int fa){dep[u] = dep[fa] + 1;in[st[++tp] = u] = 1;int x = 0;for(int v : e[u]){if(in[v] && dep[x] < dep[v]) x = v;}if(x){cout << ver[u][1] << ' ';--tp;while(1){cout << ver[st[tp]][1] << ' ';if(st[tp] == x) exit(0);--tp;}}for(int v : e[u]){if(!dep[v]) dfs(v, u);}in[st[tp--]] = 0;
}
int main(){cin.tie(nullptr)->sync_with_stdio(0);cin >> n >> m;for(int i = 1; i <= m; ++i){int &u = ver[i][0], &v = ver[i][1];cin >> u >> v;g[u][v] = i;g[v][u] = m + i;ver[m + i][0] = v, ver[m + i][1] = u;}for(int v = 1; v <= n; ++v){for(int u = 1; u <= n; ++u){for(int w = u + 1; w <= n; ++w){if(g[u][v] && g[v][w] && !g[u][w]){e[g[u][v]].emplace_back(g[v][w]);e[g[w][v]].emplace_back(g[v][u]);}}}}for(int i = 1; i <= 2 * m; ++i){if(!dep[i]) dfs(i, 0);}cout << "no";return 0;
}

P6620 [省选联考 2020 A 卷] 组合数问题

普通幂转下降幂的 trick。
为什么要引入下降幂呢,主要是由于求导的性质,如果 \(f(k)\) 是关于 \(k\) 的函数。
并且 \(F(x) = \sum_k f(k)x ^k\)
两边求 \(i\) 阶导,\(F^{(i)}(x) = \sum_k f(k)k^{\underline{i}} x ^ {k - i}\)
也就是说,如果我们知道 \(F(x)\) 的封闭形式,那么推广到 \(x\) 的系数是 \(k\) 的下降幂多项式的形式的幂级数也是有封闭形式的。

考虑如何把普通幂多项式转化成下降幂多项式。首先要知道一个式子 \(m^n = \sum_{i = 0}^m {n \brace i}m^{\underline{i}}\)。证明的话考虑组合意义,都是把 \(n\) 个有标号的球放进 \(m\) 的有标号的盒子里。
那么对于 \(\sum_{i = 0}^m a_ix^i\)\(m\) 次多项式,套用刚刚的方法,就变成了 \(\sum_{i = 0}^m a_i(\sum_{k = 0}^i {i \brace k}x^{\underline{k}})\),整理一下,也就是 \(\sum_{i = 0}^m (\sum_{j = i}^m a_j{j \brace i})x^{\underline{i}}\)

对于原式子 \(\sum_{k = 0}^n G(k){n \choose k}x^k\)。其中 \(G(k)\) 是关于 \(k\)\(m\) 次多项式。由于 \(F(x) = \sum_{k = 0}^n{n \choose k}x^k\) 有封闭形式 \(F(x) = (1 + x)^n\)。考虑对其两边求 \(i\) 阶导,也就是说 \(\sum_{k = 0}^n {n \choose k} k^{\underline{i}} x^{k - i} = n^{\underline{i}}(1 + x)^{n - i}\)。两边同时乘 \(x^i\)\(\sum_{k = 0}^n {n \choose k} k^{\underline{i}} x^{k} = n^{\underline{i}}(1 + x)^{n - i}x^i\)。用刚刚的方法把 \(G(k)\) 转成 \(\sum_{t = 0}^m b_t\times k^{\underline{t}}\) 的形式,整理求和号 \(\sum_{k = 0}^n (\sum_{i = 0}^m b_i\times k^{\underline{i}}) {n \choose k}x^k = \sum_{i = 0}^m b_i (\sum_{k = 0}^n {n \choose k}k^{\underline{i}} x^k) = \sum_{i = 0}^m b_i n^{\underline{i}}(1 + x)^{n - i}x^i\) 就做完了。

递推斯特林数时,注意一下初值怎么赋。\({i \brace 0} = [i = 0]\)

Code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int M = 1e3 + 5;
int mod, x, n, m;
ll b[M], a[M], f[M][M];
ll qpow(ll a, ll b){ll ret = 1;for(int x = b; x; x >>= 1, (a *= a) %= mod){if(x & 1) (ret *= a) %= mod;}return ret;
}
int main(){cin.tie(nullptr)->sync_with_stdio(0);cin >> n >> x >> mod >> m;for(int i = 0; i <= m; ++i) cin >> a[i];f[0][0] = 1;for(int i = 0; i <= m; ++i){for(int j = 1; j <= i; ++j){f[i][j] = (f[i - 1][j - 1] + j * f[i - 1][j]) % mod;}}for(int i = 0; i <= m; ++i){for(int j = i; j <= m; ++j)(b[i] += a[j] * f[j][i]) %= mod;}ll ans = 0, tmp = 1;for(int i = 0; i <= m; ++i){(ans += b[i] * tmp % mod * qpow(x, i) % mod * qpow(x + 1, n - i) % mod) %= mod;(tmp *= (n - i)) %= mod;}cout << ans;return 0;
}

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

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

相关文章

昆山网站开发ikelv孟州网站开发app

在当今的数据驱动时代&#xff0c;Elasticsearch以其强大的搜索和分析能力&#xff0c;成为了众多企业和项目中的核心组件。然而&#xff0c;Elasticsearch的强大并不止于其本身&#xff0c;其与其他系统的紧密集成&#xff0c;如Logstash、Kibana、Beats等&#xff0c;共同构建…

站长工具海角wordpress为用户添加积分

一、监控 Windows 主机的方法 方式 1:使用 Windows Exporter Windows Exporter(wmi_exporter) 是 Prometheus 官方推荐的 Windows 监控工具,它可以采集 CPU、内存、磁盘、网络、进程、服务状态等 指标。 方式 2:使用 Node Exporter for Windows node_exporter 主要用于…

E. Rasta Thamaye Dilo

E. Rasta Thamaye Dilo链接:[https://codeforces.com/gym/104679/problem/E?adcd1e=caf4fedm9escdm&csrf_token=062b3628aaa43205c694e16f77dbe6ec] 题意: 村庄=点 路=点与点的连线 1.有t组数据,每组给一个数字…

微信机器人开发最新协议API

微信机器人开发最新协议API 大家看到这篇文章,首先要明白:市面上所有机器人操作,都是基于接收消息后的逻辑处理,例如群转让、群管理、自动踢人、创建群聊、入群自动@、聚合聊天、消息托管、多群转发、内容直播、社…

重庆承越网站制作公司德州网站怎样建设

ollydbg简介&#xff1a; Ollydbg 通常称作OD&#xff0c;是反汇编工作的常用工具&#xff0c;OD附带了200脱壳脚本和各类插件&#xff0c;功能非常强大&#xff0c;可以过SE&#xff0c;VMP3.0&#xff0c;深受逆向圈内人士的喜爱 OD&#xff0c;是一个反汇编工具&#xff0c;…

JDK的安装与使用 - XYX

JDK 安装与使用指南 第一部分:什么是 JDK?JRE 和 JVM 又是什么?** 在开始安装之前,我们先来厘清几个容易混淆的概念:JVM (Java Virtual Machine):Java 虚拟机。它是 Java 平台的核心,负责执行 Java 字节码(.cl…

不连网也能跑大模型? - 教程

不连网也能跑大模型? - 教程2025-10-08 18:40 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

Rust 的英文数字验证码识别系统实现

一、引言 验证码(CAPTCHA,Completely Automated Public Turing test to tell Computers and Humans Apart)是一种防止恶意自动化访问的技术,常见于网站注册、登录等场景。 通过随机字符、干扰线、扭曲等方式,验证…

linux下网站建设免费国内ip

工作流程&#xff1a; Driver 创建 SparkSession 并将应用程序转化为执行计划&#xff0c;将作业划分为多个 Stage&#xff0c;并创建相应的 TaskSet。Driver 将 TaskSet 发送给 TaskScheduler 进行调度和执行。TaskScheduler 根据资源情况将任务分发给可用的 Executor 进程执…

网站备案核网页界面设计的主要内容

前后端分离的开发中&#xff0c;用户http请求应用服务的接口时, 如果要求检测该用户是否已登录。可以实现的方法有多种&#xff0c; 本示例是通过aop 的方式实现&#xff0c;简单有效。 约定&#xff1a;前端http的post 请求 export async function request(url,data) {const …

实用指南:go get下载三方库异常

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

微信机器人制作教程+源码

微信机器人制作教程+源码,开发微信机器人/个微/WTAPI框架,微信个人号二次开发 微信个人号二次开发,是完整的第三方服务平台,并基于IPAD协议8.0.57开发出的最新个微API服务框架。 你可以 通过API 实现 个性化微信功…

基于 Rust 的英文数字验证码识别系统实现

一、引言 验证码(CAPTCHA,Completely Automated Public Turing test to tell Computers and Humans Apart)是一种防止恶意自动化访问的技术,常见于网站注册、登录等场景。 通过随机字符、干扰线、扭曲等方式,验证…

做外包的网站山东住房与城乡建设网站

JsonDB项目介绍JsonDB是一个由原生PHP实现的文件数据库&#xff0c;JsonDB只有一个文件&#xff0c;如果你不想使用庞大的数据库系统&#xff0c;而且只需要单机功能&#xff0c;那么JsonDB就是你最佳的选择。 JsonDB只有初始化写入和查询功能,所以适用于比较固定的,数据量不大…

使用 Fortran 实现英文数字验证码识别系统

一、引言 验证码(CAPTCHA)是一种防止自动化程序滥用网络资源的安全机制。 常见的验证码由英文字母与数字组成,并通过随机扭曲、噪声、干扰线等方式防止机器识别。 更多内容访问ttocr.com或联系1436423940 Fortran(…

力扣热题100之翻转二叉树 - 详解

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

高校后勤网站建设网站多语言

一、背景 笔者已介绍过在Qt 5.15.x中使用MinGW&#xff08;8.10版本&#xff09;编译并集成Crypto 8.8.0。 但是该编译出来的库&#xff08;.a和.dll&#xff09;不适用MSVC&#xff08;2019版本&#xff09;构建环境&#xff0c;需要重新编译&#xff08;.lib或和.dll&#xf…

初来乍到,发篇博客试试功能

初来乍到,发篇博客试试功能本人大二,努力学编程中!!!

国庆集训游记

前言 为什么我的假期比别人少五天? \(\rm Day \, 0\) 假期前两天把除了英语作业外的所有作业写完了,因为英语老师说可以不写。 下午报道。 饭比二南好吃。 厕所有门!!!!! \(\rm Day \, 1\) 上午讲了二分,黄绿为…

P11967 [GESP202503 八级] 割裂

解题思路 问题分析 我们需要找到满足以下条件的节点:删除该节点后,所有好点对仍然连通删除该节点后,坏点对不连通关键思路好点对连通性分析:如果一个节点在某个好点对的路径上,删除它会导致该好点对不连通因此,能…