bzoj 2763 [JLOI2011]飞行路线
来源:互联网 发布:c 编程 猜字小游戏 编辑:程序博客网 时间:2024/05/24 00:05
本题我用的二维spfa,dis[i][j]表示到i点用掉了j次免费机会的最优值,相当于动态规划,由于数据十分大,普通spfa会T掉3个点,所以考虑堆优化相信堆优化大家都懂,所以这些提示就够了#include<cstdio>#include<queue>#include<cstring>using namespace std;struct dd{int begin,end,juli,next;}jie[200000];struct pu{int id,cishu,sub;friend bool operator < (pu a,pu b){return a.sub>b.sub;}}wq;priority_queue<pu>que;int dis[10006][15],tot,n,m,k,a,b,c,head[10006],s,t;bool vis[10006][15];void add(int x,int y,int z){jie[++tot].end=y; jie[tot].juli=z; jie[tot].next=head[x]; head[x]=tot;}void spfa(int x){for(int i=0;i<=n;++i) for(int j=0;j<=k;++j) dis[i][j]=99999999;dis[x][0]=0; vis[x][0]=1;wq.id=x; wq.cishu=0; wq.sub=0;que.push(wq);while(!que.empty()){int yu=que.top().id;int lin=que.top().cishu;que.pop(); vis[yu][lin]=0;for(int i=head[yu];i!=-1;i=jie[i].next){int sf=jie[i].end;if(dis[sf][lin]>dis[yu][lin]+jie[i].juli){dis[sf][lin]=dis[yu][lin]+jie[i].juli;if(!vis[sf][lin]){vis[sf][lin]=1;wq.id=sf; wq.cishu=lin; wq.sub=dis[sf][lin];que.push(wq);}}if(lin+1<=k){ if(dis[sf][lin+1]>dis[yu][lin]){dis[sf][lin+1]=dis[yu][lin];if(!vis[sf][lin+1]){vis[sf][lin+1]=1;wq.id=sf; wq.cishu=lin+1; wq.sub=dis[sf][lin+1];que.push(wq);} }}}}}int main(){freopen("meg.in","r",stdin);freopen("meg.out","w",stdout);memset(head,-1,sizeof(head));scanf("%d%d%d",&n,&m,&k);scanf("%d%d",&s,&t);for(int i=1;i<=m;++i){ scanf("%d%d%d",&a,&b,&c); add(a,b,c); add(b,a,c);}spfa(s);printf("%d",dis[t][k]);return 0;}
0 0
- BZOJ 2763: [JLOI2011]飞行路线
- bzoj 2763 [JLOI2011]飞行路线
- BZOJ 2763 [JLOI2011]飞行路线
- BZOJ 2763 [JLOI2011]飞行路线
- bzoj 2763: [JLOI2011]飞行路线
- bzoj 2763: [JLOI2011]飞行路线
- BZOJ 2763 [JLOI2011]飞行路线
- bzoj[JLOI2011]飞行路线
- 【BZOJ】【JLOI2011】飞行路线
- BZOJ 2763 [JLOI2011]飞行路线 Dijikstra
- BZOJ 2763: [JLOI2011]飞行路线 最短路
- |BZOJ 2763|最短路|[JLOI2011]飞行路线
- bzoj 2763 [JLOI2011]飞行路线 Dijikstra 分层
- BZOJ[2763][JLOI2011]飞行路线 spfa
- 2763: [JLOI2011]飞行路线
- 2763: [JLOI2011]飞行路线
- 2763: [JLOI2011]飞行路线
- 2763: [JLOI2011]飞行路线
- ios开发,javascript直接调用oc代码
- 第六周项目三 数据结构实践——括号的匹配(栈)
- 强大的移动web前端框架zeptojs
- JDBC--编程之事务处理--回滚的简单实例
- C++_中的不可变类
- bzoj 2763 [JLOI2011]飞行路线
- Java泛型总结
- struts2中的标签什么时候用#,上面时候用%{},上面时候用%{#}小结
- Python Signal 信号 (二十一)
- 10-3总结
- 应用迁移,流量切换,数据切换. mysql 同步. 同构,异构两种情况分析.
- KMeans笔记
- sh: 0: getcwd() failed: No such file or directory解决
- iOS开发Provisioning profile解析