当前位置: 首页 > news >正文

poj1062

经典的图论建模题;

先拿开的等级问题不看;

每个物品本身的价格就是有一个自定义源点到这个点距离;

有了A物品B物品优惠为W就代表由B到A的有向路权值为W;

最后的最小花费就是源点的点1的最短路径(酋长编号总是1);

然后我们再考虑等级问题。穷举每个点作为最高等级,相应的就可以确定哪些点不能访问,然后求最短路;

最终找一个以点i等级为最高等级的情况使源点到1的最短路径最小即可,易知时间复杂度为O(n^3);

  1 var tree:array[0..80000] of integer;
  2     x,y:array[0..10010] of longint;
  3     a:array[0..20010] of longint;         //表示离散化乎的标号对应的区间
  4     f:array[0..10000000] of boolean;
  5     ff:array[0..10010] of boolean;
  6     i,j,k,n,t,s:longint;
  7 procedure sort(l,r: longint);
  8   var i,j,x,y: longint;
  9   begin
 10     i:=l;
 11     j:=r;
 12     x:=a[(l+r) div 2];
 13     repeat
 14       while a[i]<x do inc(i);
 15       while x<a[j] do dec(j);
 16       if not(i>j) then
 17       begin
 18         y:=a[i];
 19         a[i]:=a[j];
 20         a[j]:=y;
 21         inc(i);
 22         j:=j-1;
 23       end;
 24     until i>j;
 25     if l<j then sort(l,j);
 26     if i<r then sort(i,r);
 27   end;
 28 procedure putdown(i,p,q:longint);         //传递标记
 29   begin
 30     if p<>q then
 31     begin
 32       tree[i*2]:=tree[i];
 33       tree[i*2+1]:=tree[i];
 34       tree[i]:=0;
 35     end;
 36   end;
 37 procedure build(i,p,q,l,r,x:longint);
 38   var m:longint;
 39   begin
 40     if (a[p]>=l) and (r>=a[q]) then tree[i]:=x
 41     else begin
 42       if tree[i]<>0 then putdown(i,p,q);
 43       m:=(p+q) div 2;
 44       if l<=a[m] then
 45       begin
 46         build(i*2,p,m,l,r,x);
 47       end;
 48       if r>a[m] then
 49       begin
 50         build(i*2+1,m+1,q,l,r,x);
 51       end;
 52     end;
 53   end;
 54 procedure dfs(i,p,q:longint);              //统计多少可见海报
 55   var m:longint;
 56   begin
 57     if (tree[i]>0) and not ff[tree[i]] then
 58     begin
 59       s:=s+1;
 60       ff[tree[i]]:=true;
 61     end
 62     else if (tree[i]=0) and (p<>q) then
 63     begin
 64       m:=(p+q) div 2;
 65       dfs(i*2,p,m);
 66       dfs(i*2+1,m+1,q);
 67     end;
 68   end;
 69 begin
 70   readln(t);
 71   for i:=1 to t do
 72   begin
 73     k:=0;
 74     fillchar(f,sizeof(f),false);
 75     readln(n);                        
 76     for j:=1 to n do 
 77     begin
 78       readln(x[j],y[j]);
 79       if not f[x[j]] then                        //离散化
 80       begin
 81         k:=k+1;
 82         a[k]:=x[j];
 83         f[x[j]]:=true;
 84       end;
 85       if not f[y[j]] then
 86       begin
 87         k:=k+1;
 88         a[k]:=y[j];
 89         f[y[j]]:=true;
 90       end;
 91     end;
 92     sort(1,k);
 93     fillchar(tree,sizeof(tree),0);
 94     for j:=1 to n do                     
 95       build(1,1,k,x[j],y[j],j);
 96     s:=0;
 97     fillchar(ff,sizeof(ff),false);
 98     dfs(1,1,k);
 99     writeln(s);
100   end;
101 end.
View Code

PS:千万不要以为酋长等级最高……

 

转载于:https://www.cnblogs.com/phile/p/4473312.html

相关文章:

  • 解决iview多表头动态更改列元素发生的错误
  • 比特币淘金热席卷中国专业“挖矿机”受疯抢
  • Python的变量和常量
  • PHP——自定义比较算法
  • 【转】Python 内置函数 locals() 和globals()
  • Openssl加密解密应用
  • 敏捷开发的6个实战经验
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • MySQL通过命令导出导入数据和表
  • python列表中的深浅copy
  • mysql高可用方案之主从架构(master-slave)
  • 中国HBase技术社区第二届MeetUp ——HBase技术解析及应用实践
  • Centos 7.4 安装 Redis 全过程
  • cocos2d-x引擎库binary版本制作(Windows环境)
  • 解决jsfl 弹出警告
  • SegmentFault for Android 3.0 发布
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【技术性】Search知识
  • Flex布局到底解决了什么问题
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • springMvc学习笔记(2)
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 理清楚Vue的结构
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前嗅ForeSpider教程:创建模板
  • 使用 QuickBI 搭建酷炫可视化分析
  • 微信小程序填坑清单
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​虚拟化系列介绍(十)
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #define,static,const,三种常量的区别
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (Python) SOAP Web Service (HTTP POST)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (初研) Sentence-embedding fine-tune notebook
  • (剑指Offer)面试题34:丑数
  • (十六)一篇文章学会Java的常用API
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)SpringBoot3---尚硅谷总结
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET Micro Framework初体验
  • .NET MVC第三章、三种传值方式
  • .Net Redis的秒杀Dome和异步执行
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net开发时的诡异问题,button的onclick事件无效
  • .Net面试题4