POJ 3159 Candies 差分约束系统(dijsktra+前向星)
来源:互联网 发布:汉字书写教学软件 编辑:程序博客网 时间:2024/05/29 17:07
POJ 3159
题目大意
n个变量,满足m组约束条件,约束条件形如:
分析
要求最大值应该将约束条件转化为
转化后条件变成:
然后就插入a指向b权值为c的边,从
一开始写了个前向星+bfs版的spfa+STL queue=TLE,以为是STLqueue的原因,手写之后还是超时。
看了discuss后,上面说dfs版的spfa或dijkstra不会超时,于是改了dijkstra
一开始写dijjkstra还因为用结构体入的优先队列超时了,最后改成C++的pair过了,还好没让我手写堆。
代码
/*有向图前向星存边这道题没有成环的情况*/#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<cstdlib>#include<queue>#include<map>#include<algorithm>#include<set>using namespace std;const int INF=0x7fffffff;//无穷大const int MAXN=30005;struct Edge{ int to; int next; int w;}edge[500005];int n,m;int edgecount;int Head[50005];bool vis[50005];int dis[50005];int q[100005];long long int head,tail;struct Node{ int num; int dis; bool operator < (const Node &rhs)const { return dis>rhs.dis; }}node[50005];void Init_edge(){ memset(Head,-1,sizeof(Head)); edgecount=0;}void Add_Edge(int u,int v,int w){ edge[++edgecount].to=v; edge[edgecount].w=w; edge[edgecount].next=Head[u]; Head[u]=edgecount;}typedef pair<int,int> P;void Dijkstra(int s){ for(int i=1;i<=n;i++)dis[i]=INF; dis[s]=0; priority_queue<P,vector<P>,greater<P> > Q; Q.push(P(0,s)); while(!Q.empty()) { P p=Q.top(); Q.pop(); int u=p.second; if(dis[u]<p.first)continue; for( int k=Head[u];k!=-1;k=edge[k].next) { int w=edge[k].w; int v=edge[k].to; if(dis[v]>dis[u]+w) { dis[v]=dis[u]+w; Q.push(P(dis[v],v)); } } }}int main(){ int a,b,c; while(scanf("%d%d",&n,&m)!=EOF) { Init_edge(); for(int i=1;i<=m;i++) { scanf("%d%d%d",&a,&b,&c); Add_Edge(a,b,c); } Dijkstra(1); printf("%d\n",dis[n]); } return 0;}
0 0
- POJ 3159 Candies 差分约束系统(dijsktra+前向星)
- POJ——3159Candies(差分约束SPFA+前向星+各种优化)
- poj 3159 Candies (差分约束 先队列优化Dijkstra 链式前向星存储)
- POJ 3159 Candies(差分约束系统)
- 【POJ 3159】 Candies 差分约束系统
- POJ 3159 Candies 差分约束系统
- POJ 3159 Candies(差分约束系统)
- 差分约束系统 & poj 3159 Candies
- POJ 3159Candies 差分约束系统
- POJ 3159 Candies 差分约束系统
- POJ 1201 Candies [差分约束系统]
- POJ 3159 Candies [差分约束系统 SPFA+STACK]
- POJ - 3159 Candies(差分约束系统)
- 【POJ 3159】 Candies(差分约束系统)
- POJ 3159 Candies(差分约束系统)
- poj 3159 Candies(差分约束系统)
- POJ 3159 Candies(差分约束系统)
- poj 3159 Candies (差分约束系统裸题)
- 20170219am js
- NRF24L01 使用小结/自动应答/通道地址
- 系统的延时及定时机制
- Integer位操作技巧解析
- js跨域原理
- POJ 3159 Candies 差分约束系统(dijsktra+前向星)
- JavaSE学习路径
- Codeforces Round #396 (Div. 2) E. Mahmoud and a xor trip(树形dp+二进制按位拆分)
- AFNetworking2.0和AFNetworking3.0 的HTTPS的配置
- 三极管之——PNP与NPN
- Linux——touch命令
- 数据结构实验之链表七:单链表中重复元素的删除
- 对于中文的Cookie
- Android Binder系统的理解。