自定义博客皮肤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++编程

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

原创 HDU-1233(prim写法)

马上要回家了,复习复习我学习过的知识,prim写的最小生成树,其实prim和dijkstra是非常相似的,只不过是dijkstra更新的是和而已,,,所以两个算法很相似,,只不过是吧dis[]=map[][]+dis[] 变成了 dis[]=map[][],当然 同样变化的还有判断条件;贴出代码:#include #include #include #include #de

2012-08-19 10:29:56 927

原创 HDU-1142(最短路+记忆化搜索)

惨烈了,,,自己题目都没有读懂..晕死了..所以题目错了也就不稀奇了..大家看看别人的代码吧,,我写的是错误的,,,算的是最短路径的数目..而题目中要求的不是,,具体题目中让求的什么.我也没看懂下面是我的错误代码:#include #include #include #include #define inf 0x3fffffffint N,M;//N represent

2012-08-18 11:04:47 1603

原创 HDU-2955(DP_01背包)

我都崩溃了,,这是个什么题目呀,,,我弄了半天,,,都过了970多秒了,,,我还郁闷了,,也会有卡DP的???还一起自己算法有问题呢..一上网查..老天.理解都错这呢...那我就不懂了,,,理解都出错了,,那970多秒是这么过的???晕死了.. 65928492012-08-17 22:24:06Time Limit Exceeded295510

2012-08-17 22:22:29 590

原创 HDU-1864(DP_01)

这道题目真心写戳了...难看死了..没办法,,因为没有专心的去写,,一会来信息了 一会去拿个快递呀什么的...所以这个写成这样子了...都想死了..可是不想重写了 就贴上去了...#include #include #include #include int sum;int N;//N represents the number of checksint num[1000

2012-08-17 10:37:11 721

原创 HDU-1503(最长公共子序列加强版)

这个题目还是挺有意思的就是,难点就是,输出的问题,,说说步骤,首先应该找到公共序列的i,j坐标,以及本身的值,然后就是遍历str1,如果遇到不是公共序列的i就输出,while循环;同样的是遍历str2,如果没有遇到公共序列中的j就一直输出,while循环;这些都输出都结束之后,就可以输出公共序列了.现在贴出我的代码,,今天下午一直状态不佳,,,诶,,主要是天气太热了点,,烦的要命.

2012-08-16 17:00:58 873

原创 HDU-1160(最长递增子序列)

今天下午一点状态也没在,,这个也改不过来了先贴上别人的代码和自己的错误代码等有空自己再改吧#include #include struct No{int w;int s;int num;}a[1005];int cmp(const void *c,const void *d){return *(int *)c-*(int *)d;}int main (){i

2012-08-16 14:45:03 923

原创 HDU-1087(最长递增序列)

其实一开始就有思路的,但是,我一看,算法是两重循环..虽然不超时,觉得还是不好,觉得DP应该不会这样吧...别了我很长时间,最后还是想去试试吧,,试了一试,还真是这么算..晕了.贴出代码:#include #include #include #include int a[1005];int dp[1005];int max(int a,int b){ retu

2012-08-16 10:17:21 689

原创 HDU-2028(最小公倍数)

一道水题,我随便翻翻到的,想想自己说不定和这道题目有缘呢.呵呵,就做这玩吧呵呵.#include #include #include #include int a[1005];int gcd(int a,int b){ return a%b==0?b:gcd(b,a%b);}int main(){ int N; while(scanf("%d",&N)!=EO

2012-08-16 09:13:13 1267

原创 HDU-1159(DP_最长公共子序列)

看了一上午的DP了,下午去家教了就没有看了,,,但其实在很久以前我已经解除过DP了,为什么今天又继续学习呢,,主要是觉得,这是一种思想,是一种类似于设方程一样的思想,,掌握了这种思想,以后再接题目的时候就可以得心应手了,所以自己一定要掌握的灵活自如才能真正的学号ACM.我总是给嘉豪说(我的家教对象),如果你不用心,效率的学习,就跟没有学习过一样,那样的话,我们还不如一起去玩呢? 你觉得呢?

2012-08-15 21:01:36 1720

原创 HDU-1124(数学技巧)

看来前面的思路还是对的,就是说,其实判断0的个数就是判断2和5的个数,,,而2和5的最小的个数取决于零的个数.但是,开始的时候不知道有那么个规律 就是说,质因数分解的时候,前面的幂次必定小于后面的幂次.所以超时了,,呵呵.贴出代码,下面的是超时的哦...#include #include #include #include int main(){ int T; sc

2012-08-14 21:01:06 934

原创 HDU-1286(数学)

这么个水题,让我敲了好长时间,,,我就不懂了.为什么能用n/2,而就是不能用sqrt(n)呢能漏掉什么答案么? 我一定得弄清楚 而且.如果加上while的话,,就错,我也不懂...等会研究清楚继续整贴出代码:#include #include #include #include bool hash[40000];int main(){ int T; scanf("%

2012-08-14 17:38:37 705

原创 HDU-1492(素因数分解_easy)

主要是要读好题目,题目中已经说好了,是丑数;贴出代码;#include #include #include #include __int64 N;int find(int x){ int sum=0; __int64 t=N; while(t%x==0) { sum++; t/=x; } return sum;}int main(){ int c

2012-08-14 16:38:52 715

原创 HDU-1164(质因数分解)

很简单的一道题目,分享我的代码:#include #include #include #include #define MAXN 100000bool p[MAXN];int main(){ memset(p,1,sizeof(p)); p[1]=0; for(int i=4;i<=MAXN;i+=2) p[i]=0; for(i=3;i<=sqrt(MAX

2012-08-14 15:50:52 1149

原创 HDU-1333(分解素因数)

这个题目我都想死了,,做了整整一上午,当然包括看知识点,,但其实这是一个比较水的题目..- -#晕死了都..注意那个if(flag)耗费了无数精力才发现的...贴出代码:#include #include #include #include #define MAXN 100100001int N;int getsum(int x){ int sum=0;

2012-08-14 15:28:57 1456 2

原创 HDU-2136(prime_创新)

这道题目开始的时候也是没有看明白到底是个什么意思,,,看了别人的代码才知道原来是个这么意思,还是不懂是个什么意思其实,,看代码算了..嘿嘿贴出:#include #include #include #include #define MAXN 1000001int prime[MAXN];int main(){ memset(prime,-1,sizeof(p

2012-08-13 22:43:18 629

原创 HDU-1597(找规律)

本来是找二分查找的题目的,找到一个这个题目,,,开始一直在往二分上想.最后不得不放弃,,才发现,原来是个数学规律题目贴出代码大家看看吧:写的挺简单的...#include #include #include #include int main(){ int T; scanf("%d",&T); while(T--) { int N; scanf("%d"

2012-08-13 22:16:25 1380

原创 HDU-2199(search_bin-精度)

这个真的是,,,我头一次见到这么好玩的事情...以前做题从来都没有考虑过这种事情呀,,,精度处理不对,题目是出不来的,,,,这种可真是考验人的耐性呀,,,,下次直接把eps开的更小一点?事实我刚才给证明了,,我第一次开的是1e-8显然不行,而小于1e-13的都可以..嘿嘿.所以以后一定要注意没事,使劲开吧....呵呵.,因为你开的越小越接近答案...吃一堑长一智呀.贴出代码

2012-08-13 22:01:04 818

原创 HDU-2141(二分查找_创新)

这道题目.我都想死了....看来,有些自作聪明的举动还是真的不可要.虽然思想好像看起来很先进..诶..反正我也没法举出返利证明那就错了..但是删除了之后反正是能AC了.这事整的/.贴出代码注意那个if(   ||   )的语句..那句就是罪魁祸首...贴出代码:#include #include #include #include int a[505];

2012-08-13 20:45:25 1428

原创 HDU-2899(简单数学问题+二分查找)

其实就是简单的数学求极值问题.看了代码大家都会知道的.本来是想好好学学二分查找这种方法的,但是发现专门考二分查找的不多,它只是种思想,是一种工具.贴出代码:#include #include #include #include const double eps=1e-8; int y;double g(double x){ return 42*pow(x,6

2012-08-13 10:43:05 1525

原创 HDU-2222(AC_自动机)

我什么都不想说了,我今天就是为了研究AC自动机的,,可是一天过去了,,自己还是什么都不懂!我真想死了...自己看着别人的代码敲都敲不对,我真崩溃了,不想放弃,但是,自己不放弃还真是不行..我真的没有时间再去钻研这个东西了. 明天还有很重要的任务需要完成...ac自动机....会有征服你的那一天的!贴出别人的代码://AC自动机 HDU 2222 参考//http:/

2012-08-12 22:28:48 977

原创 HDU-2203(KMP)

是一道简单的KMP的入门题目,只要你弄懂了,题目中的题意还是很简单,贴出代码:#include #include #include #include char str[200005];char pat[100005];int next[100005];int N,M;void getnext(){ int i=1,j=0; next[1]=0; wh

2012-08-12 10:22:24 808

原创 HDU-1358(Next_period)

又是一道运用Next函数特性的一道题目,这道题目,我仿佛豁然开朗了,我就冒昧的讲一讲我对next函数的一些自己的见解,其实以前我用的next函数都不是这个的,,,但其实这个更能充分的说明这个函数的意义,咱们首先假设一个情境,假如前面的求法咱们不追究,(别人已经帮咱们求好了),那么,next[j]所对应的j以前的所有字母,和next[j]前面的几个字母肯定是相等的(因为我不想用什么i-k

2012-08-12 09:55:39 746

原创 HDU-3736(KMP_循环节)

这道题目也是运用next值的一道题目,我发现,运用next[]的题目真的很多,,,今天也是搞了一天的next函数了....懂是有些懂了,.,,但是猛地把自己的原来的编程习惯变了 还 是有点不适应的,,但是确实两种理解方法都可以,,但是 还是现在用的这个getnext好用一些,,自己可以做出简单的证明,而这道题目,就是让你求不能重复利用的最大循环节是多少,可以利用最后一个的后一个ne

2012-08-11 21:44:14 725

原创 HDU-1686(KMP)

这道题目,主要是一定要利用上匹配的字符串.以前都是搜到了就结束了,这次不行,搜到了,咱们用一下next[j](当j==M时)我崩溃的是自己next[j]+1了...wa了一次 还有.没有加i++的时候一直TLE 因为aaaa aaaa无法处理,,,嘿嘿所以大家仔细看看吧  我把重点的标出来#include #include #include #include char s

2012-08-10 23:07:04 739

原创 HDU-1711(KMP)

这个明显的是KMP算法的题目...嘿嘿..大家给看看代码吧,看看有什么需要改进的没有,#include #include #include #include #define inf 0x3fffffff// inf represents the end of KMP;int str[1000005],pat[10005];int next[10005];int N,M;

2012-08-10 21:09:09 826

原创 HDU-2087(KMP)

其实老早就想学习KMP算法了,只不过是没机会,嘿嘿。今天说什么也得学习学习,今天一狠劲学了,感觉,其实还是比较抽象的。。。尤其是那个next函数。。。表示真的狠难接受,,自己捉摸了很久也弄不懂。所以这个也就成了一个遗留问题了,还的i找别人来帮我解决,诶。。。但是,我还是能够敲出代码。。汗。代码:#include #include #include #include

2012-08-10 20:47:10 747

原创 HDU-1042(大数阶乘)

因为自己很少接触大数,,,猛一做 有点摸不到头脑呀..恨,,,恨那!!!不过自己还是懂的了.模拟笔算乘法的大数...嘿嘿贴出代码:#include #include #include #include int a[88888];int main(){ int N; while(scanf("%d",&N)!=EOF) { memset(a,0,sizeo

2012-08-09 21:34:40 624

原创 HDU-1075(字典树入门)

这道题目,我构思思路可是构思了好长时间....主要是需要注意的点太多了,建树啊,查找啊什么的都好弄,就是,去字母的时候需要注意一些东西.比如,你遇到了标点就要停一下,,你遇到了空格回车也需要停一下,反正是一定要考虑周全的.要不然出不了答案的.贴出代码:#include #include #include #include struct T{ T *next[26];

2012-08-09 10:25:36 738

原创 HDU-1251(字典树<Tire>入门)

我随便一写就能过?这也太神奇了吧?呵呵,,其实字典树简单的实现还是很简单的.首先建立一个结构体,结构体必须能够模拟26个字母,所以,自然想到了就是让每个结构体出来26个尾巴,然后26个尾巴每个又能生成26个尾巴,然后呢,每个尾巴的名字就叫那个字母,而且你每次顺着尾巴走一遭就加1,这样就可以求出来了你询问的单词一共出现了多少次了,,,但是说实话,,代码敲的太丑了,毕竟是自己胡乱捣鼓出来的,,

2012-08-08 19:24:20 828

原创 POJ-3468(线段树_区间更新)

我都有点崩溃了,我发现我从来没有将线段树写的成功过,,每次都不是这个毛病就是那个毛病,真的狠烦!而且我也发现了,如果一直用tree[i]的形式写用以写错,,以后不这么用了,用两个数组好了.而且如果可以的话,,我还真的需要写成简便的那种写法了,,,.明天再练习一天吧,,其实我的时间真的不多了...加油贴出代码:#include #include #include #incl

2012-08-07 22:14:30 636

原创 HDU-1698(线段树又写)

这个题目已经写了好几遍了,,可还得写,为了把自己的代码风格给确定了,,是得,多写的..我觉得这个代码风格还是挺不错的,当然还能继续简化..不过,,,,我想暂时我还是不会选择那种方法吧,,,不过我是打心眼里面佩服那种能够写出很简洁代码的人的..贴出代码:#include #include #include #include struct Node{ int a; int b

2012-08-07 20:39:19 630

原创 HDU-2828(线段树创新)

题目其实还是挺难理解的,,我读了很多遍才读懂,,,悲哀呀...摸到题目也是不知道怎么做...更别说往线段树上想了,,根本就想不到呀....看了比人的代码后,还是云里雾里的,也不是很清楚,,,但是自己能敲出来,其实这样是很悲哀的,,因为到下次还是不会,,,我会尽力理解的,,做题不要做数量,,,而是要做思想,如果成不了自己的东西,那么不好意思,你在浪费时间,而你在题目上花的时间也就全部

2012-08-06 22:26:52 1150

原创 HDU-2795(线段树入门)

这个说是线段树入门....我其实还是开始的时候没有摸到头脑的.....开始的想法是用普通方法做的,但是,自己忽略了20W*20W  400亿肯定会超时的....用其线段树就舒服多了.线段树不说可以省内存,但是他的有点就是可以优化询问....我把上一次的询问直接给你更新上去,你下次再问,我直接就给你个爽点的答案,这多爽!贴出线段树的代码:#include #include #

2012-08-06 11:16:01 660

原创 HDU-1166(线段树入门)

这个是很简单的一道线段树题目,当然肯定没有树状数组来这爽,但是作为练手的题目还是不错的...分享给大家我的代码..大家看看有什么可取之处的没有#include #include #include #include int N;struct Node{ int a; int b; int val;}tree[222222];void Pushup(int i){

2012-08-05 10:28:10 894

原创 HDU-1754(线段树入门)

这个代码觉得还可以看,,而且.我觉得,这样的风格稍微适合我点,,,大神的代码还是有点接受不了,暂时先用这个吧...大家看看.有什么可取之处.代码:#include #include #include #include int t[222222];struct Node{ int a; int b; int max;}tree[888888];int max(in

2012-08-04 22:53:13 774

原创 HDU-1698(线段树入门)

请您先别看着个代码,这个代码是我自己在通过自己对线段树的了解,自己写的...那不是一般的烂...是经过我无数的改正才改过来的 希望大家不要借鉴哦,,一会等我看看,别人的代码,然后再整理整理,出个漂亮的代码.嘿嘿 这个是超时的....#include #include #include #include int N;struct Node{ int left; int

2012-08-04 13:35:59 756

原创 HDU-1596(SPFA()两种版本的)

这个让我深深的郁闷了,,我不知道怎么错了...为什么用邻接表写,就怎么也过不了呢..我就崩溃了,,,,恨得我,,立刻就又重新整了一遍map[][]版本的....希望大家看到的时候能够及时的给我指出错误好么???找不到错误的感受真的让人很想死.....现在贴出代码..第一种是AC的map版本也就是邻接矩阵: #include #include #include #inc

2012-08-03 21:29:35 659

原创 HDU-2544(SPFA()邻接表)

请各位大神帮看看,为什么不能AC呢?#include #include #include #include #include #define inf 0x3fffffffusing namespace std;int N,M;int head[110];struct Edge{ int v; int next;}e[20010];int in[110];int

2012-08-03 12:51:40 707

原创 HDU-2544(SPFA()矩阵写法)

这个写法,我觉得还是有待改进的,因为这是在自己没看别的代码自己捉摸出来的,算法上肯定效率不高,呵呵.肯定没有用邻接表写的要好咯,,,等一会自己就用邻接表写一个..先把这个代码贴上咯.#include #include #include #include #include using namespace std;#define inf 0x3fffffffint N,M;i

2012-08-03 11:16:37 716

原创 POJ-1860(Bellman()重要应用)

bellman()算法的有点就是可以判断是否又环,,,而正如这道题目一样,我开始的算法就是求是不是经过一次到达起点的时候比原来起点的钱要多,如果多就说明可以挣钱,但其实这个思路还是有瑕疵的.,因为有时候后面的可以增长钱,但是前面的却不能增长反而减少,而这个时候其实是可以挣钱的,你想他就是换一次就挣一分钱.而你能防住他一直在那个银行换么...换个几万次 人家1毛钱也能换成好几千了 而这个

2012-08-02 23:01:02 641

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

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

2013-11-05

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

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

2013-06-13

空空如也

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

TA关注的人

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