【POJ】1062 昂贵的聘礼 (最短路)
题目
传送门:QWQ
分析
最短路显然,但不好搞地位等级。。。。。
地位等级不好搞?那么就暴力。。
枚举我们允许的地位等级,跑最短路。
所以$ n^2logn $出100什么鬼啊,很有迷惑性啊
还有4篇cf没补博客好慌啊
代码
细节不少,WA了好几发
//#include <bits/stdc++.h>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <queue>
#include <cstring>
using namespace std;
const int maxn=, INF=1e9;
struct Edge{
int u,v,dis;
};
vector<Edge> edges; vector<int> G[maxn];
void Addedge(int u,int v,int dis){
edges.push_back((Edge){u,v,dis}); G[u].push_back(edges.size()-);
}
int l[maxn], L, R, val[maxn];
struct HeapNode{
int x,dis;
bool operator < (const HeapNode& a) const{ return dis>a.dis; }
};
priority_queue<HeapNode> que;
int d[maxn],vis[maxn], n;
int dijkstra(int s ){
if(l[s]<L || l[s]>R) return val[s];
memset(d,,sizeof(d)); memset(vis,,sizeof(vis));
d[s]=; que.push((HeapNode){s,}); //vis[s]=1;
while(!que.empty()){
HeapNode x=que.top(); que.pop();
if(vis[x.x]) continue; vis[x.x]=;
int u=x.x;
for(int i=;i<G[u].size();i++){
Edge& e=edges[G[u][i]];
if(l[e.v]>=L && l[e.v]<=R && d[e.v]>d[u]+e.dis){
d[e.v]=d[u]+e.dis;
que.push((HeapNode){e.v,d[e.v]});
}
}
}
int ans=1e9;
for(int i=;i<=n;i++){
ans=min(ans,d[i]+val[i]);
}
return ans;
}
int main(){
int m; scanf("%d%d",&m,&n);
int x, q=,b,c;
for(int i=;i<=n;i++){
scanf("%d%d%d",&val[i],&l[i],&x);
while(x--){
scanf("%d%d",&b,&c); Addedge(i,b,c);
}
q=max(q,l[i]);
}
int ans=INF;
for(int i=;i<=max(q-m,n);i++){
L=i; R=i+m;
ans=min(ans,dijkstra());
}
printf("%d\n",ans);
return ;
}
【POJ】1062 昂贵的聘礼 (最短路)的更多相关文章
- POJ - 1062 昂贵的聘礼(最短路Dijkstra)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d & %I64u SubmitStatus Descr ...
- POJ 1062 昂贵的聘礼 最短路 难度:0
http://poj.org/problem?id=1062 #include <iostream> #include <cstring> #include <queue ...
- POJ 1062 昂贵的聘礼 最短路+超级源点
Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...
- poj 1062 昂贵的聘礼 最短路 dijkstra
#include <cstdio> #include <cmath> #include <cstring> #include <ctime> #incl ...
- 最短路(Dijkstra) POJ 1062 昂贵的聘礼
题目传送门 /* 最短路:Dijkstra算法,首先依照等级差距枚举“删除”某些点,即used,然后分别从该点出发生成最短路 更新每个点的最短路的最小值 注意:国王的等级不一定是最高的:) */ #i ...
- POJ 1062 昂贵的聘礼(图论,最短路径)
POJ 1062 昂贵的聘礼(图论,最短路径) Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女 ...
- poj 1062 昂贵的聘礼 (dijkstra最短路)
题目链接:http://poj.org/problem?id=1062 昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submission ...
- 最短路POJ 1062 昂贵的聘礼
C - 昂贵的聘礼 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit St ...
- POJ 1062 昂贵的聘礼 (最短路)
昂贵的聘礼 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/M Description 年轻的探险家来到了一个印第安部落里.在那里 ...
- poj 1062 昂贵的聘礼 (有限制的最短路)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 56594 Accepted: 17083 Descripti ...
随机推荐
- .net core开发 (一)
1..net core: 是微软开发的另外一个可以跨平台的.net 2..net framework,.net core, mono的关系三者都是.net在不同操作系统的实现 3. .net core ...
- ffmpeg_资料_01
1. 用ffmpeg制作推流工具,实现推流系统声音和桌面到rtmp服务器-CSDN论坛-CSDN.NET-中国最大的IT技术社区.html http://bbs.csdn.net/topics/392 ...
- KMP与AC自动机
KMP算法主要思想就是预处理出失配函数, 从而减少匹配失败时的回溯, 复杂度是$\Theta(m+n)$, 已达到理论下界 c++代码如下 int n, f[N]; char t[N], p[N]; ...
- WEB前端性能优化常见方法
1.https://segmentfault.com/a/1190000008829958 (WEB前端性能优化常见方法) 2..https://blog.csdn.net/mahoking/arti ...
- IOS-网络(监听网络状态)
// // BWNetWorkTool.h // IOS_0131_检测网络状态 // // Created by ma c on 16/1/31. // Copyright © 2016年 博文科技 ...
- BZOJ3707 圈地
只会O(n ^ 3)路过= = OrzOrzOrzOrzOrz "出题人题解: 显然,这时候暴力枚举会T.于是我们转变一下思路,如果我们确定了2个点以后,第三个点有必要去盲目的枚举吗?答案是 ...
- 论integer是地址传递还是值传递(转)
原文链接:http://blog.csdn.net/witsmakemen/article/details/46874717 论integer是地址传递还是值传递 Integer 作为传参的时候是地址 ...
- ImportError: No module named 'serial'
/******************************************************************************** * ImportError: No ...
- Linux 中同名进程的查杀
长久一段时间没有做任何工作总结了,如果用工作忙来敷衍那是欺骗自己,承认这一段时间拒绝进步了. 在系统运维中,有许多同名进程需要kill是常有的事情, 数一下battle这个进程的数量 [root@HD ...
- 51Nod 1081:子段求和(前缀和)
1081 子段求和 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和 ...