LQB
LzyRapX
Just For Fun .
展开
-
安慰奶牛 (Kruskal) (最小生成树)
问题描述Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的N-1条道路。第j条双向道路连接了牧场Sj和Ej(1 j j <= N; Sj != Ej),而且走完它需要Lj的时间原创 2017-03-07 22:34:03 · 532 阅读 · 0 评论 -
操作格子 (线段树)(单点修改,区间求最值,区间求和)
问题描述有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式第一行2个整数n,m。接下来一行n个整数表示n个格子的初始权值。接下来m行,每行3个整数p,x,y,p原创 2017-03-07 18:56:08 · 633 阅读 · 0 评论 -
算法提高 矩阵乘法 (区间dp)
问题描述 有n个矩阵,大小分别为a0*a1, a1*a2, a2*a3, ..., a[n-1]*a[n],现要将它们依次相乘,只能使用结合率,求最少需要多少次运算。 两个大小分别为p*q和q*r的矩阵相乘时的运算次数计为p*q*r。输入格式 输入的第一行包含一个整数n,表示矩阵的个数。 第二行包含n+1个数,表示给定的矩阵。输出格式 输出原创 2017-03-10 10:29:11 · 1156 阅读 · 0 评论 -
石子合并问题 (区间dp)
石子合并问题是最经典的DP问题。首先它有如下3种题型:(1)有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并成一堆的总花费最小(或最大)。分析:当然这种情况是最简单的情况,合并的是任意两堆,直接贪心即可,每次选择最小的两堆合并。本问题实际上就是哈夫曼的变形。(2)有N堆石子,现要将石子原创 2017-03-10 12:32:00 · 1304 阅读 · 0 评论 -
历届试题 网络寻路 (树上dfs)
问题描述X 国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。源地址和目标地址可以相同,但中间节点必须不同。如下图所示的网络。1 -> 2 -> 3 -> 1 是允许的1 -> 2 -> 1 -> 2原创 2017-03-20 12:58:30 · 614 阅读 · 0 评论 -
算法训练 结点选择 (树形dp)(点权)
问题描述有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?输入格式第一行包含一个整数 n 。接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。接下来一共 n-1 行,每行描述树上的一条边。输出格式输出一个整数,代表选出原创 2017-03-08 14:07:34 · 1660 阅读 · 0 评论 -
最短路 (Spfa)
问题描述给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式共n-1行,第i行表示1号点到i+1号点的最短路。样例输入3 31原创 2017-03-08 13:02:16 · 1004 阅读 · 0 评论 -
2015 三羊献瑞
三羊献瑞观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞------------------- 三 羊 生 瑞 气(如果有对齐问题,可以参看【图1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。//答案: 9567原创 2016-04-05 22:24:09 · 829 阅读 · 0 评论 -
算法提高 递推求值 (矩阵快速幂)
问题描述 已知递推公式: F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5, F(n, 2)=F(n-1, 1) + 3F(n-3, 1) + 2F(n-3, 2) + 3. 初始值为:F(1, 1)=2, F(1, 2)=3, F(2, 1)=1, F(2, 2)=4, F(3, 1)=6, F(3, 2)=5。 输入n,输出F(原创 2017-03-11 13:08:43 · 2081 阅读 · 6 评论 -
算法提高 概率计算 (概率dp)
问题描述 生成n个∈[a,b]的随机整数,输出它们的和为x的概率。输入格式 一行输入四个整数依次为n,a,b,x,用空格分隔。输出格式 输出一行包含一个小数位和为x的概率,小数点后保留四位小数样例输入2 1 3 4样例输出0.3333数据规模和约定 对于50%的数据,n≤5. 对于100%的数据,原创 2017-03-12 23:46:43 · 596 阅读 · 1 评论 -
历届试题 危险系数 (dfs求割点)
问题描述抗日战争时期,冀中平原的地道战曾发挥重要作用。地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。我们来定义一个危险系数DF(x,y):对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,原创 2017-03-28 23:16:42 · 691 阅读 · 0 评论 -
最小方差生成树 (Kruskal)
问题描述给定带权无向图,求出一颗方差最小的生成树。输入格式输入多组测试数据。第一行为N,M,依次是点数和边数。接下来M行,每行三个整数U,V,W,代表连接U,V的边,和权值W。保证图连通。n=m=0标志着测试文件的结束。输出格式对于每组数据,输出最小方差,四舍五入到0.01。输出格式按照样例。样例输入4 51 2 12 3 23原创 2017-03-16 19:52:31 · 2752 阅读 · 0 评论 -
历届试题 城市建设 (两次Kruskal)
问题描述 栋栋居住在一个繁华的C市中,然而,这个城市的道路大都年久失修。市长准备重新修一些路以方便市民,于是找到了栋栋,希望栋栋能帮助他。 C市中有n个比较重要的地点,市长希望这些地点重点被考虑。现在可以修一些道路来连接其中的一些地点,每条道路可以连接其中的两个地点。另外由于C市有一条河从中穿过,也可以在其中的一些地点建设码头,所有建了码头的地点可以通过河道连接。 栋原创 2017-03-26 01:27:27 · 1232 阅读 · 0 评论 -
算法提高 道路和航路 (SPFA的SLF优化)
问题描述农夫约翰正在针对一个新区域的牛奶配送合同进行研究。他打算分发牛奶到T个城镇(标号为1..T),这些城镇通过R条标号为(1..R)的道路和P条标号为(1..P)的航路相连。每一条公路i或者航路i表示成连接城镇Ai(1i(1ii。每一条公路,Ci的范围为0ii可能为负的,也就是-10,000i每一条公路都是双向的,正向和反向的花费是一样的,都是非负的。每一条原创 2017-03-16 15:19:02 · 1454 阅读 · 0 评论 -
金明的预算方案 (变形01背包)
问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件附件电脑打印原创 2017-03-15 18:18:08 · 859 阅读 · 0 评论 -
历届试题 大臣的旅费 (2次dfs)
问题描述很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地原创 2017-03-24 15:28:54 · 1584 阅读 · 2 评论 -
Problem S4: Interesting Numbers 加强版 (数论)
Problem Description We call a number interesting, if and only if: 1. Its digits consists of only 0, 1, 2 and 3, and all these digits occurred at least once. 2. Inside this number, all 0s occur befor原创 2017-03-30 10:12:24 · 1164 阅读 · 0 评论 -
历届试题 小朋友排队(树状数组求逆序数)
问题描述 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。原创 2017-03-23 13:42:39 · 488 阅读 · 0 评论 -
历届试题 国王的烦恼 (并查集)
问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无事。但是,如果前一天两个小岛之间还有方法可以到达,原创 2017-03-29 20:24:50 · 596 阅读 · 0 评论 -
历届试题 矩阵翻硬币(数学题,大数开根)
问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵。 随后,小明对每一个硬币分别进行一次 Q 操作。 对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。 其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。 当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。 小明想知道最开始有多少枚硬币是反面朝上的原创 2017-03-22 14:56:13 · 1210 阅读 · 0 评论 -
2015 牌型种数
牌型种数小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。答案:3598180题解:暴力吧。。。。或原创 2016-04-05 22:20:59 · 1602 阅读 · 1 评论 -
2015 奇妙的数字
奇妙的数字小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。你能猜出这个数字是多少吗?请填写该数字,不要填写任何多余的内容。//答案是69题解:暴力。。。。。代码:#include #include int a[10];bool check(int k) { int k2 = k*k, k3 = k*原创 2016-04-05 22:17:30 · 647 阅读 · 0 评论 -
2015 饮料换购
饮料换购乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。输入:一个整数n,表示开始购买的饮料数量(0输出:一个整数,表示实际得到的饮料数例如:用户输入:100程原创 2016-04-05 22:13:40 · 609 阅读 · 0 评论 -
2013 三部排序
三部排序 一般的排序有许多经典算法,如快速排序、希尔排序等。但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。 比如,对一个整型数组中的数字进行分类排序: 使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!!原创 2016-04-04 00:28:58 · 499 阅读 · 0 评论 -
2013 前缀判断
.前缀判断5.char* prefix(char* haystack_start, char* needle_start){ char* haystack = haystack_start; char* needle = needle_start; while(*haystack && *needle){原创 2016-04-04 00:23:19 · 442 阅读 · 0 评论 -
2013 马虎的算式
马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次,老师出的题目是:36 x 495 = ?他却给抄成了:396 x 45 = ?但结果却很戏剧性,他的答案竟然是对的!!因为 36 * 495 = 396 * 45 = 17820类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54假设 a b c d e 代表1~9不原创 2016-04-03 22:40:58 · 430 阅读 · 0 评论 -
2013 高斯日记
高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可原创 2016-04-03 17:51:15 · 521 阅读 · 0 评论 -
2013 连号区间数
连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。 当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是原创 2016-04-03 17:37:18 · 395 阅读 · 0 评论 -
2013 硬币方案
硬币方案有50枚硬币,可能包括4种类型:1元,5角,1角,5分。已知总价值为20元。求各种硬币的数量。比如:2,34,6,8 就是一种答案。而 2,33,15,0 是另一个可能的答案,显然答案不唯一。你的任务是确定类似这样的不同的方案一共有多少个(包括已经给出的2个)?直接提交该数字,不要提交多余的内容。题解: 暴力。。。。答案:50AC代原创 2016-04-03 00:14:38 · 453 阅读 · 0 评论 -
2013 黄金连分数
黄金连分数黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有原创 2016-04-03 00:02:19 · 639 阅读 · 0 评论 -
2013 第39级台阶
第39级台阶小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?请你利用计算机的优势,帮助小明寻找答案。要求提交的是一个整数。注意:不要提交解答过程,或其原创 2016-04-02 23:41:30 · 508 阅读 · 0 评论 -
2013 翻硬币
翻硬币小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两原创 2016-04-02 23:54:27 · 446 阅读 · 0 评论 -
2013 带分数
带分数100 可以表示为带分数的形式:100 = 3 + 69258 / 714还可以表示为:100 = 82 + 3546 / 197注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。题目要求:从标准输入读入一个正整数N (N程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意:不要求输原创 2016-04-02 23:34:27 · 390 阅读 · 0 评论 -
2013 锦标赛
锦标赛 如果要在n个数据中挑选出第一大和第二大的数据(要求输出数据所在位置和值),使用什么方法比较的次数最少?我们可以从体育锦标赛中受到启发。 如图【1.png】所示,8个选手的锦标赛,先两两捉对比拼,淘汰一半。优胜者再两两比拼...直到决出第一名。 第一名输出后,只要对黄色标示的位置重新比赛即可。 下面的代码实现了这个算法(假设数据中没有相同值)。原创 2016-04-04 10:11:00 · 527 阅读 · 0 评论 -
2014 神奇算式
神奇算式 由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。 比如: 210 x 6 = 1260 8 x 473 = 378427 x 81 = 2187 都符合要求。 如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。 请填写该数字,通过原创 2016-04-04 10:39:27 · 1843 阅读 · 1 评论 -
2014 啤酒和饮料
啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。 注意:答案是一个整数。请通过浏览器提交答案。 不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。快速解题思路:蓝桥杯的题,模拟暴力应该是主要考虑的方法,尤其是原创 2016-04-05 20:39:22 · 666 阅读 · 0 评论 -
2014 切面条
切面条 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。解题思路:一刀切下去有三部分,不管是对折的几次都是分三部分(如下图),那原创 2016-04-05 20:33:18 · 442 阅读 · 0 评论 -
2014 奇怪的分式
奇怪的分式 上小学的时候,小明经常自己发明新算法。一次,老师出的题目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png) 老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼! 对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢? 请写出所原创 2016-04-05 20:31:55 · 518 阅读 · 0 评论 -
2014 李白打酒
李白打酒 话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:原创 2016-04-05 20:29:11 · 461 阅读 · 0 评论 -
2014 小朋友排队(树状数组+逆序数)
小朋友排队 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高原创 2016-04-05 20:09:16 · 680 阅读 · 0 评论