《算法竞赛入门经典》
chen_zan_yu_
同是寒窗苦读,岂能甘拜下风
展开
-
二叉树左右子树的翻转
翻转一个二叉树,直观上看,就是把二叉树的每一层左右顺序倒过来。比如问题中的例子,第三层1-3-6-9经过变换后变成了9-6-3-1,顺序反过来就对了。再仔细观察一下,对于上面的例子,根节点(root)的左子节点及其所有的子孙节点构成根节点的左子树(left subtree),同样的,根节点(root)的右子节点及其所有的子孙节点构成根节点的右子树(right subtree)。因此翻转一个二叉树...原创 2020-04-10 00:30:59 · 2255 阅读 · 0 评论 -
骨牌铺方格
骨牌铺方格 Time Limit:1000 msMemory Limit:32768 KiB SubmitStatistic Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Input ...原创 2019-09-07 23:39:35 · 257 阅读 · 0 评论 -
整数因子分解问题
整数因子分解问题 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 大于1的正整数n可以分解为:n=x1*x2*…*xm。例如,当n=12 时,共有8 种不同的分解式: 12=12; 12=6*2; 12=4*3; 12=3...原创 2019-09-07 22:57:11 · 1164 阅读 · 1 评论 -
众数问题
众数问题 Time Limit:2000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。对于给定的由...原创 2019-09-07 16:47:55 · 559 阅读 · 0 评论 -
最优合并问题
给定k 个排好序的序列s1, s2,……, sk, 用2 路合并算法将这k 个序列合并成一个序列。假设所采用的2 路合并算法合并2 个长度分别为m和n的序列需要m + n -1次比较。试设计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次数最多。对于给定的k个待合并序列,计算最多比较次数和最少比较次数合并方...原创 2019-11-14 15:10:18 · 1839 阅读 · 0 评论 -
区间覆盖问题
区间覆盖问题 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 设x1, x2,…… , xn是实直线上的n 个点。用固定长度的闭区间覆盖这n 个点,至少需要多少个这样的固定长度闭区间? 对于给定的实直线上的n个点和闭区间的长度k,设计...原创 2019-11-09 21:39:32 · 162 阅读 · 0 评论 -
活动选择
活动选择 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 学校的大学生艺术中心周日将面向全校各个学院的学生社团开放,但活动中心同时只能供一个社团活动使用,并且每一个社团活动开始后都不能中断。现在各个社团都提交了他们使用该中心的活动计划(即活动的开...原创 2019-11-09 21:34:24 · 470 阅读 · 0 评论 -
装船问题
装船问题 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 王小二毕业后从事船运规划工作,吉祥号货轮的最大载重量为M吨,有10种货物可以装船。第i种货物有wi吨,总价值是pi。王小二的任务是从10种货物中挑选若干吨上船,在满足货物总重量小于...原创 2019-11-09 21:18:46 · 256 阅读 · 0 评论 -
最长公共子序列问题
Time Limit:1000 msMemory Limit:65536 KiBSubmitStatisticProblem Description给定两个序列 X={x1,x2,…,xm} 和 Y={y1,y2,…,yn},找出X和Y的最长公共子序列。Input输入数据有多组,每组有两行 ,每行为一个长度不超过500的字符串(输入全是大写英文字母(A,Z)),表示序列...原创 2019-11-02 21:27:14 · 1635 阅读 · 0 评论 -
整数变换问题
整数变换问题Time Limit:1000 msMemory Limit:65536 KiBSubmitStatisticProblem Description整数变换问题。关于整数i的变换f和g定义如下:f(i)=3i;试设计一个算法,对于给定的2 个整数n和m,用最少的f和g变换次数将n变换为m。例如,可以将整数15用4 次变换将它变换为整数4:4=gfgg(15)。...原创 2019-10-17 17:54:53 · 2103 阅读 · 2 评论 -
工作分配问题
工作分配问题Time Limit:1000 msMemory Limit:65536 KiBSubmitStatisticProblem Description设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为 cij。试设计一个算法,为每一个人都分配1 件不同的工作,并使总费用达到最小。设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。...原创 2019-10-17 17:40:08 · 182 阅读 · 0 评论 -
运动员最佳匹配问题
运动员最佳匹配问题Time Limit:1000 msMemory Limit:65536 KiBSubmitStatisticProblem Description羽毛球队有男女运动员各n 人。给定2 个n×n 矩阵P 和Q。P[i][j]是男运动员i 和女运动员j配对组成混合双打的男运动员竞赛优势;Q[i][j]是女运动员i和男运动员j配合的女运动员竞赛优势。由于技术配...原创 2019-10-17 17:16:09 · 373 阅读 · 0 评论 -
子集和问题
子集和问题Time Limit:1000 msMemory Limit:65536 KiBSubmitStatisticProblem Description子集和问题的一个实例为〈S,t〉。其中,S={ x1,x2,…,xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得:。试设计一个解子集和问题的回溯法。对于给定的正整数的...原创 2019-10-17 16:33:25 · 402 阅读 · 0 评论 -
Minimum Cost Sort Aizu - ALDS1_6_D
You are givennnintegerswi(i=0,1,...,n−1)wi(i=0,1,...,n−1)to be sorted in ascending order. You can swap two integerswiwiandwjwj. Each swap operation has a cost, which is the sum of the two integ...原创 2019-04-04 23:37:33 · 177 阅读 · 0 评论 -
Exhaustive Search Aizu - ALDS1_5_A
Write a program which reads a sequenceAofnelements and an integerM, and outputs "yes" if you can makeMby adding elements inA, otherwise "no". You can use an element only once.You are given t...原创 2019-03-22 23:49:24 · 194 阅读 · 0 评论 -
Merge Sort Aizu - ALDS1_5_B (归并排序)
Write a program of a Merge Sort algorithm implemented by the following pseudocode. You should also report the number of comparisons in the Merge function.Merge(A, left, mid, right) n1 = mid - lef...原创 2019-03-27 23:00:20 · 218 阅读 · 0 评论 -
Partition Aizu - ALDS1_6_B (分割)
Quick sort is based on the Divide-and-conquer approach. In QuickSort(A, p, r), first, a procedure Partition(A, p, r) divides an array A[p..r] into two subarrays A[p..q-1] and A[q+1..r] such that each ...原创 2019-03-28 22:57:36 · 206 阅读 · 0 评论 -
Counting Sort Aizu - ALDS1_6_A
Counting sort can be used for sorting elements in an array which each of the n input elements is an integer in the range 0 to k. The idea of counting sort is to determine, for each input element x, th...原创 2019-04-02 23:44:08 · 230 阅读 · 0 评论 -
The Number of Inversions Aizu - ALDS1_5_D (逆序数)-19.4.2-晚安~~
For a given sequenceA={a0,a1,...an−1}A={a0,a1,...an−1}, the number of pairs(i,j)(i,j)whereai>ajai>ajandi<ji<j, is called the number of inversions. The number of inversions is equal t...原创 2019-04-03 00:22:52 · 320 阅读 · 0 评论 -
二分查找各种情况模板总结
一, 在一个递增的序列A中找到给定的数的位置#include<stdio.h>#include<iostream>using namespace std;//二分区间为左闭右闭的[left,right],传入的初值为[0,n-1]int binarySearch(int A[],int left,int right,int x){ int mid...原创 2019-09-26 17:46:03 · 208 阅读 · 0 评论 -
高数Umaru系列(9)——哈士奇
高数Umaru系列(9)——哈士奇 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 由于高数巨养的喵星人太傲娇了,要天天吃新鲜猫粮而且还经常欺负高数巨,所以高数巨决定买几条哈士奇尝尝鲜。这天高数巨来到了二手狗市场买哈士奇,高数巨看完了所有的哈士奇...原创 2019-09-30 08:52:21 · 182 阅读 · 0 评论 -
最少硬币问题
最少硬币问题 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。 对任意钱数0≤m≤20001...原创 2019-09-30 09:04:15 · 2140 阅读 · 0 评论 -
数字三角形问题
数字三角形问题 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。 对于给定的由n行数字组成的数字三角形,...原创 2019-09-30 09:21:10 · 563 阅读 · 0 评论 -
石子合并问题
石子合并问题 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合...原创 2019-09-30 09:51:04 · 305 阅读 · 0 评论 -
汽车加油问题
汽车加油问题 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。并证明算法能产生一个最优解。 对于给定的n和k个加油站位置,...原创 2019-10-10 17:26:17 · 178 阅读 · 0 评论 -
多元Huffman编码问题
多元Huffman编码问题 Time Limit:1000 msMemory Limit:65536 KiB SubmitStatistic Problem Description 在一个操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次至少选2 堆最多选k堆石子合并成新的一堆,合并的费用为新的一堆的石子数。试设计一个算法,计算出将n堆...原创 2019-10-10 17:59:13 · 427 阅读 · 0 评论 -
Minimum Spanning Tree(prim()算法)
滴答滴答---题目链接 For a given weighted graph $G = (V, E)$, find the minimum spanning tree (MST) of $G$ and print total weight of edges belong to the MST.InputIn the first line, an integer $n$ denoting...原创 2018-11-10 15:24:21 · 478 阅读 · 0 评论 -
Koch Curve Aizu - ALDS1_5_C
Write a program which reads an integernand draws a Koch curve based on recursive calles of depthn.The Koch curve is well known as a kind offractals.You can draw a Koch curve in the following a...原创 2019-03-25 23:50:10 · 328 阅读 · 0 评论 -
Allocation Aizu - ALDS1_4_D
You are givennnpackages ofwiwikg from a belt conveyor in order (i=0,1,...n−1i=0,1,...n−1). You should load all packages ontokktrucks which have the common maximum loadPP. Each truck can load co...原创 2019-03-22 00:23:20 · 409 阅读 · 0 评论 -
Red and Black POJ - 1979
There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can'...原创 2018-11-28 23:36:35 · 169 阅读 · 0 评论 -
《挑战程序设计竞赛(第2版)》Ants POJ - 1852
滴答滴答---题目链接 An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly falls off it. When two ants...原创 2018-11-24 16:16:22 · 241 阅读 · 0 评论 -
《挑战程序设计竞赛(第2版)》 1.6.1 三角形
有意思 作为《挑战程序设计竞赛(第2版)》第一章最开始的“简单题”,直接三重循环遍历你就输了。给出一个O(nlogn)的算法,先排序O(nlogn),然后遍历至多n – 2次得出结果: 原题 有n根棍子,棍子i的长度为ai,想要从中选出3根棍子组成周长尽可能长的三角形,请输出最大的周长,若无法组成三角形则输出0。 例如: 输入: ...原创 2018-11-24 11:27:13 · 280 阅读 · 0 评论 -
《挑战程序设计竞赛》开篇抽签问题
将写有数字的n个纸片放入一个纸箱子中,然后你和你的朋友从纸箱子中抽取4张纸片,每次记下纸片上的数字后放回子箱子中,如果这4个数字的和是m,代表你赢,否则就是你的朋友赢。请编写一个程序,当纸片上所写的数字是k1,k2,k3,k4,..,kn时,是否存在抽取4次和为m的方案,如果存在,输出YES;否则,输出NO。限制条件:1 <= n <= 501 <= m <=...原创 2018-11-24 11:04:37 · 387 阅读 · 0 评论 -
Expedition(优先队列)
滴答滴答---题目链接 A group of cows grabbed a truck and ventured on an expedition deep into the jungle. Being rather poor drivers, the cows unfortunately managed to run over a rock and puncture the truck's ...原创 2018-11-11 22:22:26 · 153 阅读 · 0 评论 -
Single Source Shortest Path I (dijkstra()算法邻接表转化为邻接矩阵求最短路)
Single Source Shortest PathFor a given weighted graph $G = (V, E)$, find the shortest path from a source to each vertex. For each vertex $u$, print the total weight of edges on the shortest path fro...原创 2018-11-11 18:26:00 · 408 阅读 · 0 评论 -
ALDS1_11_C Breadth First Search(邻接表转化为邻接矩阵并求每个点到1点的距离)
滴答滴答---题目链接 Write a program which reads an directed graph G=(V,E)G=(V,E), and finds the shortest distance from vertex 11 to each vertex (the number of edges in the shortest path). Vertices are ident...原创 2018-11-07 09:53:18 · 286 阅读 · 0 评论 -
Graph(邻接表转为邻接矩阵)
滴答滴答---题目链接 There are two standard ways to represent a graph G=(V,E)G=(V,E), where VV is a set of vertices and EE is a set of edges; Adjacency list representation and Adjacency matrix representation...原创 2018-11-07 08:32:30 · 1602 阅读 · 0 评论 -
Carmichael Numbers (卡迈克尔数+素数打表+快速幂)
Carmichael Numbers An important topic nowadays in computer science is cryptography. Some people even think that cryptography is the only important field in computer science, and that life would no...原创 2018-11-04 23:02:56 · 2203 阅读 · 0 评论 -
Connected Components (邻接表dfs)
滴答滴答---题目链接 Write a program which reads relations in a SNS (Social Network Service), and judges that given pairs of users are reachable each other through the network.InputIn the first line, two...原创 2018-11-06 18:14:54 · 382 阅读 · 0 评论 -
0-1 Knapsack Problem(01背包模板)
滴答滴答---题目链接 You have N items that you want to put them into a knapsack. Item ihas value vi and weight wi.You want to find a subset of items to put such that:The total value of the items is as la...原创 2018-10-13 23:02:26 · 285 阅读 · 0 评论