poj1062
经典的图论建模题;
先拿开的等级问题不看;
每个物品本身的价格就是有一个自定义源点到这个点距离;
有了A物品B物品优惠为W就代表由B到A的有向路权值为W;
最后的最小花费就是源点的点1的最短路径(酋长编号总是1);
然后我们再考虑等级问题。穷举每个点作为最高等级,相应的就可以确定哪些点不能访问,然后求最短路;
最终找一个以点i等级为最高等级的情况使源点到1的最短路径最小即可,易知时间复杂度为O(n^3);
var tree:array[..] of integer;
x,y:array[..] of longint;
a:array[..] of longint; //表示离散化乎的标号对应的区间
f:array[..] of boolean;
ff:array[..] of boolean;
i,j,k,n,t,s:longint;
procedure sort(l,r: longint);
var i,j,x,y: longint;
begin
i:=l;
j:=r;
x:=a[(l+r) div ];
repeat
while a[i]<x do inc(i);
while x<a[j] do dec(j);
if not(i>j) then
begin
y:=a[i];
a[i]:=a[j];
a[j]:=y;
inc(i);
j:=j-;
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end;
procedure putdown(i,p,q:longint); //传递标记
begin
if p<>q then
begin
tree[i*]:=tree[i];
tree[i*+]:=tree[i];
tree[i]:=;
end;
end;
procedure build(i,p,q,l,r,x:longint);
var m:longint;
begin
if (a[p]>=l) and (r>=a[q]) then tree[i]:=x
else begin
if tree[i]<> then putdown(i,p,q);
m:=(p+q) div ;
if l<=a[m] then
begin
build(i*,p,m,l,r,x);
end;
if r>a[m] then
begin
build(i*+,m+,q,l,r,x);
end;
end;
end;
procedure dfs(i,p,q:longint); //统计多少可见海报
var m:longint;
begin
if (tree[i]>) and not ff[tree[i]] then
begin
s:=s+;
ff[tree[i]]:=true;
end
else if (tree[i]=) and (p<>q) then
begin
m:=(p+q) div ;
dfs(i*,p,m);
dfs(i*+,m+,q);
end;
end;
begin
readln(t);
for i:= to t do
begin
k:=;
fillchar(f,sizeof(f),false);
readln(n);
for j:= to n do
begin
readln(x[j],y[j]);
if not f[x[j]] then //离散化
begin
k:=k+;
a[k]:=x[j];
f[x[j]]:=true;
end;
if not f[y[j]] then
begin
k:=k+;
a[k]:=y[j];
f[y[j]]:=true;
end;
end;
sort(,k);
fillchar(tree,sizeof(tree),);
for j:= to n do
build(,,k,x[j],y[j],j);
s:=;
fillchar(ff,sizeof(ff),false);
dfs(,,k);
writeln(s);
end;
end.
PS:千万不要以为酋长等级最高……
poj1062的更多相关文章
- POJ1062昂贵的聘礼[最短路建模]
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 45892 Accepted: 13614 Descripti ...
- POJ-1062 昂贵的聘礼---Dijkstra+枚举上界
题目链接: https://vjudge.net/problem/POJ-1062 题目大意: 中文题 思路: 1是终点,可以额外添加一个源点0,0到任意一节点的距离就是这个点的money,最终求的是 ...
- POJ1062不错的题——spfa倒向建图——枚举等级限制
POJ1062 虽然是中文题目但是还是有一定几率都不准题目意思的:1.所有可能降价的措施不是降价多少钱而是降至多少钱2.等级范围:是你所走的那一条路中所有人中最好最低等级差不允许超过limit限制 思 ...
- [poj1062]昂贵的聘礼_最短路_离散化
昂贵的聘礼 poj-1062 题目大意:原文链接?不是英文题,自己看 注释:$1\le N \le 100$. 想法:开始的想法有些过于简单,因为落下了一个条件:就是等级限制是一条路径上的任意两点而不 ...
- POJ-1062 昂贵的聘礼 有限制的最短路
题目链接:https://cn.vjudge.net/problem/POJ-1062 题意 虽然是中文题,还是简单复述一下吧 我们想要酋长的女儿作为老婆.作为交换,酋长想要点钱. 酋长提出可以用其他 ...
- POJ-1062 昂贵的聘礼 (最短路)
POJ-1062 昂贵的聘礼:http://poj.org/problem?id=1062 题意: 有一个人要到1号点花费最少的钱,他可以花费一号点对应的价格,也可以先买下其他一些点,使得费用降低. ...
- POJ-1062(原始dijiksra算法+思维)
昂贵的婚礼 POJ-1062 这道题目一开始看的时候难以理解,但是仔细想,还是可以和最短路联系的,我觉得类似于硬币交换等问题. 以下需要注意几个点,第一就是因为题目规定如何和超出了等级限制的人交易,则 ...
- poj1062 昂贵的聘礼
Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...
- poj1062昂贵的聘礼(Dijkstra**)
/* 题意: 物主有一个物品,价值为P,地位为L, 以及一系列的替代品Ti和该替代品所对应的"优惠"Vi g[u][i] 表示的是u物品被i物品替换后的优惠价格!(u>0, ...
- ACM/ICPC 之 昂贵的聘礼-最短路解法(POJ1062)
//转移为最短路问题,枚举必经每一个不小于酋长等级的人的最短路 //Time:16Ms Memory:208K #include<iostream> #include<cstring ...
随机推荐
- [Oracle]Oracle学习小结(1)
1.查看Oracle数据库中的所有用户: (1)使用具有DBA权限的账户登录数据库: (2)执行select username from dba_users. SQL> conn sys 输入口 ...
- @Html.TextBox 的使用
@Html.TextBox( }); //限制 text 的最大输入字符数为 10个 @Html.TextBox("users","",new {@class= ...
- CodeForces 492B
Description Vanya walks late at night along a straight street of length l, lit by n lanterns. Consid ...
- Asp.Net MVC过滤器小试牛刀
在上学期间学习的Asp.Net MVC,基本只是大概马马虎虎的了解,基本处于知其然而不知其所以然.现在到上班,接触到真实的项目,才发现还不够用,于是从最简单的过滤器开始学习.不得不说MVC的过滤器真是 ...
- OnDrawGizmos函数
如果你想绘制可被点选的gizmos,执行这个函数. 这允许你在场景中快速选择重要的物体. 注意: OnDrawGizmos使用相对鼠标坐标 using UnityEngine; using Syste ...
- Hibernate从入门到精通(二)Hibernate实例演示
上篇Hibernate从入门到精通(一)JDBC简介,我们主要对JDBC进行了简单介绍和使用说明,这次我们做一个Hibernate简单实例,通过这个实例对比Hibernate和JDBC,了解Hiber ...
- /****************** Attributes ********************/
/*预定义字符属性的文本.如果钥匙不在字典,然后使用默认值,如下所述. */ 以下属性是IOS6的 NSVerticalGlyphFormAttributeName NS_AVAILABLE_IOS( ...
- wordpress换域名后无法登陆的解决方案
第一步:登录到你的数据库管理页面,找到wp_options表: 第二步:将表中的siteurl和home字段的值修改为当前的新域名,siteurl值的修改和home值的修改同理.如下图:
- 团体程序设计天梯赛-练习集L1-013. 计算阶乘和
L1-013. 计算阶乘和 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 对于给定的正整数N,需要你计算 S = 1! + 2 ...
- 初试docker以及搭建mysql on docker
前一阵阅读了google的borg论文,在最后的related works和总结中发现了kubernetes.从论文中了解的kubernetes这个东西很有意思,按照论文所说,它的实现有希望解决an ...