【开车旅行】题解(NOIP2012提高组)】的更多相关文章

这道题是真滴火!(一晚上加一节信息课!) 先链接一下题目:luoguP1081 开车旅行 首先,这个预处理就极其变态,要与处理出每一个点往后走A会去哪里,B会去哪里.而且还必须O(nlogn)给它跑出来,反正这就要了我好久好久的时间,还没想出来!那么我们来慎重思考一下: 1.既然要让我们这么快的时间内把一个点东边的高度最近和次近找出来,只能考虑先排序.那我们就先让它以高度为关键字排一遍序,肯定还是要记录一下原先的序号的. 2.模拟一下,如果我们要找第一个点(最西边的点)的预处理,那不就是在排完序…
分析 首先我们可以发现,两个询问都可以通过一个子程序来求. 接着,如果每到一个城市再找下一个城市,显然是行不通的.所以首先先预处理从每一个城市开始,小A和小B要去的城市.预处理的方法很多,我用的是双向链表:按高度把城市排序,用双向链表把每个城市的相邻的城市里连起来,再从每个城市按双向链表往两边搜,如果搜到的城市在这个城市的西边就删掉,否则记录.左右分别记录两个城市,排个序就可以的出小A和小B要去的城市了. 然后我们就可以发现这是一棵树,所以倍增. 我们设g[i][j]指从i城市走j^2轮走到的点…
题目: 题目背景 NOIP2012 提高组 DAY2 试题. 题目描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树,1 号城市是首都,也是树中的根节点. H 国的首都爆发了一种危害性极高的传染病.当局为了控制疫情,不让疫情扩散到边境城市(叶子节点所表示的城市),决定动用军队在一些城市建立检查点,使得从首都到边境城市的每一条路径上都至少有一个检查点,边境城市也可以建立检查点.但特别要注意的是,首都是不能建立检查点的. 现在,在 H 国的一些城市中已经驻扎有军队,且…
国王游戏[NOIP2012提高组DAY1] Time Limit:1000MS Memory Limit:128000K Description 国王游戏(game.cpp/c/pas) [问题描述] 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这n位大臣排成一排,国王站在队伍的最前面.排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人左手上的数的乘积…
开车旅行 [NOIP2012 D1T3] 倍增 首先令\(a[i]\)表示从i出发最近的城市下标,\(b[i]\)表示从i出发第二近的城市下标 可以维护一个\(\text{set<pair<int,int> >}\)记录城市海拔和城市编号,然后在set里二分得到a和b 考虑\(f[i][j]\)表示从i出发,一共开2^j次车,开到那个城市 \(g[i][j]\)表示从i出发,开2^j次车的总距离 当j大于1的时候 \(f[i][j]=f[f[i][j-1]][j-1]\) \(g[…
题目描述 小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的 城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i 的海拔高度为 Hi,城市 i 和城市 j 之间的距离 d[i,j]恰好是这两个城市海拔高度之差的绝对值,即 d[i,j] = |Hi− Hj|. 旅行过程中,小 A 和小 B 轮流开车,第一天小 A 开车,之后每天轮换一次.他们计划 选择一个城市 S 作为起点,一直向东行驶,并且最多行驶 X 公里就结束旅行.小 A 和小 B…
题目:洛谷P1081.Vijos P1780.codevs1199. 题目大意:有n座海拔高度不相同的城市(编号1~n),两城市的距离就是两城市海拔之差.规定每次只能从编号小的城市走到编号大的城市. 现在有A和B开车旅行,A每次只开到离当前城市第二近的城市(必须是可以走的,且若两个城市与该城距离相等,海拔低的最近,下同),B则每次开到最近的城市. 他们轮流开车,A先开,开到另一个城市换人.规定行驶不超过X的路程.当两人无法按自己的开法开或将总距离要超过X时旅行结束. 现在有两小问: 1.给出X,…
期望得分:100+100+70=270 实际得分:100+50+70=220 T2 没有底 最后剩余时间来不及打高精.思路出现错误 T1 Vigenère 密码 题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用.在密码学中,我们称需要加密的信息为明文,用 M 表示:称加密后的信息为密文,用C 表示:而密钥是一种参数,是将明文…
数论题..所有数论对我来说都很恶心..不想再说什么了.. ------------------------------------------------ #include<iostream>   using namespace std;   void gcd(int a,int b,int &x,int &y) { if(!b) { x=1; y=0; } else { gcd(b,a%b,x,y); int t=x; x=y; y=t-a/b*x; } }   int ma…
P1084 疫情控制 题目描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树,1 号城市是首都,也是树中的根节点. H 国的首都爆发了一种危害性极高的传染病.当局为了控制疫情,不让疫情扩散到边境城市(叶子节点所表示的城市),决定动用军队在一些城市建立检查点,使得从 首都到边境城市的每一条路径上都至少有一个检查点,边境城市也可以建立检查点.但特别要注意的是,首都是不能建立检查点的. 现在,在 H 国的一些城市中已经驻扎有军队,且一个城市可以驻扎多个军队.一支军队可以…