自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ZOJ 3946 Highway Project

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3946题意:有n个点(编号0~n-1),m条边的一个图,每条边都有权值和搭建这条边所需要的花费。现在从0号点出发,要使得它到其余点的路径和最小,而且在路径和最小的情况下,要求搭建边的花费最少。思路:首先考虑一个点到其余点最短,可以用dijkstr

2016-04-29 08:41:57 789

原创 hihoCoder 1044 状态压缩·一

题目链接:http://hihocoder.com/problemset/problem/1044?sid=784987题意:有n个数,可以选取一些数,但是在每个连续区间长度为m的区间中的被选中数的个数不能超过q个,问可以选取到的和的最大值是多少。思路:我们用dp[i][j]表示在第i个位置上,j是一个二进制状态,表示包括当前位置的前M-1个位置上的数是否被选取。那么dp[

2016-04-29 08:15:38 962

原创 欧拉函数

一个数的欧拉函数是指不超过这个数且与此数互质的正整数的个数。1、如果n是质数,则φ(n) = n - 12、如果n为两个互质的数a,b的乘积,则φ(a*b) = φ(a) * φ(b)与a*b互质的数,只能是既与a互质(有φ(a)个),又与b互质(有φ(b)个),所以一共有φ(a) * φ(b)个3、如果n为某一个质数p的幂次p^a,则φ(p^a) = (p-1)*p^(a

2016-04-27 18:53:28 849

原创 POJ 3090 Visible Lattice Points

题目链接:http://poj.org/problem?id=3090题意:有一个n+1 * n+1 的点阵,从(0,0)号点向各个点连线,问一共可以看到多少个点( 比如(2,4)会被(1,2)挡到 )。思路:考虑(x,y)是否能被看到,仅当x与y互质,否则就会有( x/gcd(x,y) , y/gcd(x,y) )去挡到这个点。即求

2016-04-27 18:47:13 263

原创 POJ 2407 Relatives

题目链接:http://poj.org/problem?id=2407题意:求有多少个比n小且与n互质的正整数。思路:单个欧拉函数的计算。

2016-04-27 12:49:28 260

原创 HDU 5661 Claris and XOR

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5661题意:x∈[a,b],y∈[c,d],使得x xor y 的值最大,求最大值是多少。思路:从高位到低位贪心,优先让高位异或值为1,这样得到的数一定是最大的。对于第i位,先看一看x和y是不是能取相异的,如果能取相异的,答案就加上那一位的权值。判断第i位是否可以取0,如果第

2016-04-26 20:26:52 342

原创 HDU 5656 CA Loves GCD

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5656题意:有N个不同的数,每次从中选出若干个(至少一个数),求出所有数的GCD然后放回去。求所有选择的GCD之和是多少。思路:由于每个数的范围很小,所以用dp[i][j]来表示前i个数中选取若干个使得gcd为j的方案总数。1、不选取ai,dp[i][j]+=dp[i-1][

2016-04-26 19:32:14 253

原创 UVA 818 Cutting Chains

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35523题意:有n个圆环,其中有一些已经扣在一起。现在需要打开尽量少的圆环,使得所有圆环可以组成一条链(所有打开的圆环最后都要再次闭合)。例:1-2 2-3 4-5,则需要打开圆环4,用它穿过3和5后再次闭合。思路:由于n不大,我们可以枚举所有打开

2016-04-26 08:10:33 345

原创 HDU 5667 Sequence

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5667题意:给一个递推式,求第n项。思路:Fn全部是以a为底数的幂,所以我们先忽略底数,将第n项的指数算出来,再计算fn。设指数为pi,p1 = 0,p2 = b,pn = b + c * p(n-1) + p(n-2)由于n非常大,所以我们需要用矩阵+快速幂来计

2016-04-25 11:16:24 203

原创 UVA 211 The Domino Effect

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35575题意:28张多米诺骨牌,每一张都有一个编号和序号(1~28),现在给出7*8的编号图,输出所有可能的序号放置图(可以横放也可以竖放)。详情见题目。思路:一个位置一个位置的搜索,对于每一个位置(x,y)都可以横着放或者竖着放(判断一下编号

2016-04-21 11:55:19 329

原创 UVA 140 Bandwidth

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19399题意:给出一个n个节点的图和一个节点的排列,定义节点i的带宽b(i)为i和相邻节点在排列中的最远距离,而所有b(i)的最大值就是整个图的带宽。给定图G,求出让带宽最小的节点排列,如果有多个答案,输出字典序最小的那个。思路:回溯搜索,每次找到

2016-04-21 11:32:23 252

原创 POJ 2184 Cow Exhibition

题目链接: http://poj.org/problem?id=2184题意:有n个奶牛,每个奶牛有一个f值和s值,现在要选取若干个奶牛,它们的f值之和为TF,s值之和为TS。要求在TF和TS都大于等于0的条件下,使得TF+TS最大。s,f∈[-1000,1000],n思路:用dp[i]表示,奶牛的f之和为i时,TS的最大值。因为TF范围是-10W~10W,我们将数据偏移一下,

2016-04-21 09:43:19 228

原创 POJ 2411 Mondriaan's Dream

题目链接:http://poj.org/problem?id=2411题意:用1×2的砖铺满m×n的矩形,问一共有多少种铺法。思路:状态压缩DP, 只有两种铺法,横着铺和竖着铺。我们按行dp,那么就要把每一行的状态表示出来。对于横着铺,可以用两个相邻的1来表示;对于竖着放,我们将上面那行的位置记0,下面那行的位置记1,也就是竖着的0 1表示。先确定第一行的状态(按照状态规定,第一行

2016-04-20 20:17:33 269

原创 POJ 3420 Quad Tiling

题目链接:http://poj.org/problem?id=3420题意:用1×2的砖铺满4×n的矩形,问一共有多少种铺法。思路:状态压缩DP, 只有两种铺法,横着铺和竖着铺。我们按行dp,那么就要把每一行的状态表示出来。对于横着铺,可以用两个相邻的1来表示;对于竖着放,我们将上面那行的位置记0,下面那行的位置记1,也就是竖着的0 1表示。先确定第一行的状态(按照状态规定,第

2016-04-20 20:12:48 277

原创 POJ 2686 Traveling by Stagecoach

题目链接:http://poj.org/problem?id=2686题意:有m个城市互相连接,每一条道路有一个距离。现在有n张车票,每张车票上都记有马的匹数且只能用一次,从一个城市移动到另一个城市所需的时间等于城市之间道路的长度除以马的数量的结果,求从城市a到城市b的最短时间。思路:状态压缩DP,因为车票只能用一次,所以我们记录车票使用情况的状态,以及当前所在的城市编号进

2016-04-20 20:02:53 262

原创 POJ 2663 Tri Tiling

题目链接:http://poj.org/problem?id=2663题意:用1×2的砖铺满3×n的矩形,问一共有多少种铺法。思路:状态压缩DP, 只有两种铺法,横着铺和竖着铺。我们按行dp,那么就要把每一行的状态表示出来。对于横着铺,可以用两个相邻的1来表示;对于竖着放,我们将上面那行的位置记0,下面那行的位置记1,也就是竖着的0 1表示。先确定第一行的状态(按照状态规定,第

2016-04-20 19:39:13 259

原创 POJ 2441 Arrange the Bulls

题目链接:http://poj.org/problem?id=2441题意:有n个奶牛,m个牛棚(编号1~m),每只奶牛都会有自己喜欢的牛棚的编号,问有多少种方法可以将它们全部安排进牛棚且每个牛棚只有一只奶牛。思路:状态压缩DP,因为牛棚每个只能用一次,所以把每个牛棚是否用过作为状态压缩,然后从第一个牛开始枚举到第n个。再枚举下一个牛用哪个牛棚,就可以转移了。

2016-04-19 20:06:59 282

原创 POJ 2288 Islands and Bridges

题目链接: http://poj.org/problem?id=2288题意:给出一个图,每个点都有权值,有一些边连接着这些点,现在定义一条哈密顿回路产生的值为以下三者之和:1、回路上的各个点的权值之和 2、回路中相邻点的乘积之和 3、如果回路中有c1c2c3,且c1与c3也相邻,那么就加上c1*c2*c3。现在求一共有多少条回路产生的值可以同时达到最大。思路:状态压缩DP,因

2016-04-19 19:38:09 267

原创 POJ 2817 WordStack

题目链接:http://poj.org/problem?id=2817题意:有n个单词,如果两个单词相邻,可以在一个单词前面填充一些空格,使得两个单词对应位置上的字母相同(这些位置可以不相邻),最大的相同数量为这两个单词所产生的值。现在要找到一种排列方式,使得这些单词产生值之和最大。思路:先计算出这些单词两两相邻所产生的值,在LCS的基础上做了一个小改动。然后用状态压缩DP计算

2016-04-19 19:13:02 317

原创 HDU 3001 Travelling

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001题意:有n个城市,有一个人想全部逛一遍,但是每个城市最多经过两次,他可以从任意一个城市出发,问最小消费。思路:三进制TSP的状态压缩DP。先预处理出来状态S对应的每一位的值。然后枚举状态以及当前在的城市编号和上一个所在的城市。#include #inclu

2016-04-19 19:01:33 255

原创 POJ 3311 Hie with the Pie

题目链接:http://poj.org/problem?id=3311题意:有一个人从编号为0的点出发,现在想把编号为1~n的点都经过至少一次,最后再回到0号点,每一条边都有一个权值,问走一遍最小值是多少。思路:状态压缩Dp,由于n很小,先用floyd算出两点之间的最短距离。然后用dp[s][i]表示,当前在i点,经过点的状态为s(用二进制表示每个点当前是否已经走过)的最小值。

2016-04-19 11:22:28 241

原创 WOJ 1608 Calculation

题目链接:http://acm.whu.edu.cn/land/problem/detail?problem_id=1608题意:将n个数划分为若干个部分,然后每一部分里面的数进行+/-操作,如果一个部分里面的数可以凑成s,那么就计1,问最多可以凑成多少个s。比如1 2 3 4 5 -> (1+4) (2+3) (5)  1 2 3 8 8 -> (8-3) (8-1-2)

2016-04-18 17:15:11 271

原创 POJ 1185 炮兵阵地

题目链接:http://poj.org/problem?id=1185题意:在n×m的地图上放置炮兵,每个炮兵的攻击范围是上下左右各延伸两格,地图上有一些位置为山地,不可以放置,问给出地图可以放置炮兵的最多数量。思路:状态压缩DP,如果当前第i行放置,由于考虑到炮兵的攻击范围,所以需要枚举前两行的状态,所以用dp[i][s1][s2]来表示第i行状态为s1,上一行状态为

2016-04-18 17:12:59 240

原创 POJ 3254 Corn Fields

题目链接:http://poj.org/problem?id=3254题意:在n×m的地图上,有一些地方可以放牛,有一些地方不可以,而且一只牛的上下左右位置不可以再放其它的牛,求在给定地图上一共有多少种放牛方案。思路:状态压缩DP,我们一行一行的放,当前行放置会受到上一行放置状态的影响,我们用dp[i][s]表示第i行的放置状态为s时的方案数,那么dp[i][s] = 

2016-04-18 17:09:27 206

原创 HDU 2167 Pebbles

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2167题意:给一个n×n的格子,每个里面有一个数,如果一个数被选取了,那么它周围的八个位置的数都不可以被选取,问可以选到的最大数之和是多少?思路:基础状态压缩Dp,按行来递推,dp[i][state]表示第i行的选数状态为state时可以选到的最大值(用二进制数来表状态,比如

2016-04-18 17:06:46 287

原创 HDU 1074 Doing Homework

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074题意:有n个作业待做,每个作业都有用时和期限,如果做完的时候超过了期限,就要扣超出期限时间的分数,问怎么安排做作业的顺序,可以使得扣分最少,如果有多种方案,输出字典序最小的。思路:状态压缩Dp,n

2016-04-10 20:48:51 220

原创 HDU 5652 India and China Origins

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5652中文题面:http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=681&pid=1002题意:两个国家之间有一个地图,地图上有一些山峰,即障碍。一开始两个国家是相通的,现在在地图上依次出现Q座山峰,一

2016-04-02 12:21:04 257

原创 HDU 5514 Frogs

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5514题意:有m个石头围成一圈,编号分别为0到m-1,现在有n只青蛙,都在0号石头上,第i只青蛙会从当前编号为pos的石头跳到编号为(pos+ai)%m的石头上。但凡被青蛙经过的石头都会被占领,求这m块石头中所有被占领过的石头的编号和。 思路:容斥定理,gcd(ai,m)是第

2016-04-02 10:53:05 832

空空如也

空空如也

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

TA关注的人

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