算法
文章平均质量分 85
yerkeys
小小程序猿
展开
-
背包问题
01背包问题有n件物品,每件物品的重量为w[i],价值为c[i]。现有一个容量为V的背包,问如何选取物品放入背包,使得背包内物品总价值最大。其中每种物品只有一件。令dp[i][v]表示前i件物品恰好装入容量为v的背包所能获得的最大价值。考虑对第i件物品的选择:①不放第i件物品,则问题转化为前i-1件物品恰好装入容量为v的背包中所能获得的最大价值,即dp[i-1][v];②放第i件物...原创 2020-03-26 20:25:42 · 253 阅读 · 0 评论 -
PAT 1068 Find More Coins 01背包
Eva loves to collect coins from all over the universe, including some other planets like Mars. One day she visited a universal shopping mall which could accept all kinds of coins as payments. However,...原创 2020-03-26 19:47:38 · 188 阅读 · 0 评论 -
PAT 1007最大子序列和 1045最长不下降子序列 1040最长回文子串
1007Maximum Subsequence Sumdp[i]记录以A[i]结尾的最大连续子序列和,s[i]记录该序列对应的起始位置。状态转移方程:dp[i]=max(A[i],dp[i-1]+A[i])import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamRead...原创 2020-03-25 22:02:58 · 174 阅读 · 0 评论 -
PAT 1048 Find Coins 散列/双指针
Eva loves to collect coins from all over the universe, including some other planets like Mars. One day she visited a universal shopping mall which could accept all kinds of coins as payments. However,...原创 2020-03-17 22:44:40 · 105 阅读 · 0 评论 -
PAT 1089 Insert or Merge
According to Wikipedia:Insertion sortiterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element from the input data,...原创 2020-03-17 22:09:50 · 104 阅读 · 0 评论 -
PAT A 1029 Median 双指针/二分
Given an increasing sequence S of N integers, the median is the number at the middle position. For example, the median of S1 = { 11, 12, 13, 14 } is 12, and the median of S2 = { 9, 10, 15, 16, 17 } is...原创 2020-03-17 21:03:01 · 150 阅读 · 0 评论 -
PAT A1085 Perfect Sequence / B1030 完美数列 二分/双指针
给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M≤mp,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数N和p,其中N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出N个正整数,每个数不超过109。输出格式:...原创 2020-03-15 23:49:07 · 155 阅读 · 0 评论 -
PAT 1033 To Fill or Not to Fill 贪心
With highways available, driving a car from Hangzhou to any other city is easy. But since the tank capacity of a car is limited, we have to find gas stations on the way from time to time. Different ga...原创 2020-03-14 22:41:04 · 168 阅读 · 0 评论 -
PAT 1084 Broken Keyboard 散列
On a broken keyboard, some of the keys are worn out. So when you type some sentences, the characters corresponding to those keys will not appear on screen.Now given a string that you are supposed to...原创 2020-03-13 23:33:20 · 103 阅读 · 0 评论 -
PAT 1016 Phone Bills 排序
A long-distance telephone company charges its customers by the following rules:Making a long-distance call costs a certain amount per minute, depending on the time of day when the call is made. When...原创 2020-03-13 21:20:58 · 99 阅读 · 0 评论 -
PAT 甲级1012 The Best Rank 排序
To evaluate the performance of our first year CS majored students, we consider their grades of three courses only:C- C Programming Language,M- Mathematics (Calculus or Linear Algrbra), andE- Eng...原创 2020-03-13 14:20:26 · 135 阅读 · 0 评论 -
PAT 甲级 1025 PAT Ranking 排序
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several places, and the ranklists w...原创 2020-03-11 18:26:04 · 121 阅读 · 0 评论 -
PAT 甲级 1062 Talent and Virtue 排序
About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked about people's talent and virtue. According to his theory, a man being outstanding in both talent and virt...原创 2020-03-13 12:15:28 · 247 阅读 · 0 评论 -
POJ1144 Network 割点
NetworkDescriptionA Telephone Line Company (TLC) is establishing a new telephone cable network. They are connecting several places numbered by integers from 1 to N . No two places have the same number...原创 2018-03-27 21:58:41 · 207 阅读 · 0 评论 -
堆排序
#include <iostream>#include<cstdio>using namespace std;int Heap[100];int Hlength;void max_heapify(int Heap[], int s, int m) //向下调整堆{ int rc = Heap[s]; for (int j = s * 2;...原创 2018-02-09 18:35:15 · 148 阅读 · 0 评论 -
POJ2259 Team Queue 队列
Team QueueDescriptionQueues and Priority Queues are data structures which are known to most computer scientists. The Team Queue, however, is not so well known, though it occurs often in everyday life....原创 2018-02-07 23:46:47 · 266 阅读 · 0 评论 -
POJ2051 Argus 堆的应用
ArgusDescriptionA data stream is a real-time, continuous, ordered sequence of items. Some examples include sensor data, Internet traffic, financial tickers, on-line auctions, and transaction logs such...原创 2018-02-09 20:08:49 · 147 阅读 · 0 评论 -
POJ1724 ROADS Dijkstra+优先队列
ROADSDescriptionN cities named with numbers 1 ... N are connected with one-way roads. Each road has two parameters associated with it : the road length and the toll that needs to be paid for the road ...原创 2018-03-07 21:34:47 · 291 阅读 · 0 评论 -
POJ2082 Terrible Sets-矩形面积 栈的应用
http://poj.org/problem?id=2082题意:题目一串废话简单地说就是将n个宽度分别为wi,高度分别为hi的矩形下端对齐依次排列,求组成的图形中包含的最大的连续矩形的面积。分析:栈的应用。ans记录当前最大面积即最后结果。矩形依次入栈同时保证高度递增(图1),其中用lasth记录栈顶矩形高度,若即将入栈的矩形高度小于lasth,则出栈直到栈顶矩形高度不大于此矩形(图2),出栈的...原创 2018-02-08 00:21:38 · 162 阅读 · 0 评论 -
POJ 2352 stars 树状数组
StarsDescriptionAstronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of the stars that are...原创 2018-02-18 16:33:02 · 105 阅读 · 0 评论 -
树状数组
树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构,空间复杂度则为O(n),通过将线性结构转化成树状结构,从而进行跳跃式扫描。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以...原创 2018-02-18 16:30:39 · 118 阅读 · 0 评论 -
POJ 1679 The Unique MST 次小生成树
http://poj.org/problem?id=1679题意:给出N个点和M条边,判断最小生成树是否唯一。分析:次小生成树基本的思想就是连入一条不在最小生成树上的边,从而形成一个环,去掉在环中并且在最小生成树上最大的边计算权值,遍历所有不在最小生成树上的边并进行同样的操作最小值即为次小生成树。prime算法:先求出最小生成树,并用数组Max[i][j]记录生成树上任意两点间权值最大的边的权值,...原创 2018-03-22 20:40:41 · 134 阅读 · 0 评论 -
POJ2186 Popular Cows 强连通分量tarjan算法
http://poj.org/problem?id=2186题意:n头奶牛给出m组欢迎关系 a,b 表示a欢迎b,欢迎关系时单向、传递的,求出被所有的奶牛欢迎的奶牛的数目。分析:可将题目转换为N个顶点M条边的有向图,求有多少点可以由其余任意点到达。如果图为树,则至多有1个点满足条件,这个点一定是树中唯一的出度为0的点。用Tarjan算法求出图中所有的极大强连通分量将其缩成点,图就可以转换为树。求树...原创 2018-03-24 18:39:14 · 169 阅读 · 0 评论 -
POJ3177 Redundant Paths边双连通分量
http://poj.org/problem?id=3177题意:有F个牧场(1<=F<=5000),现在一个牧群经常需要从一个牧场迁移到另一个牧场。奶牛们已经厌烦老是走同一条路,所以有必要再新修几条路,这样它们从一个牧场迁移到另一个牧场时总是可以选择至少两条独立的路。现在F个牧场的任何两个牧场之间已经至少有一条路了,奶牛们需要至少有两条。给定现有的R条(F-1<=R<=1...原创 2018-03-25 15:44:34 · 214 阅读 · 0 评论 -
出栈序列问题
题目:栈排序。对于给定的进栈序列(如1,2,3),输出所有可能的出栈序列。1: 关于出栈序列种数:符合卡特兰数递归式。设f(n)是序列元素个数为n的出栈序列种数,假定最后出栈的元素为k,k取不同值时相互独立。k将1-n的序列额分为两个序列(1~k-1,k+1~n),由于k最后出栈,在k入栈之前,前k-1个元素全部出栈,有f(k-1)种情况,k之后入栈的元素都在k之前出栈,有f(n-k)种情况。由于...原创 2018-02-09 15:39:13 · 935 阅读 · 0 评论