自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李硕

C/C++编程

  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 HDU-1166(树状数组入门)

这道题目,一看就是用树状数组写的嘿嘿.不错,一次性就写成功了嘿嘿.主要需要注意的点就是,询问的时候,由于是询问的区间,包括两边,所以你只能减去开头  往前面输一个 的营地的总和,,,贴出代码:#include #include #include #include int N;int T;int ar[50005];int lowb(int t){ return

2012-07-31 22:01:22 812

原创 HDU-1541(树状数组入门)

今天将树状数组看了看,觉得 树状数组真的挺神奇的呵呵...要想掌握好树状数组就得将lowbit()函数先弄清楚,而且也要懂得它的精华在哪里,主要就是就几个主要的函数,比如 add()  比如  sum函数等等..贴出代码:今天也看到了 要求 怎么样才是正规的写代码的方法, 以前自己感觉那么好的写代码的方法居然是错的....以前总觉得 空格敲多了不好看,,而且自己还私认为,,,空

2012-07-31 20:53:30 1669 2

原创 STL-next_premunation(全排列)

我表示,STL真的狠强大....你想吧 加入让你求一个串(不管是字符串还是整数串....)全排列,你会么?你会不会,,反正我是不会....而这时这个函数就牛叉了...先将这个串进行一次sort排序...然后再利用这个函数.#include bool next_permutation( iterator start, iterator end );就ok了/// 贴出

2012-07-30 11:49:48 945

原创 HDU-1498(二分匹配_求最大覆盖定点数)

这道题目,还是需要仔细读读的,,,如果你不仔细读的时候说不定就用错方法了,,,在此,想善意的提醒下各位ACMer,一定要看清题目,,而这道题目,选择二分分配的原因也就是因为,一次他只能选择一行或者一列,而扫描一行或者一列,需要的次数,就正好是最大匹配数目,,,,我一定悉心研究清楚,,回头专门弄个这个讲解为什么的博文发出来.而这道题目,个人觉得,新颖度还是比较高的,,,涉及到很多方面的知

2012-07-29 22:23:56 752

原创 HDU-1281(二分匹配_必要边)

这道题目,应该转化成二分匹配的题目去求解,,,,尽管比较难理解,积累成经验以后用吧,然后就是求必要点的知识点, 必要点的定义就是去了一条边后,最大匹配发生变化,那么这条边就是必要边,求解的思路就是先求出最大匹配,然后再一条条的删除边,如果最大匹配发生变化则说明,这个就是必要边.贴出代码:这个代码写戳了..因为一下午都在搞多校,,身心俱疲....诶,,,,睡眠严重不足啊..#in

2012-07-29 17:11:18 941 1

原创 HUD-1076(简单利用筛法的题目)

其实自己选择做这道题目,就是想巩固一种思路,就是先将所有的可能的结果求出 存到一个数组中,然后算结果的时候直接去取就好,这样可以省了很多时间,比较简单这道题目,看代码:#include #include #include #include bool p[1000005];int main(){ int T; memset(p,0,sizeof(p)); for(int

2012-07-29 10:09:28 769

原创 HDU-1151(求最小覆盖路径数_二分匹配)

这道题目,还是应该看成是定理题目,自己也不能够证明够出为什么给要这么做.....有空一定要去问问别人,当然我也会自己找课件看看的...很好敲,,留下代码:#include #include #include #include int N,M;int map[125][125];int visit[125];int link[125];int getnum(int

2012-07-28 22:24:43 793

原创 HDU-1150(求最小覆盖顶点数=二分最大匹配数)

关于这道题目,我也是迷迷糊糊的,上网找资料也是看不懂,,,,  到底 为什么最小覆盖顶点数=二分最大匹配数,自己也确实弄得不是很清楚,反正这个好像是前人已经证明了的,所以自己还是可以拿来用的,至于彻底弄懂的话还是等以后有机会的时候去问问别人吧,,,,就是一个简单的匈牙利算法 另外就是多了个判断条件就是判断这个点的状态是不是MOD_0 如果是的话 ,到最后还 是得减去1的,,,,贴出代码

2012-07-28 21:58:25 867

原创 HDU-2063(简单二分匹配)

这是一道适合刚入门二分匹配的同志需要做的.0.-!题目的意思很好理解,我就不说了,主要说一下,增广路问题,其实从增广路这字面上也很好理解,增广路 不就是在原来的基础上 你想办法满足以前的题意,再找出一条满足的路么?其实遇到的新知识点就是存路的思路.找到的路不一定就定死了,如果有更好的咱们还是需要 更新的.我觉得这就是增广路的精华吧?贴出代码:#include #include

2012-07-28 12:54:22 503

原创 HDU-1242(BFS新思路)

其实,这个题目就是个简单的模拟题目,但是需要注意几个简单的知识点,第一,因为有狱警 所以,你的步数要来个min一下 嘿嘿;第二:因为有多个伙伴.让伙伴来找他,可能要分好几种情况,哪有用他去找他的伙伴方便呢?这个逆向思路不错不错 嘿嘿,一个学长知道的..呼呼比较高兴,在这么晚还是A了一道题目.贴出代码:#include #include #include #include

2012-07-27 22:48:48 619

原创 HDU-1213(简单DFS)

这道题目是一道简单的DFS,只需要用邻接表构出边之后,进行DFS,一次DFS之后自加1,就可以贴出代码:#include #include #include #include int N,M;//N represents the number of points,and M stands for the number of edges;int head[2000];str

2012-07-27 14:15:14 717

原创 HDU-1215(数学技巧题目)

其实我们如果以前没有遇到过这种题目,然后自己再猛然遇到种数学技巧性的题目的时候是最无辜的....用以前的办法解决超时,而新的自己又不会...所以解决这种问题就是多做题目,多总结相似点.现在贴出代码,这代码当然也是参考别人的,嘿嘿#include #include #include #include int p[500005];int main(){ int T; fo

2012-07-27 11:23:51 689

原创 HDU-1102(prim求最小生成树)

很简单的一道题目,就主要是吧已经修建成功的赋成map[i][j]就行了.贴出代码:#include #include #include #include #define inf 0x3fffffffint N,M;// N represents the number of points,and M stands for the number of that has been b

2012-07-26 10:06:03 812

原创 HDU-1285(拓扑排序改变)

其实只要弄明白拓扑排序的原理,自己还是很容易实现出自己的拓扑排序的,但需要注意的几点,分别有:要注意重边,虽然这道题目,你注意不注意都可以过,然后就是一定要注意注意注意加注意的一点是:找到一个就立马退出循环!要不然 容易出现这种情况5 6    5 1,你找到了5 然后你不退出的话就会直接继续找6,但其实应该是输出1的..诶...所以,以后还是要小心点的,当然多做定题目,多积累点经

2012-07-25 22:42:18 764

原创 HDU-1269(双DFS求强连通性)

这道题目我真心想死,,,我真切的懂得了,写代码,你是一定要小心,并且全神贯注的去的,要不一点很小的错误都可以让你LTE,WA的想死,,所以写的时候千万要小心,另外,遇到自己解决不了的错误的时候,就算是对照别人写的代码看自己的代码都看不清楚的时候,就重新在敲一遍,说不定,豁然开朗的时候,也能改掉自己的错误...以后千万要注意.双重DFS求强连通量的算法实现起来是很方便的.首先是先用个正向

2012-07-25 17:48:26 3853

原创 HDU-1869(floyd求任意两点之间的距离)

这个题目,我一看到的居然是用DFS,汗了,,,但是我写着写着,还居然给过了样例,和自己的一些特殊数据,,但是到后来我突然就觉得不对了,,因为一出现环数据就过不了了,而我又不想在研究研究求出最小值,但是这个思路还是可行的...但是麻烦,我就不写出来了.然后floyd算法还是比较简单的.只用个三重循环,然后再来个二重循环就可以整出来了,代码非常好实现,代码如下:#include #inc

2012-07-24 22:26:50 1016

原创 HDU-2066(dijkstra最短路综合)

此题目,就是一定要注意建双路边,而且因为不知道有多少个顶点,所以开始的时候就要建最多的情况.也就是1005(习惯性的多出几个咯),然后就是一个起点,对应的多个终点的两重循环就好,其实还是比较简单的.贴出代码:#include #include #include #include #define inf 0x3fffffffint M,S,D;//M represents the

2012-07-24 20:37:29 559

原创 HDU-1548(BFS搜索)

这道题目,本来我是用的DFS,但是来的答案不一定是对的,,,,以你为DFS是找到了就是答案, 而题目中要求的是找到最小的次数,所以不能选择DFS.而我写BFS的时候也有点绕远,该了N多次,才改正了,,,,所以代码改出来及其丑,,,,主要提醒注意以下几个知识点,,,,判断起始点和结束点事一个点的时候(其中又包括两个易错点:此点是合理的与此点是不合理的情况两张),然后就是写BFS了...而

2012-07-23 10:28:18 715

原创 HDU-3371(最小生成树综合)

这道题目,其实和以前做过的还是有那么点类似的,主要就是你把已经建成的先赋成0,因为人家已经建成了,你怎么能让人家继续掏钱呢?本来想用并查集去判断是不是通路的,在想一想,其实不用那么复杂,你首先把dis[i]都赋成了最大值inf,那也就是如果没有联通的话,这个边是不会更新的 所以在最后面加一个判断是不是有inf的边没有更新就可以判断出到底是不是通路了,贴出代码:#include #in

2012-07-22 10:51:55 948

原创 HDU-1879(prim构最小生成树)

这个题目是一个很基础的求最小生成树的,唯一稍微拐一点弯的就是,你个建成边的处理情况,可能有很多种情况,但我选择的是:既然已经建成了,那么说明他的花费是0,直接以0为权值,建到矩阵中就可以,而且这样建的话也不会更新这些已经建成的边,原因很简单咯,因为你最初设这的dis[i]=0;贴上代码:#include #include #include #include #define inf

2012-07-22 09:48:26 755

原创 HDU-1875(综合最小生成树)

这题目,笔者认为是出题者还是手软了,出了难度稍微低了点,因为点限制在了100以内,算算两重for循环也不会超时,可以算出一个一个点的距离,而不需要用分治法,嘿嘿.主要的易错点就是那个1000的情况.开始的情况我也考虑错了,因为我觉得一出现10,或者1000就可以断定这个无法完成,但是,不是这样的.假设有无数个点,第一个点跟最后一个点无穷远,但你可不能把这种情况给删除了,虽然你无穷远,但是有

2012-07-21 22:33:46 781

原创 HDU-1874(dijkstra求最短路)

很简单的一道基础题目,需要注意的就是去重边,嘿嘿....贴上代码:#include #include #include #include #define inf 0x3fffffffint N,M;//N represents the number of points,and M donates the number of edges;int visit[210];in

2012-07-21 21:08:57 532

原创 HDU-1863(最小生成树+并查集判断是否连通)

这道题目,可以看成先判断是否是连通的图,然后在求最小生成树,是一道小小的综合题目.算法,有前几片的博文可供参考.本题代码:#include #include #include #include #define inf 0x3fffffffint N,M;//N represents the number of points,and M donats the number o

2012-07-21 20:39:33 1174

原创 HDU-1233(prim求最小生成树)

这个我就不解释了  和dijkstra很像 两个只要懂了任何一个就可以A题 嘿嘿...这个好处就是时间效率很高 嘿嘿  不需要并查集 一直递归了 代码如下:#include #include #include #include #define inf 0x3fffffffint N;int M;int visit[105];int map[105][105];int

2012-07-21 19:08:28 645

原创 HDU-1233(kruskal求最小生成树)

kruskal求最小生成树的时候主要是注意几点.第一就是点数,边数要尽量的小的时候.然后就是要明白它用的主要的思想就是先对所有的边排序,然后再利用并查集的方法,把边一个一个连起来.代码如下:#include #include #include #include int N;//N represents the number of points;int set[105];int

2012-07-21 18:50:50 1062

原创 HDU-1232(并查集)

其实,并查集是一个非常巧妙的思路,有时候就很佩服这个创造出此算法的神人,呵呵.算法思想我想就不在讲了,如果不会的话,就画个图然后看着图按照程序一步一步推导一边,或者,调试一轮 都可以的.主要我想讲一下算法的优化.首先find()函数.请看int find(int x){return set[x]=(set[x]==x?x:find(set[x]));}在一个就是需要

2012-07-21 18:33:51 1020 1

原创 HDU-1258(DFS搜索的问题)

题目就是给了你一个非升序的数列,让你求出所有的可以得到的某个确定和的数列.需要注意的有这么几点:1,题目中要求很严格,是不允许输出一样的序列的.所以,你就只能把相邻两个相等得给筛去,当然这是同一递归层才筛去,不是同一递归层的你不能筛去.就要用到一个一个语句了 if(a[i]!=a[i-1]||j==pos+1)就可以解决这个问题.两个条件中满足其中的一个就执行,但咱们所需要筛去的恰恰是这两个条

2012-07-20 18:08:25 739

原创 HDU-3790-最短路问题

其实这道题目,看起来是最基础的题目,但是其中也遍布了一些,应该记住的知识点:比如,构造矩阵的时候,一定要考虑的筛除重边的情况,然后就是注意在长度一样的情况下,怎么样筛除相对价钱较高的,留下较低的. #include #include #include #include #define inf 0xfffffffint N,M;int visit[1100];int map[1

2012-07-20 09:54:10 614

原创 筛选法求10^7以内的素数

以前对素数的筛选法,一直都不是了解的那么透彻.现在总算是知道了一个非常简单,也非常快的算法代码了.其实筛选法,之所以为筛选法 就是先筛,后选.第一步就是筛掉所有的偶数,以为,作为偶数首先它就是能被2正除了,就是合数了.肯定不能要;接着就是选了,选有技巧,选择性的筛除sqrt(n)以内的所有倍数,剩下的就都是素数了.代码如下:#include #include #includ

2012-07-17 21:55:06 1507

原创 回旋矩阵的构建方法

首先,你要有一个大体的思路,回旋矩阵的构建方法,简单点的就是一圈一圈的绕,然后你再找找规律,然后就是个小陷阱,就是到最后一圈的宽度等于2和等于的情况考虑.我因为是新手,所以写的代码比较弱智,但是这样应该更容易理解吧?贴上代码:#include #include #include #include int a[100][100];int N;void prepare(int x,

2012-07-17 11:31:33 1297

原创 HDU-2112 HDU DAY-----最短路问题

HDU TodayTime Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5634    Accepted Submission(s): 1369Problem Description经过锦囊相助,海东集团终于度过了危

2012-07-13 12:43:08 1043

原创 图论-最短路径问题

http://acm.nyist.net/JudgeOnline/problem.php?pid=38 布线问题时间限制:1000 ms  |           内存限制:65535 KB难度:4描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件:1、把所有的楼都供上电。2、所用电线花费最少输入第一行

2012-07-12 22:27:09 694

原创 图论-搜索,吝啬的国度

http://acm.nyist.net/JudgeOnline/problem.php?pid=20吝啬的国度时间限制:1000 ms  |           内存限制:65535 KB难度:3描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一

2012-07-12 22:22:39 967

原创 STL--重载操作符与qsort排序

http://acm.nyist.net/JudgeOnline/problem.php?pid=8注意,用sort排序的时候,传的是(开始位置的指针,接受比较的指针);然后就是在结构体重,重载操作符,注意在结构体中,如果想按一定的规律排序是必须重载操作符的,包括重载操作符下面是用qsort写的.代码如下:#include #include #include #inclu

2012-07-12 22:09:04 1316

检测计算机是否可以虚拟化

这是在你安装了虚拟机之后发现自己的电脑不能够正常的装系统,这个时候你就可以看看你的虚拟技术是不是都是开着的

2013-11-05

数据库系统教程课后答案-第三版(施伯乐)

数据库系统教程第三版的课后答案,我做成了pdf版本,仅供大家参考

2013-06-13

空空如也

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

TA关注的人

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