自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GDB 调试错误解决

【代码】GDB 调试错误解决

2022-09-20 11:03:56 440

转载 树状数组(转载修改添加)

例题引入:依然以HDU1166为例。问题还是解决查询区间和。上一篇博客的树状数组,虽然简单易懂,但是代码量和空间复杂度明显不够完美。树状数组较好的解决了这两个问题。 一、树状数组是干什么的? 平常我们会遇到一些对数组进行维护查询的操作,比较常见的如,修改某点的值、求某个区间的和,而这两种恰恰是树状数组的强项!当然,数据规模不大的时候,对于修改某点的值是非常容易的,复杂度是O(1),但是对

2017-04-21 19:36:08 367

原创 Coding Contest-青岛区域赛网络流

HDU5988 建立原点与汇点,将原点与(人比食物多)的点相连,流量为(人-食物)。将(食物比人多)的点与汇点相连接,流量为(食物-人)。 将每个桌子相连,假设概率为p,对p取log,可以将原来相乘的计算转化为相加,加n-1条费用为(logp)的边,加一条费用为0的边。#include<cstdio>#include<cstring>#include<cmath>#include<ioma

2017-04-18 20:09:31 413

原创 线段树

首先通过一个例题体会一下线段树可以解决什么样的问题。HDU1166. 题目主要是下面这段话: 接下来每行有一条命令,命令有4种形式: (1) Add i j,i和j为正整数,表示第i个营地增加j个人(j不超过30) (2)Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30); (3)Query i j ,i和j为正整数,i<=j,表示询问第i到第j个营地的总人数;

2017-04-18 19:44:08 562 3

原创 ccfcsp201612-四边形不等式优化

四边形不等式优化学习地址:http://blog.csdn.net/u014800748/article/details/45750737重点是:m(i,j)=min{m(i,k-1),m(k,j)}+w(i,j)(s(i,j-1)≤k≤s(i+1,j))(min也可以改为max)知识点一样的题目:玲珑杯1066参考链接:http://blog.csdn.net/acmore_xion

2017-03-12 16:43:19 256

原创 poj1276_多重背包_二进制优化

#include#include#include#include#include#include#include#includeusing namespace std;int cash[100005];int main(){ int money,n,ta,tb; while(scanf("%d",&money)!=EOF) { scan

2017-03-12 16:20:19 238

原创 完全背包

杭电 2159#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;struct node{ int val,wei;} a[105];int dp[105][105];int main(){ int n,m,k,s,x,y,z,i; //升级还需经验值 忍耐度 怪

2016-04-19 21:26:49 217

原创 有向图的欧拉路

如果是构成欧拉圈的话,条件是无奇点,且各点指向和背离的线数相同. 如果是构成欧拉链的话,条件是恰有两个奇点,两个奇点分别是指向比背离的线数多一条和少一条.其余各点指向和背离的线数相同. http://www.acmicpc.sdnu.edu.cn/problem/show/1088#include<iostream>#include<cstdio>#include<vector>using

2016-02-17 16:37:09 387

原创 KMP算法笔记

无聊打开vjuge看了一眼,看到有一个比赛是ac自动机,打开看看顺便xuexi一下子。 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106135#overview百度了一下有关资料:http://www.cnblogs.com/kuangbin/archive/2012/08/07/2626646.html 需要 kmp复习一下感觉

2016-02-06 17:31:18 305

转载 三十分钟掌握STL(转载)

三十分钟掌握STL 复制过来格式啥的全乱了,所以还是直接贴上地址吧。 说来惭愧,文章说三十分钟,我边玩边看,花了将近一个下午。在家里感觉总是,不能静心。 iterator的使用,for_each的使用(前两个参数是迭代器的起始,第三个参数是一个函数没有形参,foreach自动传入)。 copy(vr.begin(), vr.end(), ostream_iterator(cout, ” “

2016-01-25 18:47:49 299

原创 hdu 5610 Baby Ming and Weight lifting

刚回家不在状态吧。 说一下我一开始的思路。 首先 两边相等 c必为偶数。c&1 只计算一边就可以,最后的答案别忘了乘二。 下面就是我的错误所在,把a,b比大小,直接c/b c%b/a 的得到两个答案。果断wa。思来想去觉得没问题,找了别人的答案,一开始觉得没问题啊,可是既然别人用了for就一定有道理的,举个例子,3 5 19;根据我的方法是Impossible,但是其实答案是 3 2.

2016-01-24 14:23:46 306

原创 马踏飞燕(续)

http://www.acmicpc.sdnu.edu.cn/problem/show/1027 泪奔。第一次做费时费力还不对。第二次做,问了下同学,整理了下思路。一边AC。好感动。 原来想用memset给整数数值 赋初值1,可是测试错了,百度了下,memset貌似不能赋除了0的数。 还有pair的使用,好像比struct方便一些呢。 这次主要优化了这100步怎么计算。#include<io

2015-09-28 22:22:47 480

原创 River Hopscotch

http://codevs.cn/problem/3135/ 二分法+DP(可能是) 二分法找出可能是结果的值,循环判断是不是那个值。#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<map>#include<queue>#include<algorithm>using name

2015-09-12 16:10:50 418

原创 贪吃蛇java源代码做了一些变动自己改名为“我要变胖”

下载地址:http://download.csdn.net/detail/yumenawei/9093483 java学习第一阶段项目设计。 原来并不知道做啥就百度了一下小游戏,玩了玩,感觉吃豆豆挺不错的,不错写到一半的时候感觉特low,就没写。发现好多人写贪吃蛇,如实我将两者融合了,起名为“我要变胖”。 游戏背景是一个还流着鼻涕的小男孩,在地图里找西瓜吃,并且没吃一块西瓜就要长胖一点点,不过

2015-09-09 23:36:04 420

原创 一元三次方程求解

http://codevs.cn/problem/1038/ 二分法初体验。要求精确度为0.01,当相差0.009就可以。 两个值之间大于等于1,循环间隔1.#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<map>#include<queue>#include<algorithm

2015-09-08 23:37:20 353

原创 数字游戏

http://codevs.cn/problem/1229/ 应该是DFS,需要标记数字的使用状态,还要标记符合题目要求的最小的那个值,适时的退出程序。#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<map>#include<queue>#include<algorithm>us

2015-09-04 19:34:15 368

原创 选择我自己的算法

http://codevs.cn/problem/1268/ 几个数在一定的步骤后得出目标要求的数,用dfs的浪费的时间较多,用bfs没有必要因为计算的数的个数是一定的,从目标数值出发,除以某个数或者减去某个数。题目没有难为人没有讨论计算符号的优先级。#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>#i

2015-09-03 21:40:27 525

原创 十六进制序列

http://www.acmicpc.sdnu.edu.cn/problem/show/1161 每一个字串比前面的字串多一个数注意是一个数,而不是一个字符,多出几个字符需要特殊判断和处理,代码读起来还是比较简单的,但是不小心做起来就全是坑,不算思考的时间,调试代码就花了1个半小时。#include<iostream>#include<stdio.h>#include<cmath>#incl

2015-09-02 22:12:35 712

原创 迷宫

http://codevs.cn/problem/1215/ 接上一篇博客。 这一题的正解还是BFS,如果这题的数据较大DFS一定会超时的#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>//#include<map>#include<queue>#include<algorithm>using

2015-09-01 20:54:22 272

原创 迷宫

http://codevs.cn/problem/1215/ 迷宫找出路,bfs上下左右的搜索,做好是否访问过的记录。 题解说dfs也可以,洗个澡回来弄dfs#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>//#include<map>#include<queue>#include<algorit

2015-09-01 19:38:32 258

原创 方格取数

http://codevs.cn/problem/1043/ 投机取巧,数据较小,用了一个4维数组,4个循环嵌套的DP跑出来的。dp[i][j][k][l]=max(max(dp[i-1][j][k-1][l],dp[i-1][j][k][l-1]),max(dp[i][j-1][k-1][l],dp[i][j-1][k][l-1]))+a[i][j]+a[k][l]; dp[i][j][k][

2015-08-31 23:24:18 242

原创 洪水

http://codevs.cn/problem/3411/ 昨天的BFS没好好做,粗略的理解了下,今天的好好的理解了下。并写了代码注释,关于bfs部分的代码没写详细解释,请自行百度bfs。#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<map>#include<queue>#in

2015-08-29 21:03:12 347

原创 传话

http://codevs.cn/problem/1506/ BFS。没做过广度优先搜索的题。第一次做,大部分是搬抄源代码。 ps:源码是C语言的,抄成C++的过程出了个错。c语言的memeset初始化,我以为在声明 的时候初始化就可以了,可是没注意到 在for循环的时候竟然也有memset愁死我啦。最后copy源代码改来改去才发现啦。也算是get了一个debug的技能吧。写了这么多~~~#in

2015-08-28 19:57:25 311

原创 考前复习+小吃

考前复习:http://codevs.cn/problem/2837/ 小吃:http://codevs.cn/problem/3231/ 两个题都差不多,好像是叫做01背包,还是完全的背包的玩意。不管咋的,自己完全写出来了,好高兴。下面是考前复习的代码,小吃的代码把输入改一下就差不多啦。#include<iostream>#include<stdio.h>#include<cmath>#

2015-08-27 22:03:34 279

原创 采药4

http://www.acmicpc.sdnu.edu.cn/problem/show/1077 一开始看这个题就是取几个数,如何取得问题,想一想用递归,来做分两种情况递归去这个数,不取这个数。超时了,仔细一算2的1000次方好大啊采药的题目貌似都是DP把。这个题类似于组成各种各样的数,需要哪个数就看看有没有这数,慢慢的凑到目标。#include<iostream>#include<stdio.

2015-08-26 21:00:58 285

原创 单词接龙

http://codevs.cn/problem/1018/ 狠下心做了字符串的处理题。这道题主要是DFS增加了一个字符串的处理函数。感觉最近做了几道字符串的处理,也没有想象中的那么可怕了。这道题需要注意的一点是,每个字符串可以用两遍。#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<m

2015-08-25 18:39:33 280

原创 高精度减法,高精度乘法

高精度减法 oj数据偏弱如果添加一个101-2就错了,下面这一步是为了防止错误的 if(a[aa]<’0’) { a[aa]+=10; a[aa-1]–; } 可能出现第一位的1被借走的的情况,所以加一个while找第一个不是0的 while(c[i]<=’0’) i–;#include<iostream>#inc

2015-08-24 18:59:24 231

原创 地鼠游戏

http://codevs.cn/problem/1052/ 贪心+快排+DP 一开始想复杂了,其实一开始是一起出现,然后比较下停留的时间,从小到大排列,从前面开始DP较大的就加在一起。状态转移方程:f[j]=max(f[j],f[j-1]+a[i].v);也比较容易理解,当前价值等于前一时刻的价值加上当前的价值的最大值,这是前一时刻是因为题目给了一秒的时间间隔,当前时刻最大值是因为同一时刻有多

2015-08-23 19:30:38 278

原创 小吃

http://codevs.cn/problem/3231/ 动态规划,01背包。。。。懒了,好像,呵呵。。。。 不过第一次提交时还是wa了,第二个for习惯性的由v[i]++到M。。#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<map>#include<algorithm>u

2015-08-22 19:17:52 250

原创 约会计划

http://codevs.cn/problem/2639/ 找的并查集的题,看到题目吃了一鲸,要好好学习下。进去看题目涉及到字符串的操作,本人的弱点,不过也是建立在并查集的基础上,相必也不难,可是关于字符串的处理真是半点头绪没有,当我点开题解是,我果断的吓尿啦。C++竟然也有map这个玩意,然后百度了map的用法,然后也就比较简单啦。 参考资料:http://blog.csdn.net/wal

2015-08-21 17:40:47 370

原创 家族

http://codevs.cn/problem/1073/ 简单的并查集昨天做的那个题有点难度,有点难理解,今天在做简单的果然好理解很多。 find函数有两种 int find(int weizhi) { if(relation[weizhi]==weizhi) return weizhi; return relation[weizhi]=find(r

2015-08-20 09:23:29 300

原创 css学习笔记

今天就要回家咯。好开心。在回家之前把css大概的学习了一遍也好开心。断断续续的学了不到一个周吧。不过还没检测自己学的这样,一直都是看视频做笔记,也没敲代码,估计也没学的多好。笔记贴上来,有点乱糟糟的,格式也没过于的去排版。可能有的知识点写的有点错误和混乱,见谅。<!--CSS--><link rel="stylesheet" type="text/css" href=""><style>

2015-08-20 08:38:34 328

原创 食物链

http://codevs.cn/problem/1074/ 并查集。好像入了点门 开数组的时候开成3倍的 用1~n 表示动物本身 用n+1~2*n表示被这种动物吃的 用2*n+1~3*n表示吃这种动物的 那么如果x吃y是真话 则合并R[x]和R[y+n],R[x+n]和R[y+2*n],R[x+2*n]和R[y] 如果x和y是同类是真话 合并R[x]和R[y],R[x+n]和R[

2015-08-19 11:09:06 242

原创 求先序序列

http://codevs.cn/problem/1013/ 前序遍历的规律是:输出根结点,输出左子树,输出右子树; 中序遍历的规律是:输出左子树,输出根结点,输出右子树;后序遍历的规律是:输出左子树,输出右子树,输出根结点。 根据这个规律,不断的分成两部分,进行递归。貌似这个好像叫做分治。 PS:参考地址:http://m.blog.csdn.net/blog/u012925197/1

2015-08-18 22:14:50 461

原创 最小M段和问题

http://codevs.cn/problem/3278/ 感觉这题好熟悉的感觉,好像做过,一开始看到题目说的最大值的最小值,一下子懵了,是不是题目错啦,按照自己的理解算了最小值,可是wa感觉这是个坑,用了min里面套max:f[j][i]=min(f[j][i],max(f[j][1]-f[k][1],f[k][i-1]));竟然过啦。不过 不明白这样做的意义何在。#include<iostr

2015-08-17 23:35:57 867

原创 核电站

http://codevs.cn/problem/2618/ 记忆化搜索+递归 每一个坑可能装东西也可能不装东西,所以诞生出来递归的两种状态。 继续放东西,或这中断放东西。题目只告诉了最多连续放多少个没有说一共放多少个,所以还是比较好理解的。#include<iostream>#include<stdio.h>#include<cmath>#include<string>#includ

2015-08-16 23:56:30 544

原创 自然数和分解

http://codevs.cn/problem/2549/ 把一个数字分成几部分相加,最简单也最方便的做法当然是递归回溯。这题换了一个思路,换了一个算法。短短的3行花了好久去理解。用的dp做的,状态转移方程f[j] = f[j] + f[j - i];组成7的个数等于组成7的个数+组成6的个数,组成8的个数等于组成8的个数+组成7的个数—–组成n的个数等于组成n的个数+组成n-1的个数 组成7

2015-08-15 23:03:18 390

原创 津津的储蓄计划

http://codevs.cn/problem/4085/ http://codevs.cn/problem/1057/ http://www.acmicpc.sdnu.edu.cn/problem/show/1170 竟然是顺序结构的题,GET到一个新技能,在递归调用时可以提前return,那么在主函数也可以提前return 啊。 这次需要注意的是,最后计算是最后一个的余额要计算上去。#

2015-08-14 22:28:45 709

原创 矩形合并

http://www.acmicpc.sdnu.edu.cn/problem/show/1016 不是很难,让我自己东弄弄西弄弄,弄的特别复杂。一开始每个点的遍历果断的TLE,然后想到了结构体,但是写判断的过程时,脑子过了一遍就发现了无数种的覆盖可能。没办法了,找同学要的源码,一开始,也没看明白,慢慢的理解,((!(juxing[i].a>=juxing[j].c||juxing[j].a>=ju

2015-08-13 22:58:52 1488

原创 快速幂取余

http://codevs.cn/problem/3500/ http://www.acmicpc.sdnu.edu.cn/problem/show/1056 快速幂取余,原来看代码以为特别难,但没想到,原来这么简单啊。 详情看以下文章:http://blog.csdn.net/xuruoxin/article/details/8578992 PS:第二个链接的数据很弱int 就可以过,第一

2015-08-12 23:02:30 278

java贪吃蛇源码(我要变胖)

学习java第一阶段的项目总结项目,贪吃蛇的源代码,支持自己设计地图,并有小精灵的设置

2015-09-09

空空如也

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

TA关注的人

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