自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 POJ - 3070 Fibonacci(快速幂)

题目大意:输入n求FnFnF_{n}的后四位,四位数中第一个非 0 数前面的 0 不需要输出 解题思路:题目给出了矩阵求法: [Fn+1FnFnFn−1][Fn+1FnFnFn−1]\begin{equation} \left[\begin{matrix}F_{n+1}&F_{n}\\F_{n}&F_{n-1}\end{matrix} \right] \end{equatio...

2016-11-30 16:58:57 284

原创 UVA - 10400 Game Show Math

题目大意:类似于24点,给数字和目标数,通过四则运算求得目标数,输出式子。此题中,运算符没有优先级,遵循从左至右运算;除号在能够整除的时候才能用;运算过程数字要在 -32000~32000 范围内。 解题思路:dfs + 判重#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<stdlib

2016-11-24 15:38:59 265

原创 UVA - 10602 Editor Nottoobad

题目大意:给出一系列单词,可以重复上一个单词、删除单词尾部字母、键入字母,每键入一个字母算按键盘一次,别的操作不记数,第一个单词必须先输入,剩余单词顺序可随意,问输入这些单词最少需要按多少次键盘。 解题思路:因为允许重复上一个单词和删除尾部字母,那么当前单词和上一个单词的前缀最相似的情况下,键入次数会最少,按照这个思路去排序,然后统计一下不同的字母个数就是答案。#include<iostream>

2016-11-24 14:16:05 168

原创 UVA - 10954 Add All

题目大意:给出一些数字,两两相加,把和代替两个数字放回原列,再继续两两相加。求最小和。 解题思路:正巧前两天学的哈夫曼树,一个思想,于是优先挑选最小的两个数,用优先队列不难实现#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<stdlib.h>#include<algorithm>#

2016-11-23 17:02:04 259

原创 UVA - 10714 Ants

题目大意:一根棍子上有一些蚂蚁,相遇会掉头,求掉下所有蚂蚁都掉下棍子的最长时间和最短时间。 解题思路:眼熟的题目(UVA - 10881 Piotr’s Ants )而且这题简单多了#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<stdlib.h>#include<algorithm

2016-11-23 16:41:21 301

原创 UVA - 311 Packets

题目大意:有 1×1、2×2、3×3……6×6 的高度相同的包裹要放进6×6的箱子里,问最少需要多少个箱子。 解题思路:贪心,先放大的包裹。 每个箱子可以放: 1 个 6×6 1 个 5×5 + 11 个 1×1 1 个 4×4 + 5 个 2×2 4 个 3×3 或 3 个 3×3 + 1 个 2×2 + 5 个 1×1 或 2 个 3×3 + 3 个 2×2 + 6 个 1×1

2016-11-22 23:16:35 338

原创 UVA - 10026 Shoemaker's Problem

题目大意:鞋匠有许多鞋要做,但每次只能做一双鞋,别的鞋子在开始之前都需要赔偿延期的费用,给出每个单子需要的天数和延期一天所需要赔的费用,输出赔偿最少的情况的顺序。 解题思路:贪心,考虑只有两双鞋的顺序,若 a b 那么所需费用就是 b 的费用×a 的天数,若 b a 则是 a 的费用×b 的天数,比较两种费用选择费用少的那种顺序。#include<iostream> #include<cstdi

2016-11-20 15:40:26 277

原创 UVA - 10700 Camel trading

题目大意:给出一个只有 + 和 * 的式子,求出不同运算顺序下得到的答案中的最大值和最小值。 解题思路:显然先加再乘最大,先乘再加最小。开两个栈去存储。上个月数据结构刚学的用栈转后缀计算,毕竟这个只有两种就不用那么复杂了。注意一下这题数据比较大要用 long long #include<iostream> #include<cstdio>#include<cmath>#include<str

2016-11-20 15:02:06 264

原创 UVA - 10487 Closest Sums

题目大意:输入一个 n,以下 n 行给出 n 个数,然后输入一个 m,以下 m 行给出 m 个被询问的数,求 n 个数任意两两相加的和中最接近被询问的数是多少。 解题思路:sum 记任意两数和,减去被询问的数,绝对值最小的即所求值。#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<std

2016-11-18 22:14:21 206

原创 UVA - 10057 A mid-summer night's dream.

题目大意:给出一组数(X1,X2…Xn)(X_{1},X_{2}…X_{n}),求一个数 A 使得 (|X1−A|+|X2−A|+…+|Xn−A|)(|X_{1}-A| + |X_{2}-A| + … + |X_{n}-A|) 最小,输出三个数:第一个是最小的A,第二个数是数列 Xn{X_{n}} 中有多少个数可以是 A,第三个数是 A 的总个数( A 不一定在 Xn{X_{n}} 中) 解题思

2016-11-17 15:34:20 195

原创 UVA - 10341 Solve It

题目大意:根据题目所给公式,求 0~1 范围内的 X 解题思路:二分#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<stdlib.h>#include<algorithm>#include<queue>#include<map>using namespace std;doub

2016-11-17 14:20:23 246

原创 UVA - 270 Lining Up

题目大意:给出一些点,问最多有几个点共线。 解题思路:用斜率相等判断共线,首先斜率 k=y1−y2x1−x2k=\frac{y_{1}-y_{2}}{x_{1}-x_{2}},对于三点 y1−y2x1−x2=y1−y3x1−x3\frac{y_{1}-y_{2}}{x_{1}-x_{2}}=\frac{y_{1}-y_{3}}{x_{1}-x_{3}} 即三点共线,这里交叉相乘即得到(y1−y2)

2016-11-17 14:05:41 218

原创 UVA - 10132 File Fragmentation

题目大意:有一些相同的文件,被分成两个部分,即给出的 2N 行 01 串共组成 N个相同的文件。输出原文件。题目保证有解。 解题思路:既然都是相同文件那么长度肯定相同,那么最长串就要和最短串组合,枚举所有情况去判断剩余串是否能够恰好组成 N-1 组该串,若成功输出即可。#include<iostream> #include<cstdio>#include<cmath>#include<str

2016-11-16 20:17:46 215

原创 UVA - 10763 Foreign Exchange

题目大意:给出 N 组数,若所有 A,B 都有出现对应的 B,A 即 YES,否则 NO。 解题思路:思路蛮简单,一开始直接做没去排序自然是 TLE……根据 N 的奇偶也可以剪枝一下,显然要成对出现才有可能满足条件。#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<stdlib.h>#

2016-11-16 00:37:00 177

原创 UVA - 10905 Children's Game

题目大意:题意很好懂,问所给数字能组成的最大数是多少。 解题思路:主要是一个编写排序函数 cmp 的技巧,单纯按大小排序再组合显然是行不通的:如 9、90,90 > 9,但显然 909 < 990。这里选择两两组合比较就很简单。#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<stdli

2016-11-16 00:17:17 232

原创 UVA - 141 The Spot Game

题目大意:给出一个 N 表示 N×N 的棋盘,以下 2N 行每行表示一个人的操作,两个人轮流,数字表示操作的位置,+ 表示放一个点,- 表示取一个点,当棋盘重复(旋转90、180、270后相同的就算重复)时,当前操作的人失败。若 2N 步后无胜负则平局。 解题思路:step 表示棋盘状态,根据操作来改变,因为 N 最大 50 开个[2][50+5] 就行,将这个二维数组映射到一维数组 sta,方便

2016-11-10 18:43:27 201

原创 UVA - 188 Perfect Hash

题目大意:给出一串字符,将每个单词化为一个整数 w,其中 a-1,b-2……z-26,bz = (2×32)+26,这些 w 排序后构成一个升序的集合 W。求一个整数 C,C 是一个 w 的倍数并且要求尽可能小,要让⌊Cwi⌋modn≠⌊Cwj⌋modn\left \lfloor \frac{C}{w_{i}} \right \rfloor mod n \neq \left \lfloor \fra

2016-11-10 16:21:09 489

原创 UVA - 10125 Sumsets

题目大意:给一系列数字,范围 -536870912 ~ 536870911,a、b、c、d 都是集合中的数,找出满足 a+b+c=d 的最大的 d 并输出。 解题思路:套三个 for 暴力枚举直接 TLE……化为a+b=d-c,sum 保存 a+b 的和及对应 ab,然后将所给数字排列,从大到小枚举 d,输出符合的跳出循环即可。因为是集合所以四个数不能相等,然后 sum 注意一下虽然集合最多只有

2016-11-09 19:02:28 217

原创 UVA - 10391 Compound Words

题目大意:给出一系列单词,输出其中的复合词(由另外两个单词组成的词) 解题思路:map 标记一下出现过的单词,然后扫一遍,将每个单词拆分成两块检查是否都在字典中。#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<stdlib.h>#include<algorithm>#include

2016-11-09 15:46:11 258

原创 UVA - 10591 Happy Number

题目大意:对一个数一直求其各个位数上的平方和,最终为 1 就是 happy number 解题思路:vis 数组判重,思路也简单。对于最大数 999999999 的各个位数平方和也只有 729,vis 开个1000 足够。把数据想得太大 TLE 一次。#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#i

2016-11-05 17:01:38 217

原创 UVA - 10282 Babelfish

题目大意:给一系列字典「英文 + 空格 + 外文」一个空白行之后给出一系列外文,输出对应英文,查不到输出 eh 解题思路:好久没见水题……蛮感动的,map 做一个表去查即可,注意输入吧。#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<stdlib.h>#include<algorit

2016-11-05 16:11:29 280

原创 UVA - 321 The New Villa

题目大意:别墅有 r 个房间,d 扇门, s 个开关,判断是否能从编号 1 的房间走到编号 r 的房间,若能打印步骤。两个房间之间有门的才可移动,在移动时注意不能进入没有亮灯的房间。 解题思路:二进制表示房间状态,bfs 查找递归输出。#include<iostream> #include<cstdio>#include<cmath>#include<string.h>#include<s

2016-11-04 09:35:21 295

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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