C. Anna, Svyatoslav and Maps
给定一个有向图,给定一条有向路径,求一条顶点最少的路径,使得给定的路径是它的最短路
folyd预处理出任意两点间的最短路,然后判断是否可以缩点
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
#define sc(x) scanf("%I64d",&(x));
#define rd(A) for(int i=0;i<N;i++) scanf("%I64d",&A[i]);
#define P pair<ll,ll>
#define se second
#define fi first
#define pb push_back
#define inf 1e18
#define endl '\n'
#define mem(A) memset(A,0,sizeof A);
#define maxn 1000+10
#define maxm 1000000+10
string A[maxn];
ll N,T,a,b,M;
ll B[maxm];
ll v[maxm];
ll dis[maxn][maxn];
void folyd(int n)
{
for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
dis[i][j]=inf;
if(A[i][j-]=='')dis[i][j]=;
if(i==j)dis[i][j]=;
} } for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
for(int k=; k<=n; k++)
{
dis[i][j]=min(dis[i][k]+dis[k][j],dis[i][j]);
}
}
} }
signed main()
{
sc(N);
for(int i=; i<=N; i++)
{
cin>>A[i];
}
sc(M);
folyd(N);
for(int i=; i<M; i++)
{
sc(B[i]);
}
int k=;
v[]=B[];
v[]=B[];
int pre=B[];
int p=B[];
for(int i=; i<M; i++)
{
//cout<<k<<' '<<i<<endl;
if(k>&&dis[pre][B[i]]>dis[pre][p])
{
//cout<<pre<<" "<<p<<" "<<i<<" "<<B[i]<<dis[pre][B[i]]<<' '<<dis[pre][p]<<endl;
k--;
pre=v[k-];
p=v[k];
}
//if(dis[pre][B[i]]<=dis[pre][p])
{
v[++k]=B[i];
pre=v[k-];
p=v[k];
} }
cout<<k+<<'\n';
for(int i=; i<=k; i++)
{
cout<<v[i]<<' ';
}
}
C. Anna, Svyatoslav and Maps的更多相关文章
- Codeforces Round #581 (Div. 2) C. Anna, Svyatoslav and Maps (Floyd 算法,最短路)
C. Anna, Svyatoslav and Maps time limit per test2 seconds memory limit per test256 megabytes inputst ...
- [最短路,floyd] Codeforces 1204C Anna, Svyatoslav and Maps
题目:http://codeforces.com/contest/1204/problem/C C. Anna, Svyatoslav and Maps time limit per test 2 s ...
- Codeforces1204C. Anna, Svyatoslav and Maps (贪心 + Floyd)
题目链接:传送门 题目大意: 给出n<=100的有向图,和路径p,求p的最短子序列v,使得依次经过v中所有点的路径为p. 思路: 题意其实就是让我们求路径上的一些关键点v,对于所有的关键点:vi ...
- 1204C Anna, Svyatoslav and Maps
题目大意 给你一个有向图和一个路径 让你在给定路径中选出尽量少的点使得新路径的最短路长度和原路径相等 给定路径相邻两点间距离为1 分析 先floyd求出两点间最短路 之后每次对于点i找到所有跟它的最短 ...
- codeforces 1204C Anna, Svyatoslav and Maps(floyd+dp)
题目链接:http://codeforces.com/problemset/problem/1204/C 给定一组序列,P1,P2,P3...Pm,这是一组合法路径的序列,即任意的Pi和Pi+1之间有 ...
- Codeforces Round #581(Div. 2)
Codeforces Round #581(Div. 2) CF 1204 A. BowWow and the Timetable 题解:发现,$4$的幂次的二进制就是一个$1$后面跟偶数个$0$. ...
- CodeForces 1204 (#581 div 2)
传送门 A.BowWow and the Timetable •题意 给你一个二进制数,让你求小于这个数的所有4的幂的个数 •思路 第一反应是二进制与四进制转换 (其实不用真正的转换 QwQ) 由于二 ...
- CF#581 (div2)题解
CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...
- CF1204C
CF1204C-Anna, Svyatoslav and Maps 题意: 题目传送门 不想说了,阅读题. 解法: 先用floyd跑出各顶点间的最短路.把p(1)加入答案,然后沿着题目给的路径序列遍历 ...
随机推荐
- Github 上 Star 最多的个人 Spring Boot 开源学习项目(三)
网上连载了 Spring Boot 系列文章 这个开源项目就是 spring-boot-examples ,这是一个专注帮助初学者学习 Spring Boot 的开源项目,里面分享了各种场景下 Spr ...
- [转帖]怎样选择(FC-SAN)光纤通道(存储)交换机
怎样选择(FC-SAN)光纤通道(存储)交换机 https://blog.csdn.net/sinat_30171789/article/details/50510936 交换机的种类非常多... ...
- 【监控笔记】【2.3】扩展事件——慢查询SQL(执行超过3S的SQL)
--sql server 2008及以上才支持,2012及以上才支持GUI界面 msdn 扩展事件:点击打开链接 [1]T-SQL实现 基于 rpc_completed(远程过程调用已完成时发生) 事 ...
- sqlplus无法登陆?
关键词:error 6 initialize sqlplus,ORA-27101: shared memory realm does not exist 1.error 6 initialize sq ...
- Charles的app抓包配置和抓包节点为unknown、乱码、手机无法上网等问题的处理
关于手机端抓包配置Charles的一些配置,并且解决,请求存在unknown和内容为乱码的问题 关于请求节点为unknown.内容为乱码和手机端无法访问网络其实都是手机端证书配置问题导致,有的配置后还 ...
- JAVA基础--JAVA 集合框架(泛型、file类)
一.集合总结 集合:Collection体系.Map体系. Collection体系:单列集合的共性操作规则. List:列表,可以重复,有下标,拥有特有的迭代器ListIterator. Array ...
- 【7.10校内test】T1高级打字机
[题目链接luogu] 这是T1,但是是神仙T1: 对于前100%的数据很好写,直接数组模拟就可以了: (当然也有栈模拟的,据说有模拟炸了的) //50pts#include<bits/stdc ...
- catch that cow POJ 3278 搜索
catch that cow POJ 3278 搜索 题意 原题链接 john想要抓到那只牛,John和牛的位置在数轴上表示为n和k,john有三种移动方式:1. 向前移动一个单位,2. 向后移动一个 ...
- C#/Java 调用WSDL接口及方法
一.C#利用vs里面自带的“添加web引用”功能: 1.首先需要清楚WSDL的引用地址 如:http://www.webxml.com.cn/Webservices/WeatherWebServic ...
- DRF之Jwt 实现自定义和DRF小组件及django-filter插件的使用
一.DRF之Jwt 实现自定义 二.DRF(过滤,排序,分页)组件 三.Django-filter插件的使用和自定义 """ 1.drf-jwt手动签发与校验 :只是做t ...