当前位置: 首页 > news >正文

禅城网站建设公司价格/谷歌google搜索引擎入口

禅城网站建设公司价格,谷歌google搜索引擎入口,旅游网站设计需求分析,wordpress页面添加图片Description Input 第 一行包含两个整数N、M。N表示路口的个数,M表示道路条数。接下来M行,每行两个整数,这两个整数都在1到N之间,第i1行的两个整数表示第i条道路 的起点和终点的路口编号。接下来N行,每行一个整数&…

Description

Input

第 一行包含两个整数N、M。N表示路口的个数,M表示道路条数。接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路 的起点和终点的路口编号。接下来N行,每行一个整数,按顺序表示每个路口处的ATM机中的钱数。接下来一行包含两个整数S、P,S表示市中心的编号,也就 是出发的路口。P表示酒吧数目。接下来的一行中有P个整数,表示P个有酒吧的路口的编号

Output

输出一个整数,表示Banditji从市中心开始到某个酒吧结束所能抢劫的最多的现金总数。

Sample Input

6 7
1 2
2 3
3 5
2 4
4 1
2 6
6 5
10
12
8
16
1 5
1 4
4
3
5
6

Sample Output

47

HINT

50%的输入保证N, M<=3000。所有的输入保证N, M<=500000。每个ATM机中可取的钱数为一个非负整数且不超过4000。输入数据保证你可以从市中心沿着Siruseri的单向的道路到达其中的至少一个酒吧。

Source

 额,刷水凑数...tarjan缩点后是一个DAG,然后就只求DAG最长路,可以直接spfa;至于酒吧的话就缩点的时候或一下即可

// MADE BY QT666
#include<cstdio>
#include<algorithm>
#include<vector>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
const int N=500050;
int gi()
{int x=0,flag=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') flag=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();return x*flag;
}
int head[N],nxt[N],to[N],v[N],zhan[N],fr[N],dfn[N],low[N],vis[N],tt,cnt,n,m,pd[N],check[N],tot,sum;
int S,P,w[N],dis[N],q[N*20],ans;
vector<int>p[N];
void tarjan(int x){dfn[x]=low[x]=++tt;zhan[++sum]=x;vis[x]=1;int y;for(int i=head[x];i;i=nxt[i]){y=to[i];if(!dfn[y]){tarjan(y);low[x]=min(low[x],low[y]);}else if(vis[y]) low[x]=min(low[x],dfn[y]);}if(low[x]==dfn[x]){tot++;do {y=zhan[sum--];vis[y]=0,w[tot]+=v[y];pd[tot]|=check[y],fr[y]=tot;for(int i=head[y];i;i=nxt[i]) p[tot].push_back(to[i]);} while(y!=x);}
}
void spfa(){q[0]=fr[S];dis[fr[S]]=w[fr[S]];int t=0,sum=1;while(t<sum){int now=q[t++];for(int i=0;i<p[now].size();i++){int y=fr[p[now][i]];if(y!=now&&dis[y]<dis[now]+w[y]){dis[y]=dis[now]+w[y];q[sum++]=y;}}}
}
void lnk(int x,int y){to[++cnt]=y,nxt[cnt]=head[x],head[x]=cnt;}
int main(){n=gi(),m=gi();for(int i=1;i<=m;i++){int x=gi(),y=gi();lnk(x,y);}for(int i=1;i<=n;i++) v[i]=gi();S=gi(),P=gi();for(int i=1;i<=P;i++){int x=gi();check[x]=1;}tarjan(S);spfa();for(int i=1;i<=tot;i++) if(pd[i]) ans=max(ans,dis[i]);printf("%d\n",ans);
}

 

转载于:https://www.cnblogs.com/qt666/p/6880324.html

http://www.lbrq.cn/news/758593.html

相关文章:

  • vs做网站登录界面/网站源码下载
  • 域名停靠app大全下载网站入口/下载百度浏览器
  • 国内做贵金属返佣比较多的网站/怎么让网站排名上去
  • 阿里服务器怎么做网站服务器吗/网络营销总结及体会
  • 企业宣传网站设计论文/谷歌关键词排名查询
  • 地方门户网站的特点/seo网站诊断报告
  • 做电影网站有风险吗/百度关键词排名联系方式
  • 上海松江做网站公司/武汉seo招聘信息
  • 网站弹屏广告怎么做的/seo最新教程
  • 公司建站服务/独立站推广
  • 阿里云虚拟主机多网站吗/微信公众号怎么创建
  • 民制作网站哪家便宜/网络推广及销售
  • 网站建设制作设计开发/抖音关键词排名优化软件
  • 虚拟网站怎么做/搜索引擎优化的作用
  • 四个商城建设/网站seo啥意思
  • PHP网站开发用什么电脑/成都比较靠谱的seo
  • 给律师做推广的网站靠谱么/百度云网盘资源搜索引擎入口
  • 重庆渝兴建设有限公司网站/广州网站推广
  • 建设通是什么网站/seo是什么职位缩写
  • 区块链系统app开发/百度推广seo是什么意思
  • 做网站靠什么盈利/引流推广犯法吗
  • 龙岩小程序设计/福清seo
  • 武汉做网站gaiqun/济南百度推广代理商
  • 网站搭建工具的种类/新网站快速收录
  • 成都网站建设培训班/发外链的网址
  • 票务网站模板/钦州seo
  • 地方网站如何做/公司网络推广方法
  • 网站广告连接如何做/软文营销成功案例
  • 登陆不了建设银行网站/大型营销型网站制作
  • 商城网站做推广方案/b2b自动发布信息软件
  • sqlsever的sql转postgresql的sql的方言差异
  • 访问者模式C++
  • 中国象棋人机对战
  • 【161页PPT】智慧方案企业数字化转型概述(课件)(附下载方式)
  • @[TOC](计算机是如何⼯作的) JavaEE==网站开发
  • Linux网络基础(一)