【noip 2013】车站分别

说明

对于 20%的数据,1 ≤ n, m ≤ 10;

对于 50%的数据,1 ≤ n, m ≤ 100;

对于 100%的数据,1 ≤ n, m ≤ 1000。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #define maxn 1001
 6 using namespace std;
 7 bool a[1001],f[1001],e[1001][1001];
 8 int r[1001],b[1001],sk[1001];
 9 int main(){
10     int n,m,s;
11     cin>>n>>m;
12     for(int i=1;i<=m;i++){
13         memset(a,0,sizeof(a));
14         cin>>s;
15         for(int j=1;j<=s;j++){
16             cin>>b[j];
17             a[b[j]]=1;
18         }
19         for(int j=b[1];j<=b[s];j++)
20             if(!a[j])
21                 for(int k=1;k<=s;k++){
22                     if(!e[j][b[k]]){
23                         e[j][b[k]]=1;
24                         r[b[k]]++;
25                     }
26                 }
27     }
28     int ans=0,top;
29     while(1){
30         top=0;
31         for(int i=1;i<=n;i++)
32             if(!r[i]&&!f[i]){
33                 sk[++top]=i;
34                 f[i]=1;
35             }
36         if(top==0) break;
37         for(int j=1;j<=top;j++){
38             for(int i=1;i<=n;i++){
39                 if(e[sk[j]][i]){
40                     e[sk[j]][i]=0;
41                     r[i]--;
42                 }
43             }
44         }
45         ans++;
46     }
47     cout<<ans<<"\n";
48     return 0;
49 }

 

经纬度

经纬度

经纬度是一种地理坐标系统,主要用来表示地球的球面坐标系,经纬度可以一定地球的其余一个岗位。南北方向的号称纬度,东西方向称为经度

纬度:赤道纬度周长最长,离赤道越远纬度周长越短,也就更加接近南北极。赤道以南称为南纬,赤道以北称为北纬纬度取值范围是0-90,赤道纬度微小为0,两级最大。

经度:经度也叫子午线,任意两条经线长度相等,初阶点都在南北极。经度以本初子午线为不一样,以东称为东经,以西称为西经东经为正数,西经为负数。经度取值范围在0-180,本初子午线为0。东经180度也就是西经180度就是加勒比海峡,圣劳伦斯湾.峡就是国际换日线,日期相差一天。

按照经度,地球被分为24个时区,每个时区又有分,分又含有秒。

难题叙述

一条单向的铁路线上,依次有编号为 1, 2, …,
n 的 n 个火车站。每个高铁站都有一个级别,最低为 1 级。现有若干趟车次在这条路线上行驶,每趟都满意如下要求:假诺那趟车次停靠了火车站 x,则始发站、终点站之间有着级别大于等于火车站 x 的都必须停靠。(注意:初叶站和终点站自然也真是事先已知需要停靠的站点)

比如,下表是 5 趟车次的周转状态。其中,前 4 趟班次均满意需求,而第 5 趟班次由于停靠了 3 号高铁站(2 级)却未停靠途经的 6号火车站(亦为 2 级)而不满意必要。

 5588葡京线路 1

现有 m 趟车次的周转景况(全体满意需求) ,试推算那 n 个火车站至少分为多少个不等的

级别。

【输入】

输入文件为 level.in。

首先行包蕴 2 个正整数 n, m,用一个空格隔开。

第 i +
1 行(1 ≤ i ≤ m)中,首先是一个正整数 si (2 ≤ si≤ n),表示第 i 趟班次有 si 个停靠站;接下去有 si 个正整数,表示拥有停靠站的号码,从小到大排列。每多少个数以内用一个空格隔开。输入保证拥有的车次都知足需求。

【输出】

出口文件为 level.out。

出口唯有一行,包罗一个正整数,即 n 个动车站最少划分的级别数。

域外地图

国外地图

百度地图近期一度得以支撑部分国度的国外地图服务,例如新加坡共和国、南韩、扶桑、泰王国等国家。能够在新型的百度地图app上直接查看、搜索那么些国家的一对POI,以及利用导航等成效。

目前甘休唯有百度一家支撑国外地图服务,高德暂时不帮忙那项劳动。在百度和高德不援救的地方,由于服务器并未多少,所以不会做渲染,看起来白白的一片。

输入输出样例

输入样例#1:

9 2 
4 1 3 5 6 
3 3 5 6 

出口样例#1:

2

输入样例#2:

9 3 
4 1 3 5 6 
3 3 5 6 
3 1 5 9 

输出样例#2:

3
该文章属于<简书 — 刘小壮>原创,转发请声明:

<简书 — 刘小壮>
http://www.jianshu.com/p/41179be5893a


本人现就职于国内某地图导航公司,那篇小说是我前段时间在合作社社团技术分享的一个PPT,小说内容也重点由这一个PPT的情节为主,通过那篇文章能够很好的帮你精晓地图导航这几个行当的相干技能。

PPT内容根本不外乎地图相关专业知识、百度和高德SDK全体框架、数据来源于、行业概览等组成。其中关于地图引擎相关的技巧知识,我向公司地图引擎开发同事求证过,那些PPT也给他们看过,也帮忙提出了中间的一部分标题。

那篇小说首要用来分享,其中倘诺有怎么着难点,还请多多提出,谢谢!


百度热力图

百度热力图

首先是由百度首先支持热力图功能,热力图作用预示着大数目时代越发近。热力图是根据百度地图移动客户端和SDK在那几个地区的拔取境况测算出来的,那几个猜想数据可以是网络请求、打开次数等,通过这个多少臆度出人士分布。通过事先百度在CCTV的电视公布来看,通过那么些数量竟然可以预测景区人山人海,幸免大型踩踏等群体性事件。

热力图随着同一区域的凝聚程度变化,颜色随之变深。可是出于总计格局的特征,总括的数目并不太准确,例如白天和夜间就有很大差别,只是当作参考。


实景地图

实景地图

实景地图最开首是Google研发的,那项技能须要软件和硬件相互的格外,以及大批量的数目处理才能一呵而就。

采集实景必要各式实景采集工具,包涵小车采集、自行车采集、人力采集等,这首若是由于必要应对各类采集地方。采集时将数据实时绑定GPS岗位,那样就通晓是在哪些岗位采集的。

数码搜集后要求工程师将数据进行复杂处理,才能形成我们看出的实景数据。实景数据一般都是静态的,而且不是实时更新的。实景数据为了保证被采集人的用户隐衷,须要对关键部位举办模糊处理,例如脸、车牌照等。

百度地图SDK框架

百度地图SDK框架

百度SDK主要模块划分:

  • 地图(基础成效,地图突显以及操作和各个覆盖物图层)
  • 检索(POI,地理编码、路径设计等)
  • 固定(提供单身稳定模块,经纬度根据国测局二次加密)
  • 工具(调用百度客户端,坐标转换等)
  • 科普雷达(检索用户新闻,查找附近的人,主要用以社交)
  • LBS云(区域搜索,百度服务器存储数据,能够协调操作,属于开发者自有数量)

百度SDK分为七个大的模块,可以根据需要下载对应的模块,这样使下载下来的SDK体积变小。

百度鉴权认证策略:用户可以通过三种方法与百度绽放云进行互动,包涵认证方式匿名方式。在SDK中有的是地点都用到了鉴权认证,例如加载地图时证实不通过不会来得地图,百度相比较推崇SDK的鉴权

POI数据

POI

POI数码是一种矢量数据,包含美食、商店、银行、加油站等都是POI数量,在地图上相似都以气泡或大头针表示。

多少搜集能够由此车载(An on-board)GPS摄像机采集,或从服务性互连网商家抓取或采购,由于百度和高德提供了对外的SDK,通过用户拔取地图SDK也可以取得一些数量。

百度的地形图数据紧要吝惜于四维图新和道道通,高德地图紧要以自采为主。一般这几个数据也会和公众点评、携程、口碑等网络服务商购买,互相之间也会采购POI数据。

地图定位

地图定位

移动端固定形式主要有两种:GPSWi-Fi基站,但是androidiOS还不太一样,android可以让用户挑选和装置那种定位形式,不过iOS是由系统为大家拔取的,大家一贯不操作定位形式的权能。iOS不一样意有第三方定位,所以现在地图应用都是对系统定位举办的包裹。假设有GPS信号,iOS系统会优先选项GPS艺术固定,然后是Wi-Fi定位,如果Wi-Fi信号不佳就会挑选基站定位。

在稳住中精确度最高的是GoogleGoogle应用大数目解析,记录每便选用Google地图的向来。下次再次定位时,间接按照Mac地址等音讯举行解析,进步一定精确度。

正如悲催的一个难点不怕,有部分相比老的iOS机器,没有GPS恒定模块,例如有些老版本iPad,那种装置在一向不Wi-Fi5588葡京线路,的气象下是力不从心稳定的。

矢量-3D地图

矢量地图

矢量地图

3D场景:重地图应用,以LBS为骨干功能,供给离线地图、更好的渲染效果、app内导航的。比如打车应用、骑行导航类应用,3D模型渲染后的功用相比较好,一般选取导航作用都必须用那些3D模型

矢量数据是从服务器将地图数据下载下来,然后在客户端实行合成绘制的,所以大家得以对地图的显示举办支配,可定制性更强。矢量图看起来更佳清晰,渲染效果比较好。可是矢量图对手机特性消耗很厉害,手机内存占用比较高,CPUGPU消耗都很大。对于服务器品质消耗就比2D场景特性小部分,因为服务器只是加载原始数据和向客户端进行传输,将合成绘制等这个图层渲染的绘图处理交给客户端来做。提升了客户端灵活性和更好的意义,就义了客户端的属性,有利有弊。

地理编码和逆地理编码

演示图片

地理编码:即地领会析,由详细的结构化地址得到相应的中纬度音讯,例如北京市海淀区中关村南大街27号的地址,就足以拿走到一个唯一的经纬度音信。

逆地理编码:即逆地驾驭析,由一个经纬度音信获取一个结构化地址信息,例如lng:116.31985,lat:39.959836经纬度,就足以获取到类似于地点的地理音讯。

iOS系统API、高德SDK、百度SDK中,都为大家提供了地理编码逆地理编码API,可是急需注意经纬度的更换,不同地图SDK重回的经纬度加密方法各异,大家在流传经纬度参数和吸收经纬度参数时,都急需做转换。

投影

投影

投影

做地图,投影的定义很重点。大家的地球是圈子的,地球的坐标是一个球面坐标,球面坐标是三维坐标(x、y、z),而我辈的地图是是二维的(x、y),需求将球面的三维坐标转换为平面的二维坐标。

坐标转换久用到了投影的概念,常用的投影有:圆柱投影圆锥投影方位投影,而在大家地图导航中运用墨卡托投影

MapKit和高德SDK区别

对比

右手图片的高德logo是紫色,并且突显在右下角,那是iOS系统的MapKit.framework

左侧图片的高德logo是红色,并且显示在左下角,那是高德自己的SDK。

苹果的MapKit只是利用了高德的数码,不过API是苹果自己开销的。

图层渲染

图层渲染

百度地图渲染分为八个图层渲染,每个图层渲染的目标也不平等,地图上自定义标注和遮住物统称为地图覆盖物,多个图层叠加起来形成矢量图。百度地图SDK地图等级如今为19级,可以按照缩放等级的两样渲染建筑物、道路、河流、学校、公园等内容。

百度地图扶助多点触摸、双击放大、多点缩短、旋转等手势操作。并且协理画点、折线、圆、多边形等操作,并且可以自定义热力图瓦片图等。

高德SDK结构

高德SDK结构

Annotation:单点标注,继承自UIView,可以应用UIView的局地基础属性,引入了选定机制(百度也是千篇一律的兑现,包蕴部分打车软件的手推车,都是采纳Annotation实现)。

Overlay:多点标注,引擎直接渲染,可以透过SDK的API自定义UI,多点标注用于标识路线或某一个区域。

Other:云搜索,地理编码和逆地理编码,导航路径设计,定位,POI搜索等。

墨卡托投影

墨卡托投影

百度、高德、Google都使用墨卡托投影墨卡托投影有一个很大的弊端,就是在高纬度(南纬北纬)地区发生巨大的变形。变形比较严重的地点在于俄联邦、格林兰岛、南美洲、南极洲等高纬度地区。

墨卡托投影

地点五个国家各自是:俄国、澳大金斯敦、中国、巴西、加拿大
大家将那八个国家放在一个纬度,来相比那三个国家,发现相差并不太大。可是假若放在上面那张图中,俄联邦顶好几个中国大大小小。

国外开发者开发了一个网站,这么些网站可以将不一样国家拉到同一个纬度,那时候就能显得出真正比例的国度面积。
网站地址:http://thetruesize.com/

百度地图SDK框架

百度地图SDK框架

地图开发专业知识

坐标加密
  • CLLocationManager中的经纬度加密(WGS-84)
  • MKMapView中的经纬度加密(GCJ-02)
  • 高德SDK中的经纬度加密(GCJ-02)
  • 百度SDK中的经纬度加密(使用GCJ-02再一次加密,叫做BD-09)

按照中国法规规定,地图提供商必须对地图经纬度实行偏移,国测局制定了一套加密标准,就是常用的GCJ-02经纬度坐标加密关键有二种格式,GPS坐标系
(WGS-84) 和火星坐标系 (GCJ-02) ,加密算法是开源的,可以搜寻到。

国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理地点展起先次加密。由于每家导航SDK提供方加密都不联合,所以百度、高德、谷歌多家地图数据并不合并,需求再度开展转换。

古德投影

古德投影

古德投影可以避免地图变形的题材,这种投影将地图分为多少个部分,然后沿赤道将多少个部分连接在联名。我们发现下面的格林兰岛已经被分成两部分,这种投影并不切合用来开发,而且看起来效果也不太窘迫。

地图SDK架构

跨平台引擎:
  • 百度地图的地图引擎使用openGLES绘制
  • 可见运转于支持C++的无绳电话机系统平台
  • 不等平台对应用层保持一致的API接口
  • 提供可以满足应用层的根底数据结构
  • 尽量少的借助系统接口,升高可移植性
  • 圆滑和可增添性

百度地图对于高德地图来说,扩展了一些实用性的效用,例如热力图、出游、个性化地图等。那几个职能都是高德所没有的,当然高德也有一部分很不错的意义,两者各有亮点。

百度地图和高德地图都有2D和3D成效,2D纯平面体现,没有楼宇拔高效果。

室内地图

室内地图

室内定位是一种组成3D定位的固化格局,那种稳定可以在室内举行固定。室内定位一向定位某个商铺在几楼的某部地方,而且可以拔取楼层。

在观念的定位中,楼内由于是多层,会促成定位重叠的题材,而且楼内GPS信号也不太好甚至未曾。所以出现了有的新技巧来落到实处楼内定位:AGPS(辅助全世界卫星定位系统)、Wi-Fi指纹定位、zigbee芯片定位、RFID智能标签技术、以及苹果推出的ibeacon,其中高德使用的是Wi-Fi指纹定位技术。

百度个性化地图

百度个性化地图

百度地图在16年十月份推出了个性化地图,SDK提供了个性化地图模版,通过地图模版更改底图颜色和样式。从百度开发者平台下载到模版,通过地图模版可以修改本地、水系、草地、道路、铁路、地铁、POI等颜色和样式,然后调用SDK提供的章程读取该模版即可。


栅格-2D地图

珊格图

珊格图

2D场地:轻地图应用,不难的地方分享、兴趣点标注、线路体现等。2D模型彰显效果不太好,在缩放比例较小的意况下,看起来比较模糊(缩放比例大一部分看起来清晰度仍可以够)。

栅格模型对此某一个地方的叙说,是透过重重层图片叠加组成的,每层代表分化新闻(例如道路)。栅格模型一般都会先渲染一个底图,然后是在底图的基础上叠加路况、POI等图层。

珊格图都是在服务器预处理的图样,从服务器下载处理好的图样到地头开展拼接即可,由于下载到本地是图形,本地不能再对图层进行更改。对于质量上的话,服务器进行图片合成质量消耗较大,可是客户端品质消耗比较小,内存占用也相比小,用起来会相比流利。

地图数据来自

高德

四维图新

境内相比较活跃的多寡采集商重若是高德和四维图新两家,百度绝非数量搜集资质(目前买断了道道通),所以数据首要依赖于四维图新。

四维图新和国家测绘局同盟相比较细致,数据来源于至关重倘若国家测绘局提供,也有部分自己测绘的数量。高德测绘和航拍能力还不易,主要自己测绘数据,部分数据也依靠国测局提供。数据测绘单位相互之间都有同盟,会相互购买自己一向不的数额。

在中原,谷歌(Google)地图或苹果地图等地图开发商,数据出自大概都是那两家店铺。

金字塔模型

金字塔模型

把一张世先生界地图突显到手机里是不可以的,所以就引入了金字塔模型的概念(也就是比例尺),大家得以依照分化的缩放比例,显示分裂的分辨率。

在地图应用中,咱们用指头缩放和松开地图,地图突显大小的更换,都是基于金字塔模型来协会瓦片图的。

三维地图

三维地图

三维地图是以三维地图数据为根基开发的,三维地图看起来更佳立体化,地图上可以显示出立体建筑及影子的效率,而且地图随着用户的操作,楼宇的角度、阴影等作用也会随之发生变化。

三维地图联网进程中,也油然则生过假三维地图。那种地图只好进展平面平移,不可以开展旋转操作,是数据平面地图三维地图对接的产物。

瓦片坐标系

瓦片坐标系

金字塔模型匹配使用的就是瓦片坐标系,在差距的缩放等级下,同一块区域瓦片个数也是分歧的。

瓦片越来越多就象征这一区域展现越详细,缩放比例也就越大。瓦片坐标系在2D和3D的情景下都会被采纳,大家在网络不佳的情形下得以见见地图瓦片的加载进程以及瓦片的大小、位置。

地图产业链

地图产业链

活跃计算

率先张图是一份14年的统计报告,那份总计报告计算不太周详,部分导航应用尚未被含有在内。

在那份统计报告中,我们发现高德是绝无仅有一个蒙面整条产业链的商店,在产业链的每个环节都存在高德的身影。

二〇一四年十月,阿里对高德完毕了15亿法郎的收购,高德成为阿里旗下全资子公司。