[ABC212E] Safety Journey 题解
题目大意
给定一张缺少了 \(m\) 条边的 \(n\) 个点的完全图和一个正整数 \(k\),你需要求出满足以下条件的序列 \(A\) 的数量:
- \(A\) 的长度为 \(k+1\)。
- \(A_0=A_k=1\)。
- \(\forall 0\le i\le k-1\),点 \(A_i\) 和点 \(A_{i+1}\) 之间存在边。
思路分析
图上计数,考虑 DP。
设 \(f_{i,j}\) 表示考虑到路径上的第 \(i\) 个点(从 \(0\) 开始),当前位于点 \(j\) 的方案数。
那么所求的就是 \(f_{k,1}\)。
考虑状态转移,因为给出的是原图的补图,所以可以列出方程:
\]
其中,\(e_i\) 表示点 \(i\) 在补图中的出点集合。
容易发现,前半部分可以通过记录前缀和的方式优化掉,所以就做完了,时间复杂度和空间复杂度均为 \(O(n^2)\)(视 \(n,m\) 同阶),也可以通过滚动数组将空间优化到 \(O(n)\),但无所谓了。
代码
#include <iostream>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N=10100,M=5050,mod=998244353;
#define int long long
int to[N],nxt[N],head[N];
int idx=1,n,m,k,in1,in2,sum;
int f[M][M];
void add(int u,int v){
idx++;to[idx]=v;nxt[idx]=head[u];head[u]=idx;
}
signed main(){
scanf("%lld%lld%lld",&n,&m,&k);
for(int i=1;i<=m;i++){
scanf("%lld%lld",&in1,&in2);
add(in1,in2);add(in2,in1);
}
f[0][1]=1;//第 0 天在点 1 有一种方案
for(int i=1;i<=k;i++){
sum=0;
for(int s=1;s<=n;s++) sum+=f[i-1][s];//记录和
for(int s=1;s<=n;s++){
f[i][s]=sum-f[i-1][s];
for(int j=head[s];j;j=nxt[j]){
int v=to[j];
f[i][s]-=f[i-1][v];//依次减去
}
f[i][s]%=mod;
}
}
cout<<f[k][1]<<'\n';
return 0;
}
[ABC212E] Safety Journey 题解的更多相关文章
- [Codeforces 864C]Bus
Description A bus moves along the coordinate line Ox from the point x = 0 to the point x = a. After ...
- 【题解】Weird journey Codeforces 788B 欧拉路
传送门:http://codeforces.com/contest/788/problem/B 好题!好题! 首先图不连通的时候肯定答案是0,我们下面讨论图联通的情况 首先考虑,如果我们每条边都经过两 ...
- HDU 5477 A Sweet Journey 水题
A Sweet Journey Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...
- cdoj 92 Journey tarjan/lca 树上点对距离
Journey Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/92 Descri ...
- BZOJ1533: [POI2005]Lot-A Journey to Mars
1533: [POI2005]Lot-A Journey to Mars Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 174 Solved: 76[S ...
- Codeforces Round #428 (Div. 2) 题解
题目链接:http://codeforces.com/contest/839 A. Arya and Bran 题意:每天给你一点糖果,如果大于8个,就只能给8个,剩下的可以存起来,小于8个就可以全部 ...
- 【cf789D】Weird journey(欧拉路、计数)
cf788B/789D. Weird journey 题意 n个点m条边无重边有自环无向图,问有多少种路径可以经过m-2条边两次,其它两条边1次.边集不同的路径就是不同的. 题解 将所有非自环的边变成 ...
- [Codeforces Round #507][Codeforces 1039C/1040E. Network Safety]
题目链接:1039C - Network Safety/1040E - Network Safety 题目大意:不得不说这场比赛的题面真的是又臭又长...... 有n个点,m条边,每个点有对应的权值c ...
- Gym 102056L - Eventual … Journey - [分类讨论][The 2018 ICPC Asia-East Continent Final Problem L]
题目链接:https://codeforces.com/gym/102056/problem/L LCR is really an incredible being. Thinking so, sit ...
- CF1039C.Network Safety
目录 题目链接 题解 代码 题目链接 CF1039C.Network Safety 题解 对于一对相邻点,^异或后相同的值唯一a_i ^ t= b_i,a_i ^ b_i = t 对于不在t集合的直接 ...
随机推荐
- JavaScript 整理的基础的方法
innerHTML //innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML. innertext//innerText 属性返回文本值 没有结构信息 $("#test& ...
- mysql处理delete后不释放磁盘空间
myisam:optimize table table_name innodb:alter table table.name engine='innodb' 1. 问题描述在使用mysql的时候有时候 ...
- Unity的IGenerateNativePluginsForAssemblies:深入解析与实用案例
Unity IGenerateNativePluginsForAssemblies Unity是一款非常流行的游戏引擎,它支持多种平台,包括Windows.Mac.Linux.Android.iOS等 ...
- 6月有奖征文挑战,ZEGO开发者社区首季活动报名入口!
前 言 哈喽 开发者们: ZEGO即构科技作为一家20年技术积累的音视频云服务商,已经为全球200+个国家的企业服务,单日通话时长突破30亿+分钟,现下即构开发者社区举办首期征文活动!本次征文活动围绕 ...
- 通信原理知识点总结(XDU网信通原)
因为感觉第2章和第7章内容特别乱,当时老师讲的时候好像也没有按照一个正确的顺序来讲,所以我就把这两部分的内容按照结构顺序整理了一下,这样更便于理解和记忆 第2章 无线信道传输特性 显示不全点链接看完整 ...
- 智能制造之路—从0开始打造一套轻量级MOM平台
一.概述 面对数字化浪潮,MOM需求迈入上升期,数字化从"可选项"变成了企业竞争"必选项".制造行业每个工厂的生产逻辑都不尽相同,流程的梳理.数据统一化都需要调 ...
- HTTP&HTTPS协议
HTTP协议 1.什么是HTTP 超文本传输协议( HyperText Transfer Protoco,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议. HTTP(HyperT ...
- mysql基础_约束
介绍 约束对应的英语单词:constraint,在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的完整性.有效性. 约束的作用就是为了保证:表中的数据有效. 类型 非空约束:not ...
- nf_conntrack: table full, dropping packet
参考:linux 路由跟踪表满错误 nf_conntrack: table full, dropping packet 原理解决方法 说明 ping,dmesg 或者 /var/log/message ...
- 信创啊,信创。Solon 的 war 包,现在同时支持 jakarta.servlet(及 javax.servlet)容器了!
Solon 是个神奇的项目,不是基于 Servlet 的.但是又很支持 Servlet,尤其是 war 包.打起来还挺方便的. 如果你是做信创的(听说,很多信创项目是用 war 部署到 tomcat ...