卡特兰数(Catalan UVa 991 10303 10007 1478)

一、介绍         卡塔兰数是组合数学中一个常在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰(1814–1894)命名。         历史上,清代数学家明安图(1692年-1763年)在其《割圜密率捷法》最早用到“卡塔兰数”。         卡特兰序列的前11项为:1...

2014-09-12 17:17:58

阅读数:1446

评论数:2

幻方(UVa 10087 - The Tajmahal of ++Y2k)

题目:幻方构造,给你n*n的方形,在里面填上连续的数字,使得每行、每列和对角线上的数字和是m。 分析:数学、构造。幻方的构造方法已经完全被解决,直接利用公式求解即可。             幻方的幻和为:p =(n*n+1)* n / 2             如果 m = k*n + p 则...

2014-05-12 20:35:43

阅读数:1143

评论数:0

UVa 11752 - The Super Powers

题目 求解64位无符号整数的可以拆解成不同指数的数字。 分析 数论。枚举以2-65535的数字为底数,2-64为指数的所有组合,取合法的存储,排序去重即可。 说明 需要将数字分成两段存储(每个10位),避免溢出。 #include <algorithm&a...

2018-10-16 20:56:15

阅读数:3

评论数:0

UVa 1595 - Symmetry

题目 判断一个平面上的点是不是关于某条竖线对称。 分析 计算几何。首先利用所有点的横坐标的和计算出折线对应的x,然后将左右分成两组,将x坐标转化成相对折线的距离,排序比较输出。 说明 好多书和论文要看,还要学英语。。。ε=(´ο`*)))唉 #include <a...

2018-10-14 19:02:12

阅读数:1

评论数:0

UVa 11090 - Going in Cycle!!

题目 求一个有向图中的平均边长的最小的环。 分析 图论,最短路。二分平均边长,然后所有边长减去二分的值,利用最短路判断是否有负权回路。这里使用floyd求解。 说明 注意自身是环的节点。 #include <stdio.h> #include...

2018-10-08 19:26:08

阅读数:8

评论数:0

UVa 11258 - String Partition

题目 将一个数字串拆分成不超过32位有符号整形(2147483647)的数组,求他们的和的最大值。 分析 动态规划(DP)。区间动态规划,按照区间长度更新即可。 预处理:设a(i,j)为从i开始到j结束的数字串的值,如果超过2147483647则为0; 状态定义:f(i,j)为区间[i, j...

2018-10-01 11:49:10

阅读数:18

评论数:0

UVa 12347 - Binary Search Tree

题目 已知一颗BST的前根序序列,输出它的后根续序列。 分析 数据结构。按照输入的顺序建立BST,并使用递归输出即可。 说明 开始把output函数的返回值写成int,然后已知RE,编译器优化问题? #include <cstdlib> #i...

2018-09-23 13:55:12

阅读数:18

评论数:0

UVa 11857 - Driving Range

题目 设计电动汽车的电池容量,已知有n个城市,每个城市都有充电站,m条双向道路(可能两个城市间有多条道路),求最小的电池容量。 分析 最小生成树。利用kruskal算法,记录最后加入树的边长即可;如果并查集中的节点数量不是城市数量,则有的城市不连通,输出IMPOSIBALLE。 ...

2018-09-21 14:48:50

阅读数:28

评论数:0

UVa 501 - Black Box

题目 有一个数据库,有两种操作:ADD(x),将数字x插入到数据库中;GET返回第i个元素,i初始为1,每次使用GET先将i增加1再查询。 分析 数据结构,首先利用离散化将数据映射到1~M,然后使用线段树进行存储和查找,记录每个区间的数据个数方便查询。 说明 注意数据中有M为0的情况,这...

2018-09-19 22:01:26

阅读数:19

评论数:0

UVa 12160 - Unlock the Lock

题目 开密码锁,有R个按钮,每次按对应的按钮,密码会增加对应的值,已知初始状态和开锁的密码,问最少的按钮次数。 分析 最短路,bfs。直接利用bfs搜索即可。 说明 1000题了,✿✿ヽ(°▽°)ノ✿ 还要考ieltso(╯□╰)o #include...

2018-08-09 13:54:08

阅读数:25

评论数:0

UVa 11965 - Extra Spaces

题目 将字符串中连续的空格合并成一个。 分析 模拟。用两个指针模拟即可。 说明 第999题了。。。 #include <stdio.h> #include <stdlib.h&...

2018-08-08 20:02:31

阅读数:38

评论数:0

UVa 11093 - Just Finish it up

题目 有N个加油站构成一个环形,每个加油站可以加ai的油,从第i个加油站走到第i+1个需要消耗bi的油。问按照顺序从哪个加油站开始可以走一圈回到出发点。初始没有油。 分析 贪心。计算出每个点的净值:c[i] = p[i] - q[i]。有点像最大子段和,保存当前区间的起始点和走...

2018-08-08 16:13:50

阅读数:33

评论数:0

UVa 735 - Dart-a-Mania

题目 飞镖游戏,有三个飞镖,靶子上面分成1-20的分数,每个区域的分数可能是对应分数的1,2,3倍。中心50分,不在靶子上0分。问对应x分数有多少种分数组合与排列。 分析 枚举。这里没有要求最后为倍数,直接把0-20的1-3倍去重打成表,然后枚举即可。 说明 雅思...

2018-08-08 14:05:48

阅读数:27

评论数:0

UVa 11254 - Consecutive Integers

题目 一个整数n可以可以被分解成连续的整数的和,求最长的分解。 分析 数学,枚举。 取p #include <stdio.h> #include <stdlib.h&amp...

2018-07-18 09:46:39

阅读数:32

评论数:0

UVa 11958 - Coming Home

题目 一个人在等车,已知当前的时间,和每辆公交车的开车时间和他到家需要的时间,问他最早什么时间到家。 分析 暴力模拟。枚举所有的车找到最早到家的即可。 说明 如果当前时间晚于发车时间,可以等明天的车。 #include <stdio.h...

2018-07-10 17:58:40

阅读数:29

评论数:0

UVa 957 - Popes

题目 给定任期Y,以及每个人当选的时间,问哪个时间段在职的人最多。 分析 数据结构,单调队列。因为数据是有序的,直接利用单调队列求解。弹出条件为队列首位的当选时间差,最长的队列长度就是答案。 说明 开始想用树状数组和线段树。。。 #include &...

2018-07-09 17:41:47

阅读数:18

评论数:0

UVa 13025 - Back to the Past

题目 按照题目要求查询2013年05月29日是星期几 分析 直接用电脑查一下 说明 ╮(╯▽╰)╭ #include<stdio.h> int main() { printf("May 29...

2018-06-14 21:17:04

阅读数:28

评论数:0

UVa 11629 - Ballot evaluation

题目 有很p个变量,每个变量有一个对应的值,然后判断g个逻辑表达式(逻辑表达式都是加和以及逻辑判断组成)是否正确。 分析 利用map存储对应的值,然后计算表达式判断即可。 说明 注意精度控制。 #include <cstdio&am...

2018-05-22 10:34:00

阅读数:26

评论数:0

UVa 10903 - Rock-Paper-Scissors Tournament

题目 n个人玩剪刀石头布游戏,求每个人赢的概率。 分析 概率为:w/(w+l) 说明 又是太久没刷题了 #include <stdio.h> #include <stdlib.h&...

2018-05-20 22:27:27

阅读数:29

评论数:0

UVa 10276 - Hanoi Tower Troubles Again!

题目 汉诺塔,有n个柱子,按顺序把从零开始的编号盘子放上去,每次同一个柱子上的相邻的两个盘子编号加和需要是平方数,如果不行就放到下一个柱子上,直到不能放位置,问最多能放多少个。 分析 模拟,直接模拟即可。 说明 (⊙o⊙)… #include &am...

2018-05-07 10:27:06

阅读数:42

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭