
算法竞赛
yiichan
这个作者很懒,什么都没留下…
展开
-
1119 Pre- and Post-order Traversals (30 分)
1119 Pre- and Post-order Traversals (30分)Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder tra...原创 2019-11-01 07:43:56 · 202 阅读 · 0 评论 -
1140 Look-and-say Sequence (20 分)
1140 Look-and-say Sequence (20 分) 依次输出串中连续元素的个数这道题其实靠的就是个模拟,依次输出并转化串中连续元素的个数,但是我居然这都不会写了?!这也太菜了吧!网上找到的是对字符串处理的,我自己写了一个对数组进行这种处理的。也就是说可以出一个这样的题目:给出一个整型数组a的容量和元素序列,请输出另一个整型数组b,b为a中的连续元素和每个连续元素的个数。...原创 2019-11-01 07:43:19 · 363 阅读 · 0 评论 -
熄灯问题 BailianPOJ 2811 或者 BailianPOJ 1222
熄灯问题 BailianPOJ 2811 或者 BailianPOJ 1222标签(空格分隔): 算法 算法竞赛题目有些长,就不写了,在北大百炼平台上有,1222是英文版题,2811是中文版。这道题我听的郭炜老师的课,做的真心巧妙,用的也是出乎意料。具体解题思路在下面的代码里,是老师的源程序,我手动敲的。其中有很多个地方不好懂,统一分析在代码最后。#include <memo...原创 2018-03-28 21:42:18 · 262 阅读 · 0 评论 -
生理周期 OpenJ_Bailian - 4148
生理周期 OpenJ_Bailian - 4148标签(空格分隔): 算法竞赛生理周期 OpenJ_Bailian - 4148 人生来就有三个生理周期,分别为体力周期、感情周期和智力周期,它们的周期长度分别为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,在智力周期的高峰,人会思维敏捷,注意力容易高度集中。因为三个周期的长度不同,所以...原创 2018-03-28 11:10:59 · 257 阅读 · 0 评论 -
POJ 1013 称硬币 枚举 花式调bug 易犯错误
POJ 1013 称硬币 枚举 花式调bug 易犯错误标签(空格分隔): 算法竞赛 算法哇,这道鬼题我居然调了两天,严重耽误了我的学习进度。但是发现的问题也很重要,一定要引以为戒!!!! 问题: Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are tru...原创 2018-03-28 10:39:50 · 312 阅读 · 0 评论 -
更相减损法和辗转相除法(GCD)求最小公倍数和最大公约数
更相减损法和辗转相除法(GCD)求最小公倍数和最大公约数标签(空格分隔): 算法 算法竞赛这两种算法平时经常听到,听起来也很装逼,但是我老是忘了他们的原理,今天好好想想,写下来。更相减损法 更相减损法最早起源于我国的《九章算术》,用于求两个数的最小公倍数。大意是给定两个数a,b,如果存在偶数,就将偶数以2;否则,就比较两数大小,用大数减小数,得到一个差;对差和剩下的那个小数重复...原创 2018-03-25 17:55:54 · 1351 阅读 · 0 评论 -
HDU 1027 正序和逆序的全排列函数
HDU 1027 正序和逆序的全排列函数标签(空格分隔): C++ 算法竞赛 算法题目来源于HDU 1027 题目描述 Now our hero finds the door to the BEelzebub feng5166. He opens the door and finds feng5166 is about to kill our pretty Pri原创 2018-01-27 19:15:20 · 518 阅读 · 0 评论 -
HDU 5980 位运算 进制转换函数 DEV C++调试失败的原因
HDU 5980 位运算 进制转换函数 DEV C++调试失败的原因标签(空格分隔): 算法竞赛 编程窍门 Find Small A Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 427原创 2018-01-30 00:22:54 · 245 阅读 · 0 评论 -
UVA 489 Hangman Judge 自顶向下逐步求精
UVA 489 Hangman Judge 自顶向下逐步求精标签(空格分隔): 算法 算法竞赛原题如下,但这种做法是我逐步改进的结果,是逐步找到漏洞,逐渐修复的结果。我觉得这个比刘汝佳书上的方法要蠢得多。 In “Hangman Judge,” you are to write a program that judges a series of Hangman games.原创 2018-02-02 12:43:08 · 273 阅读 · 0 评论 -
波兰表达式
波兰表达式标签(空格分隔): 算法竞赛2694:逆波兰表达式查看 提交 统计 提示 提问总时间限制: 1000ms 内存限制: 65536kB描述逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。...原创 2018-04-04 21:32:45 · 1305 阅读 · 3 评论 -
特殊的密码锁
特殊的密码锁标签(空格分隔): 算法竞赛总时间限制: 1000ms 内存限制: 1024kB描述有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转。当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮。当前密码锁状态已知,需要解...原创 2018-03-29 15:57:12 · 2277 阅读 · 0 评论 -
ACM-ICPC Hong Kong F.Nearby Bicycles
ACM-ICPC Hong Kong F.Nearby Bicycles标签(空格分隔): 算法竞赛水题,但是中间好像有错误数据,就是中间多个空格或者换行的那种。所以我的输入部分代码过不了,但是读走前面的空格或者换行的代码就可以。下面注释部分是我的结构体和输入操作,本机检验输入没问题,提交上去就WA。我用的是gyx的结构体和输入部分代码,就过了。算法很简单,暴力就行了。不提了。 但是...原创 2018-04-06 10:54:04 · 306 阅读 · 0 评论 -
ACM-ICPC 2017 Hong Kong E.Base Station Sites
ACM-ICPC 2017 Hong Kong E.Base Station Sites标签(空格分隔): 算法竞赛当时傻乎乎的取点,还讨论了半天,看着榜上刷出这道题的人越来越多,知道是道水题却做不出来,好尴尬。最后才想到是二分法枚举可能的长度。#include <iostream>#include <cstdio>#include <algo...原创 2018-04-06 10:57:58 · 417 阅读 · 0 评论 -
【数论】证明一个数x的数根(digital root)等于各位数字之和(sum-1)%9+1,也等于(x-1)%9+1
由于markdown格式公式不容易输入,所以我手推了一遍,原文如下。原创 2018-04-30 16:42:41 · 1024 阅读 · 0 评论 -
怎样对拍、如何对拍、对拍模板
我写了一个对拍模板,套上直接可以用,还有使用说明在里面,这里附上github网站。对拍全套模板原创 2018-07-31 18:01:29 · 1713 阅读 · 0 评论 -
1146 Topological Order (25 分) 拓扑排序 判定
也不写题干了,主要说说拓扑排序。对一个有向图G,我们把满足下列要求的顶点序列叫做G的拓扑排序,一般来说,一个图的拓扑排序不唯一。(1)拓扑排序中的,对每一个节点,它的后继节点都在该节点之后出现。(2)如果两节点没有直接间接的前驱后继关系,则两节点在序列中先后顺序不限(3)每个拓扑排序包含G的所有节点有向无环图(简称DAG):没有回路的有向图叫做有向无环图。比如下图(就是pat 甲级...原创 2019-07-30 18:25:16 · 341 阅读 · 0 评论 -
UVA 213 ACM-ICPC World Finals 1991 信息解码
UVA 213 ACM/ICPC World Finals 1991 信息解码标签(空格分隔): 算法竞赛 编程错题 紫书原题很长,在这里我就不做过多叙述了,我直接贴个链接吧。 UVA 213 ACM/ICPC World Finals 1991 信息解码 题目里面包含了连个很有用的自定义的函数实现:连接被换行隔开的字符串readchar、二进制转十进制函数readint。这个原创 2018-02-05 17:45:56 · 338 阅读 · 0 评论 -
UVA 1339 Ancient Cipher 古老的密码 字符出现次数
UVA 1339 Ancient Cipher 古老的密码 字符出现次数标签(空格分隔): 编程错题 算法竞赛 算法 紫书题干很长,不妨参考紫书上的解释。 给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同。例如,JWPUDJSTVP重排后可以得到WJDUPSJPVT,然后把每个字母映射到它前原创 2018-02-06 12:57:07 · 366 阅读 · 0 评论 -
高精度正整数除法 大整数除法
高精度正整数除法 大整数除法标签(空格分隔): 算法竞赛 算法 编程错题 高精度单词: divident:被除数 divisor:除数 quotient:商大整数除法 OpenJ_Bailian - 2737 题目要求:求两个大的正整数相除的商。 input:第1行是被除数,第2行是除数。每个数均不超过100位。 out原创 2018-01-27 15:13:24 · 2290 阅读 · 0 评论 -
vector(向量类型)算法竞赛知识点
vector(向量类型)算法竞赛知识点标签(空格分隔): C++vector是C++模板库里面的一种数据类型,用起来方便得很。 初始化方式主要有三种 1.初始化少量数据:列表初始化vector<type>a={1,2,3};等价于vector<type>a{1,2,3}; 2.向量复制:vector<type>a=b;等价于vec...原创 2018-02-20 23:04:38 · 724 阅读 · 0 评论 -
C++栈和队列
C++栈C++ STL中提供了栈(stack)的模板。 #include <stack> ... stack<type> stk;这就定义了一个栈stk。 栈支持下面的基本操作: stk.empty():stk为空则返回true,stk中存在元素则返回false stk.size():返回stk中的元素个数 s...原创 2018-02-23 23:30:53 · 344 阅读 · 0 评论 -
缓冲区溢出与缓冲区溢出攻击
缓冲区与缓冲区溢出问题标签(空格分隔): C C字符串注意:单个字符用单引号!字符串才用双引号!不然不能通过编译!!!缓冲区溢出是指用有安全隐患的字符串处理函数,在输入超出规定字符串长度的字符之后,对该数组末尾的内存单元的覆盖。例如#include <stdio.h>#include <string.h>int main(){ cha...原创 2018-02-24 16:21:24 · 315 阅读 · 0 评论 -
Little Boxes hdu - 6225
#include <stdio.h>#include <stdlib.h>#include <string.h> #define N 1001char a[N],b[N],c[N],d[N];int a1[N],b1[N],c1[N],d1[N];int main() { int n; scanf("%d",&n); ...原创 2018-03-24 20:21:03 · 379 阅读 · 0 评论 -
幻方是一种很神奇的N*N矩阵 问题 A: 神奇的幻方
问题 A: 神奇的幻方 时间限制: 1 Sec 内存限制: 128 MB 提交: 149 解决: 119 [提交][状态][讨论版][命题人:admin] 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行、每列及两条对角线上的数字之和都相同。 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间。 之后,按如下方式从小到...原创 2018-03-24 20:33:35 · 5340 阅读 · 0 评论 -
国王将金币作为工资,发放给忠诚的骑士。 问题 G: 金币
题目描述 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。请计算在前K天里,骑士一共获得了多少金币。 输入 输...原创 2018-03-24 20:37:10 · 17284 阅读 · 3 评论 -
扫雷游戏是一款十分经典的单机小游戏。 问题 H: 扫雷游戏
题目描述 扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。注:一个格子的周围格子包括其上、下、左、...原创 2018-03-24 20:39:05 · 8302 阅读 · 2 评论 -
02-线性结构4 Pop Sequence(25 分)
02-线性结构4 Pop Sequence(25 分)标签(空格分隔): 数据结构 C++02-线性结构4 Pop Sequence(25 分)Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and pop randomly. You are ...原创 2018-03-22 12:23:20 · 395 阅读 · 0 评论 -
两个有序链表序列的合并
两个有序链表序列的合并标签(空格分隔): 数据结构 算法竞赛02-线性结构1 两个有序链表序列的合并(15 分)本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct No...原创 2018-03-18 17:13:26 · 1372 阅读 · 3 评论 -
POJ 2386 Lake Counting DFS初步
POJ 2386 Lake Counting DFS初步标签(空格分隔): 算法 算法竞赛 Description Due to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M (1 ...原创 2018-03-14 10:39:51 · 236 阅读 · 0 评论 -
Ants poj 1852
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 fa...原创 2018-03-12 20:50:47 · 212 阅读 · 0 评论 -
挑战程序设计竞赛 1.6.1 三角形 计算组合三角形的最大周长
挑战程序设计竞赛 1.6.1 三角形 计算组合三角形的最大周长标签(空格分隔): 挑战程序设计竞赛 算法竞赛题目很简单,就是输入一个数n,表示接下来输入一个有n个元素的数列,作为一些帮的长度,然后挑选其中的棒组成周长最长的三角形,输出这个最大周长。input52 3 4 5 10output12很简单的一道小题,但是用的方法很多样。书上给了全部遍历的方法,计算每...原创 2018-03-11 19:38:45 · 666 阅读 · 0 评论 -
UVA 514 Rails 铁轨 栈的模拟
UVA 514 Rails 铁轨 栈的模拟标签(空格分隔): 算法竞赛 C++ 算法 紫书这道题第一次见是在acm俱乐部寒假训练赛中,但是当时太菜了,即便知道是用栈来做,也想不出怎么模拟。过了一个寒假,学了些C++,感觉能做了,但是找不到用栈模拟火车还是车站,所以还是做不出。直到看了提示,知道是用栈模拟车站后,这才做出来的。原题不打了,在紫书140页。我只写解题过程。为了达到重...原创 2018-03-03 19:39:48 · 355 阅读 · 0 评论 -
POJ1328Radar Installation贪心+模拟队列+结构体排序+运算符重载+构造函数
POJ1328 Radar Installation 雷达安装 贪心+模拟队列+结构体排序+运算符重载+构造函数标签(空格分隔): 算法竞赛 C++ 算法这道题用到的是贪心算法,但是牵扯到了很多c++语法知识,所以我花了很长时间去学习相关语法。 题目中用到的语法有(包括但不限于):结构体的构造函数、运算符重载、结构体的排序函数、队列数据结构的模拟。 一开始我想的很简单,只需要每次考...原创 2018-03-03 15:00:39 · 239 阅读 · 0 评论 -
大理石在哪儿? Where is the Marble- UVA - 10474
大理石在哪儿? Where is the Marble? UVA - 10474标签(空格分隔): 算法竞赛这道题比较简单,所以我详写方法。 如果用以前的C语言方法的话,做的很快,但是用C++但方法来做,我还没学会。用C++牵扯到了排序函数sort、查找函数lower_bound。 sort(排序下界,排序上界(,排序函数))。上界和下界为地址,排序函数为排序规律。如果不写...原创 2018-02-17 23:18:26 · 289 阅读 · 0 评论 -
高精度小数加法
高精度小数加法标签(空格分隔): 算法竞赛 高精度原题在HDU 1753.当时不知道这类题叫高精度运算,只觉得是大数的运算,于是将大数的四则运算起了个名字叫“大数全家桶”,现在想想也很好玩。 Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。 这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会原创 2018-01-22 23:11:37 · 3329 阅读 · 4 评论