![](https://img-blog.csdnimg.cn/4f4f6441d5704022a9c382ca4375b467.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM
文章平均质量分 51
ACM
落花雨时
守破离,断舍进。
展开
-
考研数据结构代码总结
数据结构所有代码总结原创 2020-10-30 15:51:05 · 4769 阅读 · 1 评论 -
HDU 1260 Tickets (一维dp)
esus, what a great movie! Thousands of people are rushing to the cinema. However, this is really a tuff time for Joe who sells the film tickets. He is wandering when could he go back home as early as ...原创 2018-08-07 19:26:00 · 170 阅读 · 0 评论 -
Catch That Cow (优先队列)
农夫知道一头牛的位置,想要抓住它。农夫和牛都于数轴上 ,农夫起始位于点 N(0<=N<=100000) ,牛位于点 K(0<=K<=100000) 。农夫有两种移动方式: 1、从 X移动到 X-1或X+1 ,每次移动花费一分钟 2、从 X移动到 2*X ,每次移动花费一分钟 假设牛没有意识到农夫的行动,站在原地不。最少要花多少时间才能抓住牛?Input一行: 以空格...原创 2018-07-31 22:20:10 · 185 阅读 · 0 评论 -
HDU 1242 Rescue(BFS+优先队列)
Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison. Angel's friends want to...原创 2018-07-31 22:15:58 · 154 阅读 · 0 评论 -
HDU - 1873 看病要排队(优先队列数组)
看病要排队这个是地球人都知道的常识。 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,...原创 2018-07-31 22:04:31 · 216 阅读 · 0 评论 -
HDU - 4006 The kth great number(优先队列)
Xiao Ming and Xiao Bao are playing a simple Numbers game. In a round Xiao Ming can choose to write down a number, or ask Xiao Bao what the kth great number is. Because the number written by Xiao Ming ...原创 2018-07-31 21:59:51 · 518 阅读 · 0 评论 -
双向链表
#include <iostream>#include <string.h>#include <stdlib.h>using namespace std;struct Node { int data; Node *pre,*next;}*head,*plast;void input(){ Node *pnext; head=(Node*...原创 2018-11-19 21:03:02 · 113 阅读 · 0 评论 -
POJ - 3348 Cows(凸包)
Your friend to the south is interested in building fences and turning plowshares into swords. In order to help with his overseas adventure, they are forced to save money on buying fence posts by using...原创 2018-07-31 21:15:39 · 196 阅读 · 0 评论 -
STL小结(map)
map是一个有映射的模板,它含有两个元素,第一个叫关键值,第二个叫映射值。定义:map<int, string> m;常用函数:clear 清除 map 中所有元素; erase 删除 map 中指定位置的元素; insert 在 map 指定位置添加 pair 类型的元素; find 获取 map 中元素的迭代器; begin, ...原创 2018-07-31 21:00:38 · 130 阅读 · 0 评论 -
STL小结(set)
set中常用的方法insert(),在集合中插入元素erase(),删除集合中的元素size() ,返回当前set容器中的元素个数count()–返回某个值元素的个数(根据set的特性,就是判断这个元素在不在,返回0或1)begin() ,返回set容器的第一个元素的迭代器end() ,返回set容器的最后一个元素的迭代器clear() ,删除set容器中的所有的元素...原创 2018-07-31 20:45:52 · 138 阅读 · 0 评论 -
HDU - 1251 统计难题(STL+空行结束输入)
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 注...原创 2018-07-31 20:41:42 · 170 阅读 · 0 评论 -
UVA - 10815 A - Andy's First Dictionary(set STL)
DescriptionXY学长刚刚立下了再不过CET就直播xx的flag,为了不真的开启直播模式,XY学长决定好好学习英语。于是他每天都读一篇只包含生词的英语文章,并以自己高达450的智商在一秒钟之内记忆下来。现在给你一篇XY学长今天要读的文章,请你写一个程序,输出他都学习到了哪些单词。要求:如果文章中有相同的单词,那么仅仅输出一次;而且如果两个单词只有大小写不同,将他们视为相同的单词。...原创 2018-07-31 20:33:56 · 249 阅读 · 0 评论 -
POJ 2407 Relatives(容斥原理+算数基本定理)
Given n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if there are no integers x > 1, y > 0, z > 0 such that...原创 2018-07-30 21:48:07 · 270 阅读 · 0 评论 -
HDU 1010 Tempter of the Bone (DFS+剪枝)
The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He realized that the bone ...原创 2018-08-01 19:59:35 · 116 阅读 · 0 评论 -
线段重叠(贪心水题)
X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。Input第1行:线段的数量N(2 <= N <= 50000)。第2 - N + 1行:每行2个数,线段的起点和终点。(0 &...原创 2018-08-02 20:59:27 · 1246 阅读 · 0 评论 -
hdu2045
/* 先列出前面几项观察下规律, a[1] = 3, a[2] = 6, a[3] = 6; 按照一般的思路,找涂n个方格的方法数,可以看涂n-1个方格的方法数,然后涂第n个方格多了多少种方法 根据题中“要求任何相邻的方格不能同色,且首尾两格也不同色 ”可知 当n大于等于4时,第1格到第n-1格(大于等于3)才不是相邻的 思路来源:涂好了前n-1格的基础上涂第n格,保证第...转载 2018-04-10 15:25:06 · 171 阅读 · 0 评论 -
HDU 1711 Number Sequence (kmp)
Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a number K which make a[K] = b[1], a[K ...原创 2018-08-18 20:54:21 · 189 阅读 · 0 评论 -
南阳oj 19 擅长排列的小明(dfs)
描述小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。输入第一行输入整数N(1<N<10)表示多少组测试数据,每组测试数据第一行两个整数 n m (1<n<9,0<m<...原创 2018-08-16 19:18:29 · 262 阅读 · 0 评论 -
HDU 3635 Dragon Balls (并查集路径压缩)
Five hundred years later, the number of dragon balls will increase unexpectedly, so it's too difficult for Monkey King(WuKong) to gather all of the dragon balls together. ...原创 2018-08-16 19:10:03 · 302 阅读 · 0 评论 -
POJ 1611 The Suspects(并查集小变形)
Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To minimize transmission to others, the best strategy is to s...原创 2018-08-16 18:50:42 · 178 阅读 · 0 评论 -
洛谷 P1002 过河卒(一维dp)
题目描述棋盘上 AA 点有一个过河卒,需要走到目标 BB 点。卒行走的规则:可以向下、或者向右。同时在棋盘上 CC 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示, AA 点 (0, 0)(0,0) 、 BB 点 (n, m)(n,m) ( nn , mm 为不超过 2020 的整数),同样马的位置坐标是需要给出的。现在...原创 2018-08-11 21:26:46 · 253 阅读 · 0 评论 -
51Nod 1084 矩阵取数问题 V2(dp降维)
一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上。第1遍时只能向下和向右走,第2遍时只能向上和向左走。两次如果经过同一个格子,则该格子的奖励只计算一次,求能够获得的最大价值。 例如:3 * 3的方格。 1 3 32 1 32 2 1 能够获得的最大价值为:17。1 -> 3 -> 3 -> 3...原创 2018-08-11 21:06:33 · 193 阅读 · 0 评论 -
HDU 1078 FatMouse and Cheese (记忆化搜索)
FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 <= p < n and 0 <= q < n. At each grid lo...原创 2018-08-10 19:27:51 · 129 阅读 · 0 评论 -
HDU 1257 最少拦截系统 (Dilworth定理+LIS)
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统...原创 2018-08-10 11:22:30 · 209 阅读 · 0 评论 -
LCS 、LIS小结(最长公共子序列 、最长递增子序列)
LIS:最长公共子序列,定义不再过多赘述,主要说一下它的状态方程,dp[i][j]代表的是x[1....i],和y[1.....j]的最长公共子序列,模板就是对x和y进行遍历,当想x[i]==y[j]时,dp[i][j]=dp[i-1][j-1]+1,这个很好理解,因为dp里面还没有包括x[i]==y[j]的情况,所以要加1,当x[i]和y[i]不相等的时候 ,dp[i][j]=max(dp[...原创 2018-08-09 21:56:26 · 138 阅读 · 0 评论 -
HDU 1284 钱币兑换问题 (坑爹水题)
在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。Input每行只有一个正整数N,N小于32768。Output对应每个输入,输出兑换方法数。Sample Input293412553Sample Output71883113137761同学教了一个很简单的方法,压根就不用dp就可以#include&...原创 2018-08-07 19:37:38 · 404 阅读 · 1 评论 -
LightOJ 1078 Integer Divisibility(大数取模应用(反向))
If an integer is not divisible by 2 or 5, some multiple of that number in decimal notation is a sequence of only a digit. Now you are given the number and the only allowable digit, you should report t...原创 2018-07-30 21:04:41 · 141 阅读 · 0 评论 -
LightOJ 1214 Large Division(大数取模)
Given two integers, a and b, you should check whether a is divisible by b or not. We know that an integer a is divisible by an integer b if and only if there exists an integer c such that a = b * c....原创 2018-07-30 20:45:50 · 256 阅读 · 0 评论 -
hdu 2178 猜数字(二分法)
猜数字 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7595 Accepted Submission(s): 5190 Problem DescriptionA有1数m,B来猜.B每猜一次,A就说"太大...原创 2018-04-21 17:44:44 · 322 阅读 · 0 评论 -
超坑A+B again hdu2057
A + B Again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 34138 Accepted Submission(s): 13848 Problem DescriptionThere must b...原创 2018-04-18 20:11:41 · 140 阅读 · 0 评论 -
fzu 1056
Problem 1056 扫雷游戏Accept: 2624 Submit: 6903Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description扫雷是Windows自带的游戏。游戏的目标是尽快找到雷区中的所有地雷,而不许踩到地雷。如果方块上的是地雷,将输掉游戏。如果方块上出现数字,则表示在其周...原创 2018-04-16 20:25:45 · 159 阅读 · 0 评论 -
hdu1223 还是畅通路(最小生成树)
点击查看源代码还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 54426 Accepted Submission(s): 24713 Problem Description某省调查乡村交通...原创 2018-04-13 20:35:55 · 281 阅读 · 0 评论 -
vector
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include<vector>以包含所需要的类文件vector 还有一定...转载 2018-04-13 19:35:01 · 169 阅读 · 0 评论 -
hdu畅通工程
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 63193 Accepted Submission(s): 33826 Problem Description某省调查城镇交通状况,得到现有城镇道路...原创 2018-04-13 16:45:27 · 232 阅读 · 0 评论 -
hdu2050
Problem Description我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。 Input输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。...转载 2018-04-13 10:24:49 · 213 阅读 · 0 评论 -
错排
当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;第二步,放编号为k的元素,这时有两种情况:⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个元素就有D(n-2)种方法...原创 2018-04-10 21:16:52 · 176 阅读 · 0 评论 -
hdu2046
骨牌铺方格Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27095 Accepted Submission(s): 13089 Problem Description在2×n的一个长方形方格中,用一个1× 2的骨...转载 2018-04-10 15:41:25 · 184 阅读 · 0 评论 -
哈夫曼树
#include <iostream>#include <string.h>#include <fstream>#include <queue>#include <stack>using namespace std;int a[26];char s[1005];int len;struct Node{ int id...原创 2018-11-19 16:31:58 · 131 阅读 · 0 评论 -
hdu 2544(所有最短路算法总结)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 82480 Accepted Submission(s): 35690 Problem Description在每年的校赛里,所有进入决赛的同学都会获...原创 2018-05-12 09:35:21 · 1593 阅读 · 0 评论 -
hdu 2056 矩形重叠
Rectangles Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 28381 Accepted Submission(s): 9199 Problem Description ...原创 2018-04-21 20:12:12 · 189 阅读 · 0 评论