自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 uva 10791 minimum sum lcm

1.将一个数分解成质因子,将相同的因子乘起来作为一个处理后的因子2.将处理后得到的多个因子直接相加就是答案3.因为题目说只要需要两个数字,所以对于1和素数我们需要小心。对于素数,我们只能分解出一个因子就它自己,对于1一个因子都分解不出来(我们不把1当做因子),他们的答案都是n+1,因为只有1和n的LCM是n // Created by Chenhongwei in 201

2015-09-09 18:38:09 195

原创 uva 12661 funning car racing

大意:在一个赛车比赛中,赛道有n个交叉点和m条单项道路,每条路都是周期性关闭的。每条路用5个整数u, v, a, b, t表示,表示起点是u,终点是v,通过时间是t,另外,这条路会打开a秒,然后关闭b秒,周期循环。当比赛开始时,这条道路刚刚打开。你的赛车必须在道路打开的时候进入该道路,并且这它关闭之前离开。现在求给定起点s到终点t的最短时间。思路:虽然路径的权值变成了动态变化的,但依旧符合

2015-09-09 18:30:38 356

原创 uva 10534 Wavio Sequence

题意:找一个最长(假设长度为2N-1)的子序列,使得前N个元素递增,后N个元素递减。和高中一道做过的题目几乎一模一样,noip的合唱队行,只不过这个要求递增和递减的数目相同。正着求一遍最长上升子序列,再逆着求一遍最长上升子序列,然后枚举每一个数,看起两边延伸的最短的长度乘2减一就好。由于数据很多,LIS要用nlogn的方法,很简单啦。// Created

2015-09-09 18:17:32 202

原创 uva 607 Scheduling Lectures

你在一所学校教书,每节课时长L,你有n个主题必须要讲完,每个主题时常为ti。有两个限制:1,每个主题只能在一节课内讲完,不能分开在多节课;2,必须按主题顺序讲,不能打乱。对于每节课,讲完主题的内容会剩下时间t,如果t>10,会产生不满意度(t-10)^2,如果 1问讲完所有主题,最少要用多少节课?如果有多种方案,要求不满意度最低。num[i]表示讲完第i个主题,所用的最少节课d

2015-09-09 18:13:13 234

原创 uva 247 calling circles

图的连通性问题。两个人相互连通当且仅当两人互相直接或者间接打过电话。因为间接通话的存在,无法直接用dfs来求连通块。要用Floyd算法实现的传递闭包来预处理两人是否直接或间接的通过话。Floyd算法完后则可以用dfs求出所有连通块了。// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwe

2015-09-09 17:58:58 181

原创 uva 658 UVA 658 It's not a Bug, it's a Feature!

本题有两大难点,一是建图。其实无论邻接表还是邻接矩阵貌似建完整图的时间复杂度都比较大,而且好多状态未必用的到,因而不如干脆不建完整图,每次都扫描一遍转换规则,如果可以生成另一个状态就将另一个状态直接入队即可。状态可以用二进制表示。二是判断当前状态,用二进制来判断。  ①判定某些位置是否为1,如判定2、4位置为1,则转化为判断x|0101是否等于x。    ②判定某些位置是否

2015-09-09 17:55:31 218

原创 uva 1213 不同素数之和

题意:选择K个质数使它们的和为N,求总的方案数。分析:虽然知道推出来了转移方程, 但还是没把代码敲出来,可能基本功还是不够吧。d(i, j)表示i个素数的和为j的方案数,则 d(i, j) = sigma d(i-1, j-p[k]) ,其中p[k]表示第k个素数注意递推的顺序是倒着推的,否则会计算重复的情况。代码中第二重和第三重循环的顺序可互换。

2015-09-09 00:19:54 261

原创 uva 11526 H(n)

数据量这么大直接挨个来肯定是不行的。得想办法减少重复的计算。这样对于每个相等的n/i的i,只需要统计有多少个,而不需要挨个枚举。方法是,设n/i=u,这样i是得到u的最后一个,n/(u+1)+1是得到u的第一个,这样这段区间的和是区间长度*u。// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. All

2015-09-09 00:15:41 209

原创 uva 12589 learning vector

题意分析:给出n个矢量,从中选择k个,以坐标原点为起点,收尾相连,问:这样的k个周围相连矢量与x轴围成图形的最大面积的两倍是多少?这里着重说一下为什么要对这些矢量按斜率进行排序:其次,对于选出来的矢量,我们一定按照斜率大的先放的策略进行放置。理由如下:对于任意选定的一组矢量收尾相加(这里的矢量都满足x>=0,y>=0),其最终最右端高度是一样的,其水平宽度是一样的。每一个矢

2015-09-09 00:11:18 339

原创 uva 1632 阿里巴巴

大意:直线上有n个点,其中第i个点的坐标为xi,且它会在di秒后消失。Alibaba可以从直线任意位置出发,求访问玩所有点的最短时间,无解输出No solution.思路:对所有点按照坐标从小到大排序,发现访问过的点一定是一个连续区间,用d[i][j][0]表示访问了区间(i, j),Alibaba在左端点,d[i][j][1]表示访问了区间(i, j),Alibaba在右端点。// C

2015-09-09 00:06:36 271

原创 uva 10163 storage keeper

有n个仓库(最多100个),m个管理员(最多30个),每个管理员有一个能力值P(接下来的一行有m个数,表示每个管理员的能力值)每个仓库只能由一个管理员看管,但是每个管理员可以看管k个仓库(但是这个仓库分配到的安全值只有p/k,k=0,1,...),每个月公司都要给看管员工资,雇用的管理员的工资即为他们的能力值p和,问,使每个仓库的安全值最高的前提下,使的工资总和最小。输出最大安全值,并

2015-09-08 23:58:35 280

原创 uva 10118 free candies

题目大意:有4堆糖果, 每堆糖果有n颗糖果,然后给出每颗糖果的类型1~20,然后只有取走当前堆的前面一颗糖果后才可以取后面的糖果, 然后小伙伴有一个篮子,篮子可以装5个糖果,如果篮子中的糖果存在相同类型的两个糖果,便可以将这两颗糖果算成一对放进腰包,问,小伙伴按什么样的方式取糖果可以取到最多的糖果。解题思路:记忆化搜索,开一个四维数组记录当前4堆糖果取走相应个数后能拿到的最多对糖果数。

2015-09-08 23:56:07 257

原创 uva 10285 最长的滑雪路径

题意  输入一个城市的滑雪地图  你可以从高的地方滑到伤下左右低的地方  求这个城市的最长滑雪线路长度   即在一个矩阵中找出最长递减连续序列令d[i][j]为以格子map(i,j)为起点的最长序列   则有状态转移方程d[i][j]=max{d[a][b]}+1  a,b为与i,j相邻且值比i,j小的所有点#include"cstdio"#include

2015-09-08 23:47:53 429

原创 uva 10003 cutting sticks

题目大意:将一段木棒按要求切割,每次切割都要付出与木棒长度相同的代价,求最小代价切割。感觉很水的一道题,简直是dp中的暴力状态表示:d[x][y]表示[x,y]区间上切割所用的最小值状态转移方程:d[x][y]=min{d[x][a[i]]+d[a[i]][y]+(y-x)// Created by Chenhongwei in 2015.// Copyright (c) 2

2015-09-08 23:35:26 247

原创 uva12186 Another Crisis

只是一道普通的树的dfs而已。关于求最少人数的式子:(k*T – 1)/100 + 1k*T/100不需要解释。一个-1一个+1则起到了手动ceiling的功能。因为整数除法是自动floor,所以+1就是将其变成ceiling。但如果整数除法得出的结果恰恰本身就是一个整数,那么+1将导致错误的结果。这时就需要在整数除法前,在被除数上减去一个比较小的正数(epsilon)(epsilon的大小和后面

2015-09-08 23:30:50 317

原创 uva 548 tree

这题就是运用了二叉树重建, 以及遍历。二叉树的遍历:先序遍历,中序遍历,后序遍历只要有一个中序序列再加上另一个序列就可唯一地重建原来二叉树。进行了二叉树重建之后,只要对这棵二叉树进行搜索, 取得各个路径之和,然后找出最小的那个和即可。// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. All

2015-09-07 23:35:12 211

原创 uva 10410 树重建

题目大意:给定一个树的BFS和DFS,求这棵树。解题思路:用栈维护即可。对应BFS序列映射出了每个节点和根节点的距离,遍历dfs序列,对当前节点和栈顶节点比较,如果该节点距离根节点更远,则说明该节点为栈顶节点个孩子节点,则记录后将节点放入栈中。否则弹掉栈顶元素继续比较。需要注意一点,即当元素与栈顶元素的距离值大1的时候要视为相等,因为它们属于兄弟节点// Created by C

2015-09-07 23:31:50 525 2

原创 uva 10129 单词

这一题是典型的欧拉道路题目。  欧拉道路的定义是: 除了起点和终点外, 其他点的“进出” 次数应该相等。 换句话说,除了起点和终点外, 其他点的度数应该是偶数。对于有向图, 则必须其中一个点的出度恰好比入度大1, 另一个的入度比出度大。如果奇点数不存在的话, 则可以从任意点出发,最终一定会回到该点(成为欧拉回路)。题目给的单词量比较大,但是有用的只有首和

2015-09-07 23:23:34 331

原创 hdu 1503 Advanced fruits

解题思路:这道题就是给你两个单词,然后你要把两个单词拼接成一个新单词,使得新单词的子序列中包含两个单词,并且要使这个新单词最短。所以这道题就是求最长公共子序列,并且要记录下子序列的字母,以及他们在主串和副串中的原始位置,之后进行拼接输出。// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. All

2015-09-07 23:16:43 208

原创 hdu1789 Doing homework again

分析:    简单贪心,一开始没想到思路。    很直观的,第一步按照score从大到小排序,如果score相等,则按照deadline从小到大排。    然后开始选择,让当前的课排在其deadline上面,如果这一天已经被占用了,那么就往前循环,有位置了就安排,没了就ans+=score。// Created by Chenhongwei in 2015.//

2015-09-07 23:12:45 207

原创 hdu 1058 humble number

题意:当一个数只有2、3、5、7这四种质因数时(也可以一种都没有或只有其中几种),这个数就是丑数,输出第 n 个丑数是多少;其实并没有发现hdu把这道题放在 dp 专题里的意图,我的思路就是预处理出丑数数组,然后读入 n 就直接输出第 n 个丑数。我自己又一种想法,询问翔神之后又学到了另一种做法。我自己的生成数组的方法是:数组的第一个元素定为1,然后用优先队列,首先将2,3,5,7放入优先

2015-09-07 23:02:01 248

原创 uva 442 矩阵链乘

// 题意:输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数。假定A和m*n的,B是n*p的,那么AB是m*p的,乘法次数为m*n*p  // 算法:用一个栈。遇到字母时入栈,右括号时出栈并计算,然后结果入栈。因为输入保证合法,括号无序入栈// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. A

2015-09-07 22:38:31 269

原创 uva 140 宽带

给你一个以邻接表展现的图的节点以及其相邻的节点,这时你将所有出现过的节点随机排列,找出此排序中相邻节点之间距离最长的值代表此排列的值,而这只是其中一种排列,你要找出所有排列中这种代表的值得最小值,并将有最小值的串的排列情况输出// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. All

2015-09-07 22:30:12 269

原创 uva 129 困难的串

先想出最简单的解法:枚举字母串(书中所介绍的递归排列枚举算法),每次产生一个新串都进行检查。检查是否“困难”的方法是:外层循环枚举子串长度;中层循环枚举左侧子串的起始位置;内层循环枚举子串中的字符的位置直觉上来说,这个方法就太笨重了。实际上这个方法进行了很多重复的工作:每次在原有字母串基础上增加一位字母新产生的字母串中,只有最后一位字母是新增的,如果将这一位字母去掉,则前面的字母串已经是“困难”的

2015-09-07 22:27:28 321

原创 uva 12325 宝箱

书中的分类枚举法一举克服了普通枚举最大10^9的规模:第一种宝藏最多n/s1个,所以宝藏1的数量可以从1枚举到n/s1,同时算出宝藏2最多多少个,求出总价值。宝藏2最多n/s1个,枚举方法同上。因此如果n/s1比较小,就枚举宝藏1,n/s2比较小就枚举宝藏2如果n很大而s1 s2很小,则用以下的枚举法:s2个宝藏1和s1个宝藏2体积相等,但价值分别为s2*v1和s1*v2。如果前者大于后者,则最优

2015-09-07 22:16:40 315

原创 uva 1374 power calculus

题目大意:给出n,问说至少计算几步得到x^n。解题思路:迭代深搜,枚举步数,然后深搜判断是否可行。需要优化,当当前数s按照最大方案执行后仍然小于n,则说明不可行。// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. All rights reserved.#include"iostream

2015-09-07 22:12:08 212

原创 uva 1645 count

题意:有多少个n个节点的有根树,满足每层节点的子节点个数相同,输出该数目除以1e9+7的余数。分析:这种题目就属于那种,看起来很高冷,读完题更高冷。言归正传,根据题意,这棵树是关于根节点对称的,对称性非常好,根节点下面的子树也完全相同。所以就有了如下递推关系:// Created by Chenhongwei in 2015.//

2015-09-07 00:02:14 305

原创 uva 1631 locker

题目大意:给出两串长度为n(n求源串最少多少步能变成目标串。一看就知道是dp的题目,这题状态不难想d(i,x,y)表示转好第i个数且第i+1个数为x,i+2个为y 时候所用的最少次数直接枚举i+1个数和i+2个数分别转动的次数就好了另一个坑在于,i+1,i+2溢出怎么处理,比较平庸的是单独讨论。。。在数组后面加了两个0,这样不仅代码长度缩短,而且最终状态也是固定的//

2015-09-06 23:54:10 1064 1

原创 uva 1471 防线(defences lines)

题意:给出一个序列,删掉它的一个连续子序列(该子序列可以为空),使得剩下的序列有最长的连续严格递增子序列。分析:这个可以看作lrj的《训练指南》P62中讲到的LIS的O(nlogn)的优化变形过来的问题。预处理:Li是第i个元素Ai向左延伸的最大长度,即[i, i + Li - 1]是一个递增区间同样地,Ri是第i个元素向右延伸的最大长度。我

2015-09-06 23:44:28 323

原创 uva 253 Cube painting

思路:    选择立方体一面为参照面有6中可能,直接硬编码。每种参照情况下,选择侧面能构建再4种情况。// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. All rights reserved.#include "iostream"#include "cstdio"#in

2015-09-06 21:00:31 181

原创 hdu 3549 a flow problem 的多种解法

网路流裸题,用来测试模板吧。1.EK-1// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. All rights reserved.#include"iostream"#include"cstdio"#include"cstdlib"#include"cstring"#include"c

2015-09-06 19:12:33 222

原创 noip 2012 国王游戏

考虑交换相邻两个二元组的影响,交换i和i+1,实际上只影响到Fi和Fi+1。设T = A1 * A2 * ... * Ai-2 * Ai-1方案A:Fi = T / Bi,Fi+1 =T * Ai / Bi+1方案B:Fi = T / Bi+1,Fi+1 =T * Ai+1 / Bi①假设1 / Bi < Ai / Bi+1,1 / Bi+1 < Ai+1 / Bi

2015-09-06 14:53:54 290

原创 UVa 1368 DNA Consensus String

题意:给出n个长度为len的DNA序列,求一个DNA序列,使得该序列到这m个DNA序列的距离尽量短两个等长字符串的字符不同的位置个数即为两个字符串之间的距离思路:记录下每个位置出现次数最多的字母,再扫一遍这n个串,求出距离// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. All rights

2015-09-06 14:44:21 177

空空如也

空空如也

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

TA关注的人

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