[CodeForces238E]Meeting Her(图论+记忆化搜索)
Description
题目链接:Codeforces
Solution
因为路线随机,所以找出各路线最短路必须经过的点,在这个点必定能上车
直接floyd暴力找割点
然后不断用k条公交车路线来更新DP答案,直到更新不了为止,dp[i]表示从点i到终点的答案
Code
#include <cstdio>
#include <algorithm>
#include <cstring>
#define N 1100
using namespace std;
int n,m,g[N][N],S,T,s[N],t[N],dp[N],cnt[N],Ans[N];
bool cut[N][N],vis[N];
inline int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int dfs(int u,int cur){
if(vis[u]) return dp[u];
vis[u]=1;int tmp=-1;
for(int v=1;v<=n;++v)
if(g[u][v]==1&&g[u][t[cur]]==g[v][t[cur]]+1)
tmp=max(tmp,dfs(v,cur));
if(tmp==-1) tmp=1e9;
tmp=min(tmp,Ans[u]);
return dp[u]=tmp;
}
int main(){
n=read(),m=read(),S=read(),T=read();
memset(g,0x3f,sizeof(g));
for(int i=1;i<=n;++i)g[i][i]=0;//注意自己到自己初始化为0
while(m--){
int u=read(),v=read();
g[u][v]=1;//有向图
}
for(int k=1;k<=n;++k)
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
m=read();
for(int k=1;k<=m;++k){
s[k]=read(),t[k]=read();
if(g[s[k]][t[k]]==0x3f3f3f3f)continue;//这里不特判会RE
for(int i=1;i<=n;++i)
if(g[s[k]][i]+g[i][t[k]]==g[s[k]][t[k]])
cnt[g[s[k]][i]]++;
for(int i=1;i<=n;++i)
if(g[s[k]][i]+g[i][t[k]]==g[s[k]][t[k]]){
if(cnt[g[s[k]][i]]==1) cut[k][i]=1;
cnt[g[s[k]][i]]=0;
}
}
bool flag=1;
memset(dp,0x3f,sizeof(dp));
memset(Ans,0x3f,sizeof(Ans));
Ans[T]=0;
while(flag){
flag=0;
for(int i=1;i<=m;++i)
for(int j=1;j<=n;++j)
if(cut[i][j]){
memset(vis,0,sizeof(vis));
int tmp=dfs(j,i)+1;
if(Ans[j]>tmp){
flag=1;
Ans[j]=tmp;
}
}
}
if(Ans[S]>233) Ans[S]=-1;
printf("%d\n",Ans[S]);
return 0;
}
[CodeForces238E]Meeting Her(图论+记忆化搜索)的更多相关文章
- 非常完整的线性DP及记忆化搜索讲义
基础概念 我们之前的课程当中接触了最基础的动态规划. 动态规划最重要的就是找到一个状态和状态转移方程. 除此之外,动态规划问题分析中还有一些重要性质,如:重叠子问题.最优子结构.无后效性等. 最优子结 ...
- [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索
1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...
- 【BZOJ-3895】取石子 记忆化搜索 + 博弈
3895: 取石子 Time Limit: 1 Sec Memory Limit: 512 MBSubmit: 263 Solved: 127[Submit][Status][Discuss] D ...
- hdu3555 Bomb (记忆化搜索 数位DP)
http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others) Memory ...
- zoj 3644(dp + 记忆化搜索)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 思路:dp[i][j]表示当前节点在i,分数为j的路径条数,从 ...
- loj 1044(dp+记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26764 思路:dp[pos]表示0-pos这段字符串最少分割的回文 ...
- DP(记忆化搜索) + AC自动机 LA 4126 Password Suspects
题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 ...
- HDU1978 记忆化搜索
How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- bzoj4562: [Haoi2016]食物链--记忆化搜索
这道题其实比较水,半个小时AC= =对于我这样的渣渣来说真是极大的鼓舞 题目大意:给出一个有向图,求入度为0的点到出度为0的点一共有多少条路 从入读为零的点进行记忆化搜索,搜到出度为零的点返回1 所有 ...
随机推荐
- Mac 下显示隐藏文件或文件夹
Mac 操作系统 隐藏显示文件 显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:defaults write co ...
- 安装office提示Office 16 Click-to-Run Extensibility Component
今天安装office时,提示Office 16 Click-to-Run Extensibility Component或者Office 15 Click-to-Run Extensibility C ...
- TeamViewer安装使用
1.下载安装包 官网下载最新安装包 2.安装步骤 3.连接 输入密码即可控制伙伴电脑.
- .Net core2.0日志组件Log4net、Nlog简单性能测试
.Net core之Log4net.Nlog简单性能测试 比较log4net.nlog的文件写入性能(.netcore环境),涉及代码和配置如有不正确的地方,还请批评指正. 原创,转载请著名出处:ht ...
- SharePoint 2010 技术参数(整理)
今天整理一些 SharePoint 2010 的技术参数,其内容都来自 SharePoint-Sandbox 网站. 有些参数值是硬性的,比如列表单条记录的尺寸:而有些是为了使用和性能考虑的推荐值. ...
- ARM实验2 —— 蜂鸣器实验
PWM蜂鸣器实验: 实验内容: 编写PWM模块程序,通过PWM控制FS_4412平台上的蜂鸣器. 实验目的: 熟悉开发环境. 掌握exynos4412处理器的PWM功能. 实验平台: FS_4412开 ...
- SAP Fiori里的List是如何做到懒加载Lazy load的
今天一同事问我这个问题:S/4HANA Fiori应用里的列表,一旦Scroll到底部就会自动向后台发起新的请求把更多的数据读取到前台显示. 以Product Master这个应用为例,我点击搜索之后 ...
- 谷歌Web中文开发手冊:3响应式
https://developers.google.com/web/fundamentals/getting-started/your-first-multi-screen-site/responsi ...
- python 爬取猫眼榜单100(二)--多个页面以及多进程
#!/usr/bin/env python # -*- coding: utf- -*- # @Author: Dang Kai # @Date: -- :: # @Last Modified tim ...
- 2017.9.20 HTML学习总结----下拉列表标签
接上: 1.下拉列表框<option>,<selcct> (1)解释:在表单中,通过option select标记可设计一个下拉式的列表或带有滚动条的列表, 用户可以在列表中选 ...