![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高二复习 - 2016
文章平均质量分 51
Steve_Junior
某中华名校的竞赛渣渣
展开
-
POJ - 1042 Gone Fishing 钓鱼 动态规划(DP)
【问题描述】 约翰是个垂钓谜,星期天他决定外出钓鱼h小时(1≤h≤16),约翰家附近共有n个池塘(2≤n≤25),这些池塘分布在一条直线上,约翰将这些池塘按离家的距离由近到远编上号,依次为L1,L2,…,Ln,约翰家门外就是第一个池塘,所以他到第一个池塘是不用花时间的。约翰可以任选若干个池塘由近到远地垂钓,并且在每个池塘他都可以呆上任意长的时间,但呆的时间必须为5分钟的倍数(即5分钟为一个单位时间原创 2016-09-06 20:24:03 · 2924 阅读 · 0 评论 -
NOIP 2010 - 提高组 关押罪犯 二分答案+二分图的判定
描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c的冲突事件。每年年末,警察局会将本年内监狱中的所有冲突事件按影原创 2016-10-06 09:25:15 · 352 阅读 · 0 评论 -
NOIP 2014 - 提高组 寻找道路
思路: 以图论方法完成。存图时在正向图g上存储,再将边反过来在gr上存储。目的是,反向图上终点能到的点都是正向图上能到终点的点。然后在反向图上从终点出发BFS或DFS,标记能到终点的点。在正向图从起点开始时,进行BFS时先遍历i结点指向的每个j,如果有任意一个j没有被标记,则i不可以走,直接再从队列中取一个i验证。代码:#include<cstdio>#include<cstring>#inc原创 2016-11-10 10:15:50 · 455 阅读 · 0 评论 -
【训练题】最短路径树 SPFA
【问题描述】 所谓最短路径树,就是从s出发,沿着树上的边走到任意点i,那么经过的这些边的权值和就是s到i的最短路径。Dijkstra算法或SPFA算法不仅可计算从起点s到各点的最短路径长度,同时也可得到以s为根的最短路径树。方法是在进行松弛操作时,如果d[i] + c < d[j] 时,除了更新d[j]之外,还要设置fa[j]=i。这样把fa[j]看成j的父亲指针,则所有点形成了一棵树(因为每个结原创 2016-11-10 19:00:25 · 462 阅读 · 0 评论 -
【培训题】医院设置[1] | 树的结点带权重心
【问题描述】 阆中市管辖了n个乡镇(编号为1~n),有n-1条公路把他们连接起来,每条公路的长度均为单位长度。其中第i个乡镇有人口数量为Wi。 市政府打算在这n个乡镇中选择一个建立一所医院,使所有镇民到医院的所走路程总和最小。 例如,下图中有5个乡镇,每个圈表示一个乡镇,圈外的数字表示该乡镇编号,圈里的数字表示该乡镇的人口数量。 医院应建立在乡镇3,所有人走的路程总和为:13*1+4*2+2原创 2016-10-31 19:35:47 · 1071 阅读 · 0 评论 -
POJ - 1985 Cow Marathon 奶牛马拉松 计算树的直径
【问题描述】 农夫约翰有N个农场,标号为1到N。M条不同的垂直或水平的道路连接着农场,道路的长度不超过1000。这些农场的分布就像下面的地图一样,图中农场用F1..F7表示:每个农场最多能在东西南北四个方向连接4个不同的农场。此外,农场只处在道路的两端。道路不会交叉且每个农场间有且仅有一条路径。但是约翰丢了农场的地图,他只得从电脑的备份信息中修复了。每一条道路信息描述如下:从农场23往南经距离10原创 2016-10-31 17:53:00 · 1133 阅读 · 0 评论 -
【专题训练】医院设置[2] | 树的边、点都带权重心
【问题描述】 阆中市管辖了n个乡镇(编号为1~n),有n-1条公路把他们连接起来,每条公路的长度均为c[i]。其中第i个乡镇有人口数量为Wi。 市政府打算在这n个乡镇中选择一个建立一所医院,使所有镇民到医院的所走路程总和最小。 例如,下图中有5个乡镇,每个圈表示一个乡镇,圈外的数字表示该乡镇编号,圈里的数字表示该乡镇的人口数量。 医院应建立在乡镇3,所有人走的路程总和为:13*1+4*2+20原创 2016-10-31 19:39:05 · 715 阅读 · 0 评论 -
Vijos - 1488 路灯的改建计划 动态规划 重庆一中高2018级竞赛班第九次测试 2016.9.10 Problem 3
【问题描述】 在华师一的敏行路上,新建了若干漂亮的路灯,这给同学们晚上的出行带来很大的方便。但是,问题随之出现了。一天晚上,OI组的FHH 同学正往校门外走,忽然眼前一片漆黑,于是直接把眼镜都摔掉了,再也找不到。后来FHH 同学从学校管理处了解到昨晚路灯突然熄灭是因为电路不堪重负,导致空气开关跳闸。善于思考的FHH 同学考虑将路灯进行改建,以避免再次出现类似的问题。FHH同学仔细了解每盏路灯的耗电原创 2016-09-15 08:41:58 · 1149 阅读 · 0 评论 -
倍增法求最近公共祖先(LCA)的算法模板
“log base 2 of maxn”:以2为底maxn的对数. 定义数组:int bzfa[maxn]["log base 2 of maxn"];输入:for(int i=1;i<=n;i++){ int a,b; scanf("%d%d",&a,&b); bzfa[b][0]=a; if(bzfa[a][0]==0) { root=原创 2016-11-16 19:54:09 · 423 阅读 · 0 评论 -
【训练题】小树 | 计算树上各点的深度和到根的距离
【问题描述】 给定一棵边带权的有根树,树中包含n个结点(编号为0..n-1),其中根结点的编号为0。你的任务是在树中找出一个结点集合{a1,a2,…,am},集合需要满足如下三个条件: 1)、根结点不在集合中,即0 < ai < n (1 ≤ i ≤ m); 2)、集合中任意两个结点的最近公共祖先一定是根结点; 3)、设 wi 为结点 ai 到根的路径上包含的边的权值和,di 为结点 ai原创 2016-11-01 18:10:52 · 950 阅读 · 0 评论 -
UVa - 10278 Fire Station 消防站 图上的多源最短路径
【问题描述】 某城市中有一些消防队。居民抱怨说一些房子离最近的消防站很远,所以必须建一个新的消防站。你要选择这个消防站的位置,让离最缺少服务的居民区最近。 这个城市有N个路口,用1..N编号,这N个路口被M条长度不同的双向道路连接。房子和消防站的位置都在路口上。假定在每个路口至少有一栋房子,且在同一个路口可以有多个消防站。【输入格式】 第一行包含三个整数:f,N,M,分别表示城市现有f个消防站原创 2016-11-01 19:48:58 · 740 阅读 · 0 评论 -
01背包、完全背包、多重背包
原文地址:http://blog.csdn.net/wzy_1988/article/details/12260343前言今天花了一下午加一晚上的时间,在九度oj才ac了一道简单的多重背包题目,之前没做过多重背包的题目,导致我做题时复杂化了,虽然是假期但是也不能这么浪费时间,果断总结一下,这里参考了dd_engi大牛的《背包问题九讲》,原文链接:http://love-oriented转载 2016-11-15 20:56:49 · 346 阅读 · 0 评论 -
UVa - 10047 The Monocycle 独轮车 多状态BFS 重庆一中高2018级竞赛班第十一次测试 2016.9.24 Problem 4
注:原题为多组数据。本题输入改为只有一组数据。 【问题描述】 独轮车是一种仅有一个轮子的特殊自行车。他的轮子被等分成5个扇形,分别涂上一种不同的颜色。现在有一个人骑自行车行驶在M*N的网格平面上。每个格子的大小恰好使得当车从一个格子骑到下一个格子时,轮子恰好转过一个扇形。如下图所示,当轮子在1号格子的中心时,蓝色扇形的外弧线中线刚好于地面接触。当它移动到下一个格子(2号格子)的时候,白色扇形的外原创 2016-09-27 20:05:51 · 1129 阅读 · 0 评论 -
Sicily - 1137 河床 滑动窗口+优先队列 重庆一中高2018级竞赛班第十一次测试 2016.9.24 Problem 3
【问题描述】 地理学家们经常要对一段河流进行测量分析。他们从上游开始向下游方向等距离地选择n(n最近,乌龙博士发现某种水文现象与河床地势有关,于是他指示分析员要找出一段河流中最大高低起伏差不超过K(1【输入格式】 第一行包含两个整数N和K,分别表示测量点的个数和博士要求的最大水深度(也就是河床的地势差)。 第二行包含N个整数,表示从上游开始依次得到的水位深度di(1【输出格式】原创 2016-09-27 19:52:25 · 548 阅读 · 0 评论 -
【训练题】航线设计 | 使用最长上升子序列(LIS)长度的O(nlogn)算法优化
【问题描述】 有一个国家被一条河划分为南北两部分,在南岸和北岸总共有N对城镇,每一城镇在对岸都有唯一的友好城镇。任何两个城镇都没有相同的友好城镇。每一对友好城镇都希望有一条航线来往。于是他们向政府提出了申请。由于河终年有雾。政府决定不允许有任两条航线交叉(如果两条航线交叉,将有很大机会撞船)。你的任务是写一个程序来帮政府官员决定他们应拨款兴建哪些航线以使得没有出现交叉的航线最多。 【输入格式】原创 2016-09-03 15:17:19 · 628 阅读 · 0 评论 -
POJ - 3265/USACO - Jan07 Gold Problem Solving 动态规划(DP) | 对USACO官方题解0ms程序的解释
【问题描述】 过去的日子里,农夫John的牛没有任何题目。可是现在他们有题目,有很多的题目。 精确地说,他们有 P 道题目要做。并且他们还离开了农场并且象普通人一样找到了工作,他们的月薪是M 元(上个月的工资在下月初发放)。 他们的题目是一流的难题,所以他们得找帮手。帮手们不是免费的,但是他们能保证在一个月内作出任何题目。每做一道题需要两笔付款:第一笔A_i(1 <= A_i <= M) 元在做题原创 2016-09-07 19:27:29 · 802 阅读 · 1 评论 -
BZOJ - 1609/USACO - Feb08 Silver Eating Together 麻烦的聚餐 重庆一中高2018级竞赛班第九次测试 2016.9.10 Problem 2
【问题描述】 为了避免餐厅过分拥挤,FJ要求奶牛们分3批就餐。每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想,所有第3批就餐的奶牛排在队尾,队伍的前端由设定为第1批就餐的奶牛占据,中间的位置就归第2批就餐的奶牛了。由于奶牛们不理解FJ的安排,晚饭前的排队成了一个大麻烦。 第i头奶牛有一张标明她用餐批次 D_i 的卡片。虽然所有N()头奶牛排成了很整齐的队伍,但谁都看得出来,卡片上的号码是完全原创 2016-09-10 15:59:53 · 411 阅读 · 0 评论 -
OpenJudge - 2704 寻找平面上的极大点 贪心+使用map优化 重庆一中高2018级竞赛班第九次测试 2016.9.10 Problem 1
【问题描述】 在一个平面上,如果有两个点(x,y),(a,b),如果说(x,y)支配了(a,b),这是指x>=a,y>=b;用图形来看就是(a,b)坐落在以(x,y)为右上角的一个无限的区域内。 给定n个点的集合,一定存在若干个点,它们不会被集合中的任何一点所支配,这些点叫做极大值点。请编程找出所有的极大点,按照x坐标由小到大,输出极大点的坐标。【输入格式】 输入包括两行,第一行是正整数n原创 2016-09-10 16:32:33 · 1120 阅读 · 0 评论 -
复赛模拟试题 - 收费站 Dijkstra迪杰斯特拉+二分答案法 重庆一中高2018级竞赛班第九次测试 2016.9.10 Problem 4
【问题描述】 在某个遥远的国家里,有n个城市。编号为1 ,2,3,…,n。这个国家的政府修建了m条双向的公路。每条公路连接着两个城市。沿着某条公路,开车从一个城市到另一个城市,需要花费一定的汽油。开车每经过一个城市,都会被收取一定的费用(包括起点和终点城市)。所有的收费站都在城市中,在城市间的公路上没有任何的收费站。小红现在要开车从城市u到城市v(1<=u,v<=n)。她的车最多可以装下s升的汽油原创 2016-09-10 17:29:49 · 796 阅读 · 0 评论 -
CQBZOJ - 2916 学生宿舍 动态规划(DP) 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 1
【问题描述】 新的学生宿舍开放了,它由M栋建筑物构成,标号为1到M。开始时,学生宿舍都是空的,很快有N个学生搬进去了。刚好每天搬进去一个。每次有新同学搬进宿舍,那栋建筑将会举行一个大型的party。party的噪声和该建筑物里的学生的数量相等。宿舍管理员不喜欢噪声,所以他们会不定期的清空某栋建筑物。清空的方法就是把该栋建筑物的学生全部赶到另外的学生宿舍(这M栋宿舍以外的地方)。但是管理员最多只能清原创 2016-09-20 16:15:09 · 687 阅读 · 0 评论 -
UVa - 1625 Color Length 颜色的长度 动态规划 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 2
【问题描述】 输入两个颜色序列(只包含大写字母的字符串),要求按顺序合并成同一个序列,即每次可以把一个序列的开头的颜色放到新序列的尾部。例如,两个颜色序列GBBY和YRRGB,至少有两种合并结果:GBYBRYRGB和YRRGGBBYB。对于每个颜色c来说,其跨度L(c)等于最大位置和最小位置之差,例如对于上面两种合并结果,每个颜色的L(c)和所有L(C)总和如下表: 你的任务是找一种合并方式,使得原创 2016-09-20 18:06:01 · 631 阅读 · 0 评论 -
破译密码 动态规划 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 3
【问题描述】 Lucky得到总部发来的消息,我军特种部队已经截获敌人的一个密码本,但是这个密码本本身是由密码写成的。为了给敌人造成沉重的打击,Lucky必须尽快破译密码。经过一天一夜的探索,Lucky发现敌人密码本实际上记载着一个数列,而最终密码由这个数列经过下列运算得到: 1、把数列从小到大排序。 2、在排好序的数列中,任选一个数,这个数将把原数列分成左右两个数列(选出的数不在新数列中,并且原创 2016-09-20 18:52:45 · 464 阅读 · 0 评论 -
NOIP 2010 - 提高组 引水入城 棋盘上的BFS+区间覆盖(贪心) 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 4
【问题描述】 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个N行M列的矩形,其中每个格子都代表一座城市,每座城市都有一个海拔高度。为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施有两种,分别为蓄水厂和输水站。蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的蓄水池中。因此,只有与湖泊毗邻的第1行的城市可以建造蓄原创 2016-09-20 19:16:15 · 807 阅读 · 0 评论 -
OpenJudge - 6683 变幻的矩阵 模拟 重庆一中高2018级竞赛班第十一次测试 2016.9.24 Problem 1
【问题描述】 有一个N x N(N为奇数,且1 <= N <= 10)的矩阵,矩阵中的元素都是字符。这个矩阵可能会按照如下的几种变幻法则之一进行变幻(只会变幻一次)。 现在给出一个原始的矩阵,和一个变幻后的矩阵,请编写一个程序,来判定原始矩阵是按照哪一种法则变幻为目标矩阵的。 1.按照顺时针方向旋转90度; 如: 1 2 3 7 4 14 5 6 变幻为 8 5 27 8 9原创 2016-09-27 18:42:13 · 1281 阅读 · 0 评论 -
OpenJudge - 2989 糖果 动态规划(DP) 重庆一中高2018级竞赛班第十一次测试 2016.9.24 Problem 2
【问题描述】 由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖果免费优惠券。在这一天,Dzx可以从糖果公司的N件产品中任意选择若干件带回家享用。糖果公司的N件产品每件都包含数量不同的糖果。Dzx希望他选择的产品包含的糖果总数是K的整数倍,这样他才能平均地将糖果分给帮助他维护世界和平的伙伴们。当然,在满足这一条件的基础上,糖果总数越多越好。Dzx最多能带走原创 2016-09-27 18:51:42 · 831 阅读 · 0 评论 -
GNU编译优化级别-O -O1 -O2 -O3
最近做一个算法的GPU加速,发现实际上使用gcc的-O3(最高级编译优化)选项,可以获得很高的加速比,我的程序里达到了3倍的样子,有时效果甚至比GPU加速好。因此小小学习了下GNU的编译优化。 附言一句,在进行调试的时候,最好关闭编译优化,不然程序自动优化,执行的步骤可能稍有变化。GNU编译器提供-O选项供程序优化使用: -O 提供基础级别的优化 -O2 提供更加高级的代码优化,会占用更长的编转载 2016-11-13 20:21:42 · 308 阅读 · 0 评论