自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDU 1455 Sticks(回溯,减枝很巧妙)

题目地址:点击打开链接 题意:小明拿来几根相同长度的棍子,然后把这些棍子截成好几节,问最后能拼成几根长度相同的棍子(要求这些棍子的长度最小) 思路:和HDU1518相似,可以看本博客,那道题解写的比较详细,这不过这道题得在那道题上多加几个减枝才能A AC代码: #include #include #include #include #include #include #incl

2015-10-31 11:35:20 706

原创 河南第八届省赛(最小换乘)(最短路径,DP)

题目地址:点击打开链接 思路:建图很巧妙,和学长讨论过,我还以为只能用BFS做呢,没想到最短路径也能做,还有用DP做的,说2种建图方式,第二种不太明白 (1)一条路线上的站点和它后面的站点建单向边,权值为1,跑个最短路结果减1就行 (2) 要注意的一点就是,站点表示的数字可以是2,3位数,刚开始runerror了,就是因为把所有站点都当成一位数了 AC代码: #include #in

2015-10-29 22:01:02 1029

原创 河南第八届省赛(挑战密室)

题目地址:点击打开链接 思路:调了3,4个小时才调出来,还是菜啊,各种细节基础问题出错,刚开始想着短一点,不枚举,后来快写完了才发现括号没考虑,后来想着括号里和括号外用同一个函数调用 懒得想了,直接爆吧,但是还得考虑括号外的数字,还得考虑整个式子前面的数字,剩下的就是最伤心的部分了,每次用的都是一个数组结果却用strlen求值,然后函数调用,结果数组的值就是不对,结果你懂的,后来数组的长度虽然

2015-10-29 13:01:01 1119

原创 HDU 1214 圆桌会议(好题)

题目地址:点击打开链接 题意:n个人围成一个圈,现在每分钟交换一次相邻的位置,问最少需要多少分钟,n个人的顺序与原始顺序相反。例1234变成4321.  题解:一条线上的n个人,123..n变为n..321,需要1+2+...+(n-1)=n*(n-1)/2次,即1右移n-1步,2右移n-2步..。而该题是围成一圈,所以可以双向移动, 因而将n分成两部分,n/2和n-n/2,两部分独自逆序。

2015-10-29 11:22:49 1270

原创 HDU 1518 Square(回溯搜索,减枝很巧妙啊)

题目地址:点击打开链接 题意:给你n个棍子,这些棍子的长度告诉你,问把这个棍子全都用上,能否组成一个正方形 思路:用回溯一般就是求可能情况(这种情况能否组成),所有组成情况的最值,能组成这种情况的个数(八皇后问题),这道题的减枝想到了还容易wrong,注意看我注释掉的部分,减枝比较容易想,每次只找比它长的,因为组成一条正方形的边的长度肯定有长有短,而这道题只求可能情况,所以这种减枝方法可行

2015-10-27 18:59:35 518

原创 河南第八届省赛(引水工程)(Prim求最小生成树)

题目地址:点击打开链接 思路:建一个虚拟点,和所有的水库相连权值为自建水库的花费,跑一遍最小生成树就行 AC代码: #include #include #include #include #include #include #include #include #include #include #include using namespace std; const

2015-10-26 14:58:45 860

原创 河南第八届省赛(Interference Signal)(简单模拟,有很多注意的)

题目地址:点击打开链接 题意:给你一个数组有n个数字,求一个最少有m个数字并且连续的子序列的最大平均值乘以1000 思路:本来上来想的是动态规划,怕超时,结果学长说这道题的复杂度比O(n^n)还小,而n AC代码: #include #include #include #include #include #include #include #include #include

2015-10-26 09:53:43 852

原创 河南第八届省赛(Distribution)

题目地址:点击打开链接 思路:水题 AC代码: #include #include #include #include #include #include #include #include #include #include #include using namespace std; struct point { int x,y; }a[110]; in

2015-10-26 08:27:22 801

原创 POJ 3041 Asteroids(最大匹配数=最小点覆盖)

题目地址:点击打开链接 题意:贝西驾驶一辆飞船,飞过一个n*n的网格,里面有k个小行星,然后他要发射子弹把这些小行星打掉,问把这些小行星打掉最少需要发射几发子弹 思路:矩阵类的题有时候会和二分图结合的很巧妙,这个就是比较裸的求最小点覆盖 AC代码: #include #include #include #include #include #include #include #

2015-10-25 20:26:08 387

原创 POJ 1325 Machine Schedule(最大匹配数=最小点覆盖)

题目地址:点击打开链接 题意:给你2个机器A(A的模式有n种,标号从0到n-1)和B(B的模式有m种,标号从0到m-1),然后给你k个任务,(i,x,y)表示做完第i个任务可以用A机器的x模式和B机器的y模式 思路:很裸的二分图最小点覆盖,这道题需要注意点,A,B机器刚开始的模式都是0,所以在模式0处的不算,这个算是一个坑吧,看了别人的博客才知道 AC代码: #include #incl

2015-10-25 19:34:42 344

原创 POJ 2349 Arctic Network(Prim,有好多要注意的)

AC代码: #include #include #include #include #include #include #include #include #include #include #include using namespace std; int s,p; struct city { int x,y; }a[510]; double getdi

2015-10-24 17:21:42 383

原创 HDU 1216 Assistance Required(模拟)

题目地址:点击打开链接 题意:给你一堆人,标号从2开始依次递增,标号为2的人不用干活,然后往后数2个数,被点到人去干活,然后又重头开始,选到第一个不用干活的人的标号为i,然后往后数i个数,被点到人去干活,就这样循环下去,问第n个不用干活的人的标号是多少? 思路:上来题没看清还以为使用埃拉托斯尼筛法求素数表了,描述太像了,结果打了个素数表就交了,wrong了,后来终于把题看清了,埃拉托色尼筛法是

2015-10-24 14:03:51 712

原创 河南省第八届省赛(最大岛屿)

题目地址:点击打开链接 思路:水题,就是输入有点麻烦 AC代码: #include #include #include #include #include #include #include #include #include #include #include using namespace std; int map1[510][510]; int m,n,t;

2015-10-21 17:20:07 625

原创 各种好博客

poj 1679 The Unique MST 【次小生成树】【模板】 分类: 图论 2014-11-04 10:11 508人阅读 评论(0) 收藏 举报 algorithmnetworkpoj次小生成树最小生成树 题目:poj 1679 The Unique MST 题意:给你一颗树,让你求最小生成树和次小生成树值是否相等。 分析:这个题目关

2015-10-21 12:36:11 483

原创 HDU 5500 Reorder the Books(思维题,很巧妙)

题目地址:点击打开链接 题意:给你一堆书,每个书有一个代号,每次抽一本书放到最上面,问最少移动多少次,可以把书变的有序,即最上面的书的代号最小,最下面的书的代号最大 思路:从标号最大数从后往前扫一遍就行,扫到最后就是要搬的次数,因为这些标号大的书可以不动,把他们中间的书抽走就行,而把这些标号大的书放到前面只会浪费次数 AC代码: #include #include #include

2015-10-21 11:25:00 461

原创 HDU 1875 畅通工程再续(Prime,注意数据格式啊,老是在这方面出错)

题目地址:点击打开链接 思路:把距离小于10的变为1010,看代码吧,这道题用Kruskal不太合适,kruskal算法适合于稀疏图,可这道题每2个点之间都得建一条边,prim算法适合于稠密图,注意数据格式,该用double的时候用double,该用int的时候用int AC代码: #include #include #include #include #include #incl

2015-10-20 20:47:28 333

原创 HDU 1690 Bus System(Floyd)

题目地址:点击打开链接 思路:水题吧,dist[4],cost[4],loc[110];都得用__int64,我看不会超int结果就用int,wrong了 AC代码: #include #include #include #include #include #include #include #include #include #include #include us

2015-10-20 16:06:32 339

原创 HDU 5505 GT and numbers(求一个数乘以它的因子得到另一个数的最小步数)

题目地址:点击打开链接 思路:参考大神A的,注意一下long long 能表示的最大数为2^63-1,而unsigned long long 能表示的最大数为2^63,自己比赛的时候没A出来理解不深 AC代码: #include #include #include #include #include #include #include #include #include #

2015-10-18 18:07:10 410

原创 HDU 5504 GT and sequence(给一堆数,求最大值,坑比较多)

题目地址:点击打开链接 思路:看着是水题,坑还是比较多的,(1)如果有正数,那么正数的全乘起来,如果还有超过2个的负数再乘以偶数个最小的负数,直到不能乘为止(2)如果只有超过2个的负数,则乘以偶数个最小的负数,直到不能乘为止(2)如果只有一个负数或没有负数,如果有0,输出0,没零,那就输出负数 AC代码: #include #include #include #include #in

2015-10-18 17:05:02 436

原创 HDU 3371 Connect the Cities(Prim,Kruskal)

题目地址:点击打开链接 题意:给你一堆城市,然后来了一次海啸,海啸完了还有一些城市是连在一块的,问把所有的城市连在最小的花费是多少 思路:Kruskal算法超了无数发,后来改用prim算法,把海啸过后,连在一块的城市之间的距离设为0即可,用C++提交 AC代码: #include #include #include #include #include #include #inc

2015-10-18 14:35:01 306

转载 数据范围

原文地址:点击打开链接 找了一天的bug竟然是两个int乘积超了int的范围,悲催!!将int转为了__int64吧!! 1.各整型范围: unsigned   int   0~4294967295    int   2147483648~2147483647  unsigned long 0~4294967295 long   2147483648~2147483647 l

2015-10-17 14:17:48 349

原创 HDU 2680 Choose the best route(Dijkstra,建图的方式很巧妙)

题目地址:点击打开链接 题意:有一个人去他 思路:在HDU2066的基础上变的简单了,那道题是双向图,这道题是单向图,害我wrong了好几发,有2种建图方式(1)把小明的家编号为0,把和他家相邻的车站之间的距离设为0,这样最短距离一定会经过他家相邻的车站(2)反向建图,求从小明朋友家到小明家附近车站的最短距离,这个就和模板差不多了,建图的时候注意反向建图 AC代码1: #include

2015-10-16 21:44:22 383

原创 HDU 1596 find the safest road(Dijkstra,数据格式没定义好wrong了无数发)

题目地址:点击打开链接 思路:应该定义为double却定义为int,wrong了无数发,注意起点和终点一样的情况 AC代码1: #include #include #include #include #include #include #include #include #include #include #include using namespace std;

2015-10-16 20:10:18 415

原创 HDU 3790 最短路径问题(Dijkstra,要求距离和时间都最短)

题目地址:点击打开链接 思路:更新距离的时候把时间也更新一下就行,总结一下图论类的题的各种坑吧,1建图的时候除非说明是单向图,否则建双向图,2有重边的可能,记得与以前的比较,3有可能起点和终点是一个点,wrong了无数发,把自己的代码一点一点嵌到被人的代码试,结果是变量名写错了,害我调了2小时,都是泪啊 AC代码: #include #include #include #include

2015-10-14 18:38:31 426

原创 HDU 2066 一个人的旅行(Dijkstra,建图很巧妙)

题目地址:点击打开链接 思路:最开始想floyd会超时,结果学长说最后判断一下就不会超时,后来用Dijkstra做,每次求出一个起点到想去的地方的最小值,最后比较每次求出的最小值,结果老是运行失败,后来学长说只用一次Dijkstra即可,把从家里到他附近的城市之间的距离设为0,这样最后求出的最小值一定会经过她家里附近的城市,和省赛的最小换乘挺相似,看着挺难做,但是图建的比较好,很快就会A了,有一

2015-10-14 16:26:24 365

转载 博弈入门

博弈入门  寻找平衡状态(也称必败态, 奇异局势),(满足:任意非平衡态经过一次操作可以变为平衡态)  一.巴什博奕(Bash Game)  只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。   显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:

2015-10-12 18:05:14 370

原创 HDU 1846 Brave Game(巴什博奕)

题目地址:点击打开链接 思路:简单的巴什博奕 AC代码: #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int t,n,m; sca

2015-10-12 17:57:55 306

原创 HDU 2149 Public Sale(巴什博奕)

题目地址:点击打开链接 思路: 一.巴什博奕(Bash Game)  只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。   显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s

2015-10-12 17:46:22 320

原创 HDU 1195 Open the Lock(隐式图的遍历)

题目地址:点击打开链接 题意:给你一个初始的密码和最后的密码求从初始到最后所需的最少的步数,每位数字可以加1,减1,和交换,9加1位1,1减1为9,第一位只能和右边的一位交换,最后一位只能和左边的一位交换 思路:隐式图的遍历,把能走的情况全走一遍并标记下来,直到到达最终状态 AC代码: #include #include #include #include #include #i

2015-10-07 11:51:54 596

原创 HDU 1950 Bridging signals(LIS)

题目地址:点击打开链接 思路:LIS水题 AC代码: #include #include #include #include #include #include #include #include #include #include #include using namespace std; int const maxn = 40000; int a[maxn],s

2015-10-04 18:04:38 297

原创 HDU 1025 Constructing Roads In JGShining's Kingdom(LIS的O(nlogn)算法)

题目地址:点击打开链接 题意:一条河的2边住着穷人和富人,一个富人只打算和一个特定穷人之间建一座桥,问最多能建多少个桥 思路:O(n^n)的会超时,主要思想看后面大神解析 错误代码: #include #include #include #include #include #include #include #include #include #include #inc

2015-10-04 17:28:00 281

原创 HDU 5491 The Next(构造数)

题目地址:点击打开链接 题意:给一个数D,然后给一个范围[S1,S2],求一个比D大的,化为2进制数里面1的个数满足范围的,最小的数 思路:参考大神思想,暴力超时,不管你求一个数化为2进制数里面1的个数的方法多么巧妙,思想是找规律,构造数,如果1的个数小于S1,则找到最右面的0位,把它变为1,如果1的个数大于S2,则找到最右面的1位,把它变为0,特例如D=15,S1=4,S2=5,也符合,构造

2015-10-02 17:58:19 355

原创 HDU 1702 ACboy needs your help again!(栈和队列)

题目地址:点击打开链接 题意:简单栈和队列的模拟 思路:水题 AC代码: #include #include #include #include #include #include #include #include #include #include #include using namespace std; char a[10]; int main() {

2015-10-02 12:51:17 274

原创 HDU 5480 Conturbatio(前缀和)

题目地址:点击打开链接 题意:给你一个矩阵,里面放几辆车,车可以攻击同一行或者同一列的任何一格,然后开始询问,看询问所给的小矩阵中的每个格子是否都会被攻击到 思路:前缀和做就行,询问题目说所给的数据是左下和右上,结果数据说的是左上和右下,注意一下就行 AC代码: #include #include #include #include #include #include #inc

2015-10-01 18:23:36 300

原创 HDU 5479 Scaena Felix(求一个序列里有多少对括号能够匹配)

题目地址:点击打开链接 题意:给一个括号序列,问改变几个括号就能使任意一个子序列都没有括号对匹配,即求一个序列里有多少对括号能够匹配 思路:水题,求一个序列里有多少对括号能够匹配,从前往后扫一遍就行 AC代码: #include #include #include #include #include #include #include #include #include

2015-10-01 15:41:51 754

原创 HDU 5477 A Sweet Journey

题目地址:点击打开链接 题意:一个人骑车过一条L长的路,过一米沼泽需要耗费A点精力,过一米平原回升B点精力,总共有n个沼泽,问刚开始最少需要的精力 思路:水题,从后往前扫一遍就行了 AC代码: #include #include #include #include #include #include #include #include #include #include

2015-10-01 15:14:38 517

C语言算法经典

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

2015-02-07

空空如也

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

TA关注的人

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