[SDOI2010]大陆争霸

思路:

   dijkstra模板;

代码:

#include <bits/stdc++.h>
using namespace std;
#define maxn 3005
#define ll long long
#define maxm 70002<<2
#define INF 1e13
struct NodeType {ll id,dis;bool operator<(const NodeType pos)const{return dis>pos.dis;}
};
ll n,m,E1[maxm],V1[maxm],W[maxm],head1[maxn];
ll cnt1,cnt2,E2[maxm],V2[maxm],head2[maxn],dis1[maxn];
ll dis2[maxn],du[maxn];
bool vis[maxn];
priority_queue<NodeType>que;
inline void in(ll &now)
{char Cget=getchar();now=0;while(Cget>'9'||Cget<'0') Cget=getchar();while(Cget>='0'&&Cget<='9'){now=now*10+Cget-'0';Cget=getchar();}
}
void edge_add(ll u,ll v,ll w)
{E1[++cnt1]=head1[u],V1[cnt1]=v,W[cnt1]=w,head1[u]=cnt1;
}
void edge_add(ll u,ll v)
{E2[++cnt2]=head2[u],V2[cnt2]=v,head2[u]=cnt2;
}
NodeType node(ll id_,ll dis_)
{NodeType res;res.id=id_,res.dis=dis_;return res;
}
int main()
{in(n),in(m);ll u,v,w;while(m--) in(u),in(v),in(w),edge_add(u,v,w);for(ll i=1;i<=n;i++){in(u),dis1[i]=INF;while(u--) in(v),edge_add(v,i),du[i]++;}dis1[1]=dis2[1]=0,que.push(node(1,0));while(!que.empty()){NodeType now=que.top();que.pop();if(vis[now.id]) continue;vis[now.id]=true;for(ll i=head1[now.id];i;i=E1[i]){if(dis1[V1[i]]>max(dis1[now.id],dis2[now.id])+W[i]){dis1[V1[i]]=max(dis1[now.id],dis2[now.id])+W[i];if(!du[V1[i]]) que.push(node(V1[i],max(dis1[V1[i]],dis2[V1[i]])));}}for(ll i=head2[now.id];i;i=E2[i]){dis2[V2[i]]=max(dis2[V2[i]],max(dis1[now.id],dis2[now.id]));if(!(--du[V2[i]])) que.push(node(V2[i],max(dis1[V2[i]],dis2[V2[i]])));}}cout<<max(dis1[n],dis2[n]);return 0;
}

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6980079.html

AC日记——[SDOI2010]大陆争霸 洛谷 P3690相关推荐

  1. AC日记——双栈排序 洛谷 P1155

    双栈排序 思路: 二分图染+模拟: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1005 #define ...

  2. AC日记——凌乱的yyy 洛谷 P1803

    题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加 ...

  3. AC日记——最大子段和 洛谷 P1115

    题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大. 输入输出格式 输入格式: 输入文件maxsum1.in的第一行是一个正整数N,表示了序列的长度. 第2行包含N个绝对值不大于10000 ...

  4. AC日记——神奇的幻方 洛谷 P2615(大模拟)

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

  5. P2446 [SDOI2010]大陆争霸

    P2446 [SDOI2010]大陆争霸 题意: n个点,m个边,wi为每个边的边权,对于每个点i,其被l个点保护着,也就是如果保护其的点没有被破坏,点i无法被破坏(也无法经过其前往其他点).现在从1 ...

  6. [Bzoj 1922] [SDOI2010] 大陆争霸

    1922: [Sdoi2010]大陆争霸 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 2274  Solved: 1025 [Submit][Sta ...

  7. B1922 [Sdoi2010]大陆争霸 最短路

    我一直都不会dij的堆优化,今天搞了一下...就是先弄一个优先队列,存每个点的数据,然后这个题就加了一点不一样的东西,每次的最短路算两次,一次是自己的最短路,另一次是机关的最短路,两者取最大值才是该点 ...

  8. BZOJ 1922: [Sdoi2010]大陆争霸

    Description 在一个遥远的世界里有两个国家:位于大陆西端的杰森国和位于大陆东端的 克里斯国.两个国家的人民分别信仰两个对立的神:杰森国信仰象征黑暗和毁灭 的神曾·布拉泽,而克里斯国信仰象征光 ...

  9. BZOJ1922: [Sdoi2010]大陆争霸

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1922 带限制最短路. 每个点真正的dis是max(dis[i],dis[v]),v是其保护点. ...

最新文章

  1. 取消mysql自动备份文件_MySQL自动备份并清理多少天前的备份文件
  2. Java里阻塞线程的三种实现方法
  3. 科​目​三​路​考​操​作​步​骤
  4. 重磅!容器集群监控利器 阿里云Prometheus 正式免费公测
  5. 1098: 复合函数求值(函数专题)
  6. CI集成 ckeditor 配置
  7. CenterOS防火墙操作
  8. JavaTPoint 移动开发教程【翻译完成】
  9. 实现计算机系统的资源共享,实现多操作系统计算机的资源共享.pdf
  10. Photoshop CC(2018)安装教程
  11. Android监听蓝牙与设备连接状态、关闭和打开状态
  12. 四非到保研厦大,我们还有多少路要走----技术人的保研之路
  13. 英文版win11怎么变成中文版?英文版win11改中文版教程
  14. 敏捷开发中团队如何面对失败的Sprint
  15. markdown文件转RST文件
  16. flask 登出功能
  17. mysql rpc_启用mysql作用
  18. 扑克牌java发牌_Java练习——扑克牌发牌器
  19. 刷程序对车危害_ECU到底能刷吗?刷了后对车有啥影响?
  20. 算法思想为什么重要,通过IMDB学习算法的设计思路

热门文章

  1. mooc c语言测验答案,MOOC-SPOC测试题(部分答案)(至数组一章)-C语言-宣城校区2016年...
  2. 如何改变本地git的根目录
  3. 环境变量空格符号带来的坑
  4. os.path.join的妙用
  5. 程序 峰谷值 提取_医学影像组学特征值(Radiomics Features)提取之Pyradiomics(一)理论篇...
  6. 2019春季暑期实习生正式批招聘笔试【腾讯】(回忆版)第二题
  7. 【分享】老调重弹,既懂技术又懂管理的人才发展中的实际问题
  8. 死锁解决(oracle)
  9. 程序猿个人发展(公司群分享)
  10. ElementUI中el-radio-group使用v-model绑定是属性为String字符串类型时不回显数据