自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 BFS,Dijkstra,Floyd,DP求解最短路径问题

Dijkstra,Floyd就不说了,这种算法的用途是求解单源最短路径,举个例子,用这两个算法可以求出0到1.2.3.4的最短路径,可是我只需要你求0到3的最短路径,这时你就可以用DP了,为啥要扯上搜索,是因为权值为1的最短路就是搜索粘一个用DP求最短路径的链接:http://wenku.baidu.com/link?url=uaaG3egZKZtEiUiSWtlK

2015-11-28 22:23:43 2453

原创 POJ 1088 滑雪(记忆化搜索)

题目地址:点击打开链接思路:简单的记忆化搜索,我刚开始细节没注意错了一次,后来却因为判断语句里写了一个变量wrong了无数发,汗AC代码:#include #include #include #include #include #include #include #include #include #include #include typedef long l

2015-11-28 21:56:54 381

原创 POJ 3628 Bookshelf 2(用DFS做01背包)

题目地址:点击打开链接题意:小明买了一个书架,他想把东西放到书架上面,于是拿来了n个凳子,这些凳子的总高度大于等于书架的总高度,让你从n个凳子里取出一些使这些凳子的总高度大于书架的高度,并且超出书架的高度最低思路:书架高度太高了,所以不能用动态规划,用搜索即可AC代码:#include #include #include #include #include #includ

2015-11-28 18:48:35 341

原创 HDU 1209 Clock(模拟)

题目地址:点击打开链接题意:先按时针和分针的角度排序,如何角度相等则按时间排序思路:刚开始是想着时针和分针对0点的角度加起来,考虑的情况多且比较复杂,后来角度直接减取绝对值就可m点n分k秒时时针从0点转过的角度a = [m + n/60 + k/3600]*30 = 30m + n/2 + k/120(度)分针转过的角度b = [n/60 + k/3600]*360 

2015-11-22 15:34:15 402

原创 ZZULI 1788: 小金刚的宝藏

题目地址:点击打开链接思路:价值和的一半为一个背包,往里面放东西就行了,刚开始输出搞错了,结果用搜索做超时了AC代码:#include #include #include #include #include #include #include #include #include #include #include typedef long long ll;us

2015-11-21 19:31:37 412

原创 HDU 2122(最小生成树模板)

题目地址:点击打开链接思路:模板题,注意重边和不能构成的情况即可AC代码:#include #include #include #include #include #include #include #include #include #include #include typedef long long ll;using namespace std;con

2015-11-21 17:09:12 453

原创 HDU 1708 Fibonacci String(字符串模拟)

题目地址:点击打开链接思路:任意一个字符串都是由最初的第零个和第一个构成的,只要记录含有的第零个和第一个字符串的个数即可AC代码:#include #include #include #include #include #include #include #include #include #include #include typedef long long

2015-11-21 14:07:00 900

原创 HDU 5562 Clarke and food(模拟,看起来像背包)

题目地址:点击打开链接题意:给你一个背包容量为V,然后给你n种物品,每种物品一个容量,求背包最多能放几种物品思路:比赛的时候乍一看像背包,但是这背包容量也太大了吧,其实是贪心,不是求背包能放的最大体积,是求背包能放的最大个数,贪心一下就行AC代码:#include #include #include #include #include #include #include

2015-11-15 16:12:46 547

转载 单调栈

原文地址:http://blog.csdn.net/alongela/article/details/8227707单调栈与单调队列很相似。首先栈是后进先出的,单调性指的是严格的递增或者递减。单调栈有以下两个性质:1、若是单调递增栈,则从栈顶到栈底的元素是严格递增的。若是单调递减栈,则从栈顶到栈底的元素是严格递减的。2、越靠近栈顶的元素越后进栈。单调栈与

2015-11-14 20:09:49 291

原创 POJ 3250 Bad Hair Day(单调递增栈)

题目地址:点击打开链接题意:牛排队排好,每个牛只能看到比它高度严格低的牛,问所有的牛能看到的个数思路:换个思路,求每个牛能被看到多少次,加起来,和题目要求的结果是一样的,单调递增栈:http://blog.csdn.net/alongela/article/details/8227707AC代码:#include #include #include #include #in

2015-11-14 20:08:23 697

原创 HDU 2151 Worm(和树塔问题差不多)

题目地址:点击打开链接思路:刚开始想到的就是用组合数学求,写废了,后来才想到这是道DP水题,汗AC代码:#include #include #include #include #include #include #include #include #include #include #include typedef long long ll;using nam

2015-11-14 17:12:15 320

原创 POJ 1836 Alignment(LIS和LDS的结合题)

题目地址:点击打开链接题意:有一队排列好的士兵,长官让一些人除队后,每个人都可以看到左边或者右边的无穷远处思路:题没怎么看懂,但觉得大致意思就是求最长上升子序列,这样就能看到他左边和右边的人了,看了大神的博客才知道是求LIS和LDS(最长下降子序列,估计应该叫这个名字吧)的组合情况,但还是写错了一次,看下面错误代码,AC代码:#include #include #inc

2015-11-14 13:29:01 555

原创 POJ 1157 LITTLE SHOP OF FLOWERS(前i朵花放到前j个花瓶)

题目地址:点击打开链接题意:给f朵花,从1-f标号,v个瓶,从1-v标号,标号小的花必须放到前面,一个map[i][j]数组表示表示把第i朵花放到第j个瓶所获得的美感,求如何放花,能使获得的花的美感最大思路:dp[i][j]表示把前i朵花放到前j个瓶里面,如果第j朵花在第i个瓶子里,则dp[i][j]=dp[i-1][j-1]+map1[i][j],如果第j朵花不放在第i个瓶子里,则dp[

2015-11-12 19:50:45 470

原创 ZOJ 1563 Pearls(一个物品和他之前的组合情况)

题目地址:点击打开链接题意:一个公司要采购一批珠宝,但是特别蛋疼的是,每次采购n个珠宝,但是必须付(n+10)个珠宝的钱,于是公司的CEO想,可以把价格低的珠宝采购成价格高的珠宝,这样有时候会省一些钱思路:第一次还以为是个水题呢,敲了一下结果连第一个测试案例都过不了,我原来想着一些价格低的只会按和价格相邻且比他高的买,结果第一个案例就错了,原来第1,2种物品都按物品3的价格买才最省钱,后来

2015-11-10 20:15:02 315

原创 HDU 1406 (完数)

题目地址:点击打开链接思路:提前预处理一下就行AC代码:#include#includeint x[10000];int main(){ memset(x,0,sizeof(x)); int i,j,a,b,sum = 1,t,temp; for(i=2; i<10000; i++) { sum = 1; for(

2015-11-08 22:43:43 325

原创 HDU 1029 Ignatius and the Princess IV

题目地址:点击打开链接思路:水题,求一个由n个数组成的数组种至少出现(n+1)/2次的数AC代码:#include#includeint a[500000];int main(){ int n,i,j,b,k; while(scanf("%d",&n) != EOF) { memset(a,0,sizeof(a)); fo

2015-11-08 22:38:05 291

原创 HDU 1027 Ignatius and the Princess II(求由1-n组成按字典序排序的第m个序列)

题目地址:点击打开链接思路:用STL里的函数即可,暴力换一下也可AC代码:#include#includeusing namespace std;int main(){ int m,n,a[1001],i,sum; while(cin>>m>>n) { sum=0; for(i=0;i<m;i++)

2015-11-08 22:28:23 461

原创 HDU 1160 FatMouse's Speed(最长递减子序列变形)

题目地址:点击打开链接题意:给一堆老鼠,求一个最大的子集,子集的特点是从开头到结尾重量严格递增,速度严格递减思路:先给所有老鼠按重量递增排个序,然后对速度求最长递减子序列AC代码:#include #include #include #include #include using namespace std;int dp[1001],pre[1001];stru

2015-11-08 22:07:17 386

原创 HDU 1704 Rank(求闭包)

题目地址:点击打开链接题意:给你n个人,m个数据,每组数据2个数字,表示第一个数字赢了第二个数字,关系具有传递性,问问2个人不知道他们胜负关系的个数是多少思路:wrong了无数发,最后参考别人的求闭包的模板A了,刚开始用的深搜,不知道哪里错了,有时间改AC代码:#include #include #include #include #include #include #

2015-11-08 11:50:27 423

原创 POJ 2377 Bad Cowtractors(最大生成树)

题目地址:点击打开链接思路:就是求最大生成树,即把n个点都连起来且不会出现回路,并且花费最大,刚开是思维定式了,把边赋初值为一个最大值,结果调了半天,比赛完了5分钟就A了,把初始边都赋值为0,每次就最大边加入,还有就是图类问题要注意多重边的可能,这道题要选最大的边AC代码:#include #include #include #include #include #includ

2015-11-08 11:07:05 382

原创 HDU 1465 不容易系列之一(错排公式)

题目地址:点击打开链接思路:错排公式的简单运用,刚开始写了个错误代码,wrong了无数发这个问题推广一下,就是错排问题,是组合数学中的问题之一。考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n)。 研究一个排列错排个数的问题,叫做错排问题或称为更列问题。错排问题最早被尼古拉·伯努利和欧

2015-11-08 10:31:39 363

原创 HDU Largest prime factor(埃拉托色尼筛选法求素数模板法改动)

题目地址:点击打开链接题意:给你一个数,求它这个数的最大素因子在素数表的第几位思路:刚开始思路有一点错误,看错误代码错误代码:#include 0#include #include #include #include #include #include #include #include #include #include typedef long long

2015-11-08 10:08:16 415

原创 ZOJ 1610 Count the Colors(暴力或者线段树)

题目地址:点击打开链接题意:给一段区间,区间长度为0-8000,每组样例的第一个数n为总共刷的次数,接下来n行,每行一个a,b,c,表示[a,b]这个区间内的颜色刷成c,问最后每种颜色的区间有几个,颜色标号按大小排序思路:这道题本意是用线段树,但数据范围较小,暴力也可过,注意的地方有2个(1)必须把初始的数组赋初值为-1,因为赋初值为0,你就不知道这段是初始化的0还是刷上去的0(2)每组数

2015-11-07 19:52:11 458

原创 POJ 1465 Multiple(用BFS求能组成的n的最小倍数)

题目地址:点击打开链接题意:给一个数n,接着给m个数,用给已知的m个数组成的数最小的能被n整除的数是多少(其中m个数可以重复使用)思路:和HDU1226有点相似,只不过比那道题简单,这里面m的数值没有说明,但是可以猜出来,问题的解空间是m^m,所以开一个大小为50的数组足够了,组成的数可以很大,必须不断取模,而且解空间太大,必须用同余减枝,假设A%N==B%N(设AAC代码:#in

2015-11-05 15:25:20 447

原创 HDU 1576 A/B(扩展欧几里得算法)

题目地址:点击打开链接思路:1.(A/B)%9973=K2.A/B=K+9973X(X为任意数)3.A=KB+9973XB4.A%9973=(KB+9973XB)%99735.N=KB%99736.KB=9973Y+N(Y为任意数)7.K/N*B-9973/N*Y=GCD(B,9973)=1实际上就是用扩展欧几里得算法求X,具体求模的地方不太了解,参考大神A的,大神

2015-11-04 21:41:58 354

原创 HDU 1026 Ignatius and the Princess I(BFS+优先队列+路径记录)

题目地址:点击打开链接题意:小明要从一个矩阵的(0,0)点到(n-1,m-1)点问最少花费多少时间到达,. : The place where Ignatius can walk on.X : The place is a trap, Ignatius should not walk on it.n : Here is a monster with n HP(1思路:参考大神A的,

2015-11-03 21:57:12 364

原创 HDU 2717 Catch That Cow(BFS,每次有3种走路方式,问最少的步数到达目的地)

题目地址:点击打开链接题意:农民要在一条线捉一头牛,假设他的坐标为x,则他有3种走路方式(1)x-1  (2)x+1 (3)2*x;问最少的步数捉到牛思路:刚上来直接模拟也没判断,结果果断超内存,减了不少还是超,看了别人的题解,我是出来的时候判断结果T了,别人是进去的时候判断结果A了,有时间仔细研究一下,还有一个神减枝是应经走过的路标记一下,下一次走过的时候时间肯定比第一次走过的时间长,所

2015-11-01 18:21:31 520

原创 HDU 5523 Game(模拟)

题目地址:点击打开链接思路:这道题坑还是比较多,比赛的时候忘考虑了都为1的情况结果一直wrong,hack别人的时候才知道,今天本来1A的,结果wrong了,原来我里面还有一个错误的部分AC代码:#include #include #include #include #include #include #include #include #include #inclu

2015-11-01 16:52:02 294

原创 HDU 5522 Numbers(模拟,问数组中是否存在任意2个数字的和在数组中)

题目地址:点击打开链接思路:我用了2个for循环+2分搜索过了,怕超时,队友用3个for循环也过了AC代码:#include #include #include #include #include #include #include #include #include #include #include using namespace std;int a[1

2015-11-01 10:03:43 549

C语言算法经典

C语言入门,C语言算法,C语言程序,C语言经典

2015-02-07

空空如也

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

TA关注的人

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