自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

.

弱水三千,只取一瓢

  • 博客(31)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

转载 01背包问题 总结关于为什么01背包优化成1维数组后,内层循环是逆序的?

首先 什么是01背包问题?(可以参考下百度百科 只是我觉得百度百科对于为什么逆序这个问题解释的不是特别清楚)(以下题目中的内容摘自百度百科)/////////////////////////////////////////////////////////////////////////////////////题目有N件物品和一个容量为V的背包。第i件物品的重量是c[i],价值是w[i]。...

2018-07-31 20:39:06 2391 15

翻译 Stein算法求最大公约数

首先引进一个符号:gcd是greatest common divisor(最大公约数)的缩写,gcd( x,y ) 表示x和y的最大公约数。然后有一个事实需要了解:一个奇数的所有约数都是奇数。这个很容易,下面我们要用到。     来研究一下最大公约数的性质,我们发现有 gcd( k*x,k*y ) = k*gcd( x,y ) 这么一个非常好的性质(证明我就省去了)。说他好是因为他非常符合我们化...

2018-07-31 16:33:27 986

原创 hdu 1576 A/B 【扩展欧几里德】

题目A/9973=n那么:n= A - A / 9973 * 9973   ……①设:A/B=x  则A=B*x,代入①  得  n=B*x-A/9973*9973然后这个方程中的A/9973不要去纠结它,A就当不知道,然后,方程可变成二元方程 B * x - 9973 * y = n ;故:(x/n)B+(-y/n)9973=1=GCD(B,9973),该方程有解。  要...

2018-07-31 15:14:59 125

原创 树状数组之 ——区间更新,单点查询;区间更新,区间查询;

 //修改区间,查询点#include<iostream>#include<cstring>using namespace std;const int maxn=100005;const int maxq=100005;int a[maxn];int b[maxn];int c[maxn];//a原数组,b是a的差分数组,c是b的树状数组int low...

2018-07-27 20:55:12 299

原创 差分数组

今天学习了一下差分数组,觉得好神奇啊。1.定义:对于已知有n个元素的离线数列d,我们可以建立记录它每项与前一项差值的差分数组f:显然,f[1]=d[1]-0=d[1];对于整数i∈[2,n],我们让f[i]=d[i]-d[i-1]。2.简单性质:(1)计算数列各项的值:观察d[2]=f[1]+f[2]=d[1]+d[2]-d[1]=d[2]可知,数列第i项的值是可以用差分数组的前i...

2018-07-27 17:34:19 407

原创 lowbit(x)

int Lowbit(int x){ return x&(-x);}lowbit当中x,-x,补码,反码,傻傻分不清楚。我们先看看两个二进制数相减的问题两个二进制数相减的相关问题两个二进制数相减的时候可以把符号括起来转化为加法,比如010-111,这时候就可以写成010+(-111),要将111转化为补码再相加,所以010+001=011即,在求 -x 的时候...

2018-07-27 09:59:09 572

原创 hihocode 1336 Matrix Sum 【二维树状数组】

题目两个操作: 1. Add x y value: Add value to the element Axy. (Subscripts starts from 02. Sum x1 y1 x2 y2: Return the sum of every element Axy for x1 ≤ x ≤ x2, y1 ≤ y ≤ y2.注意取模,因为value可能为负值       ...

2018-07-26 21:00:00 100

翻译 mod与%的区别

mod与%的区别 %与mod的区别:%出来的数有正有负,符号取决于左操作数,而mod只能是正;所以要用%来计算mod的话就要用这样的公式:a mod b = (a % b + b) % b;括号中的式子可以把左操作数转变为正数。...

2018-07-26 20:55:45 13768 6

原创 hdu 2642 Stars 【二维树状数组】

题目题目大意:Yifenfei是一个浪漫的人,他喜欢数天上的星星。为了使问题变得更容易,我们假设天空是一个二维平面,上面的星星有时会亮,有时会发暗。最开始,没有明亮的星星在天空中,然后将给出一些信息,“B XY”,其中“B”代表明亮,x代表X坐标和Y代表Y坐标是指在(X,Y)的明星是光明的,而在“D XY”'D'的意思是灰暗的星星在(X , Y).当得到“Q X1 X2 Y1 Y2”的查询,你...

2018-07-26 15:48:51 166

原创 poj 2352 stars 【树状数组】

题目题意:按y递增的顺序给出n颗星星的坐标(y相等则x递增),每个星星的等级等于在它左边且在它下边(包括水平和垂直方向)的星星的数量,求出等级为0到n-1的星星分别有多少个。因为y递增的顺序给出,于是乎这道题跟 y 无关,在每次输入x的时候都去判断比x小,即在x之前的数有多少(ans)个,即星星的等级。然后更新num[ans]++  ( 存ans等级星星的个数num[ans]++ )....

2018-07-26 11:43:34 129

原创 hdu 1698 Just a Hook 【线段树+lazy】

题目写了一天的线段树,这道题主要说明一下sum是赋值的,不是累加的,并且在push_down的时候lazy也是赋值的。因可能对懒标记的理解还不是很透彻吧。#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int Max = 1e5+1...

2018-07-25 21:05:59 86

原创 线段树【单点更新,区间更新,区间查询,最值查询】

写了一下午的线段树,也算是做个总结吧。下面的区间更新写了两种,一种是没有用到懒操作一种是用了的。懒操作主要是在区间更新的时候用到,下面求区间和 and 区间最值都是要用到懒操作的#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int M...

2018-07-25 16:47:39 636

原创 hdu 2838 Cow Sorting (树状数组+逆序对)

题目题意:给你N个排列不规则的数,任务是把它从小到大排好,每次只能交换相邻两个数,交换一次的代价为两数之和,求最小代价拿到这道题,我根本看不出这道题和树状数组有半毛钱关系,博客之,全说用树状数组做,纳尼。。。看来我还是太年轻。。这道题还涉及到了逆序对,何为逆序对:对于一个包含N个非负整数的数组A[1..n],如果有i < j,且A[ i ]>A[ j ],则称(A[ i] ...

2018-07-24 16:59:34 231

原创 hdu 1045 Fire Net

题目拿到这道题刚开始就觉得是bfs,其实自己一直不太能清晰的分析出一个题用的是bfs,还是dfs。尽管他们的原理我都大概知道,但可能就是 因为我只是大概知道吧。。总是觉得dfs和bfs这两个东西是可以相互使用的。下面对dsf和bfs做一个总结吧:DFS在于从一个初始状态出发,一直转移状态直到搜到目标或搜到状态无法进行转移为止,而BFS在于一层一层地扩展状态,这样首先找到的目标便一定是用...

2018-07-23 10:14:38 145

原创 hdu 2199 Can you solve this equation?

题目小白书上说二分搜素法的结果判定,一 .一次二分可以把区间范围缩小一半,100次循环则可以达到10^-30的精度范围。#include &lt;cstdio&gt;#include &lt;cmath&gt;using namespace std;int N,K;const int INF = 1e5+10;double num;bool C(double n){ ...

2018-07-21 18:00:10 82

原创 重载

优先级队列区别于普通队列的一点是:优先级队列如果插入的节点是结构体类型,则要在结构体中重载比较操作符函数。优先队列默认的que插入是从大到小,所以在结构体中要重载&lt;,struct P{ int pos;//position int dis;//distance friend bool operator &lt;(P a,P b) { ...

2018-07-21 11:13:32 169

原创 关于cmp函数参数中的&符号

关于cmp函数参数中的&amp;符号关于sort函数中的cmp函数有着不同的写法,以刚刚的整形元素比较为例还有人是这么写的:bool cmp(const int &amp;a, const int &amp;b){ return a&gt;b; } int a[10]; sort(a,a+10,cmp); 思考:int 和const int&amp;有什么...

2018-07-20 17:23:26 808

原创 hihocoder 二分·二分答案【二分搜索,最大化最小值】 (bfs)

题目这道题做了几个小时了都没有做出来,首先是题意搞了半天都没有弄懂,难道真的是因为我不打游戏所以连题都读不懂了?反正今天是弄不懂了,过几天再来看看。。。题意:一个人从1点出发到T点去打boss,这个人有两个属性值,防御值和战斗值,这两个值成反比,为了打赢boss我们要使战斗值最大,于是乎防御值就要最低,但是也不能太低,于是乎这个界限在哪,这就是我们要求的。每条路上都有一个索敌值,防御值...

2018-07-19 20:31:49 279

原创 hihocoder 二分

题目一个简单的二分,只是想说明一下,如若要查找一个数组中某个数的下标可以直接用lower_bound()这个函数。只是要考虑到要查找的数不在数组中的这种情况。#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;algorithm&gt;using namespace std;const int Max = 1e...

2018-07-19 16:19:31 178

原创 poj 2456 Aggressive cows

题目描述农夫 John 建造了一座很长的畜栏,它包括N (2 &lt;= N &lt;= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 &lt;= xi &lt;= 1,000,000,000).但是,John的C (2 &lt;= C &lt;= N)头牛们并不喜欢这种布局,而且几头牛放在一个隔间里,他们就要发生争斗。为了不让牛互相伤害。John决定自己给牛分配...

2018-07-19 15:35:18 94

原创 二分搜素——(lower_bound and upper_bound)

因为每个人二分的风格不同,所以在学习二分的时候总是被他们的风格搞晕。有的人二分风格是左闭右开也就是[L,R),有的人是左开右闭的(L,R]。二分的最基本条件是,二分的序列需要有单调性。下面介绍的时候用v来代表我们二分的目标,用第一个大于v,第一个大于等于v【升序】,最后一个小于v,最后一个小于等于v【降序】来描述,这里可以看到我即将要介绍的4种二分搜索。1.第一个大于等于v这就是我...

2018-07-19 11:08:07 394

原创 二分(搜索)查找

 以为二分查找和二分搜索是两个不同的东西,但是代码咋个又这么像嘞,思路咋个都是一个的嘞,傻傻没分清楚过。区别在于对 lb 和 ub 进行赋值的时候,一个赋的是:lb=0,ub=n-1;一个赋的是:lb= -1,ub=n;因此导致对 mid 进行更新时,一个要mid+1 或者 mid-1,一个可以直接赋值mid;一个循环条件是:ub-lb&gt;=0,一个循环条件是:ub-lb&gt;1;总...

2018-07-19 09:44:15 1016

转载 算法复杂度中的O(logN)底数是多少

关于算法的时间复杂度很多都用包含O(logN)这样的描述,但是却没有明确说logN的底数究竟是多少。解答: 算法中log级别的时间复杂度都是由于使用了分治思想,这个底数直接由分治的复杂度决定。如果采用二分法,那么就会以2为底数,三分法就会以3为底数,其他亦然。不过无论底数是什么,log级别的渐进意义是一样的。也就是说该算法的时间复杂度的增长与处理数据多少的增长的关系是一样的。我...

2018-07-18 19:35:17 1135

原创 hdu 1050 Moving Tables

题目这道题之前写过一次,结果再做又忘了,再做又忘了。所以还是写个博客记录一下。相对门的两个房间占用同一处走廊,所以例如有1——&gt;3和4——&gt;6移动方式时,它们是共享了同一段走廊的,即3号房间门前的走廊。处于相对门的两个房间和处于一排的这样子的房间他们都有一个相同点:奇数房间到偶数房间占用的房间数相同。而有个不同点是:相对门奇数到奇数门所占用的房间,其实还要包括她对门的偶...

2018-07-18 17:50:54 87

原创 hdu 1010 Tempter of the Bone

题目题意:根据地图,'S'为开始位置,'D'为门的位置,' . '为空地,'X'为墙,不能经过,问:在指定的时间,是否能到达'门'的位置.注意:路不可以重复经过,时间也要刚好是 t ,不能少.思路:用DFS,不能用BFS,因为BFS求的是最短路径,而此题的路径不一定最短.剪枝是关键,奇偶剪枝.奇偶剪枝原理:要理解奇偶剪枝,先了解一下曼哈顿距离,从一个点到达另外一个点的最...

2018-07-18 16:11:54 95

原创 hud 3123 GCC

题目输入:n 和 mod输出:Output the answer of (0! + 1! + 2! + 3! + 4! + ... + n!)%m.Constrains0 &lt; T &lt;= 200 &lt;= n &lt; 10^100 (without leading zero)0 &lt; m &lt; 1000000一道模运算的题,其实是一道数学题。因为n太大...

2018-07-17 13:37:21 96

原创 “123”——> 123

#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;using namespace std;int main(){ char num[110]; scanf("%s",num); int len = strlen(num); int t=1,tmp=0; ...

2018-07-17 13:14:53 573

转载 基本模运算

1.概念:模运算是指取模运算,即求m/n的余数。模运算有许多基本规则,熟练掌握可以更好的编程。2.交换律:                        (a + b) % m = (b + a) % m                        (a * b) % m = (b * a) % m3.结合律:                        [(a+b)%m+...

2018-07-16 19:42:23 1538

原创 hdu 1716 排列

题目这道题是全排列问题,主要注意的是格式问题。觉得下面这种写法最为巧妙#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;algorithm&gt;using namespace std;int main(){ int a[5],flag=0; while(~scanf("%d%d%d%d...

2018-07-16 17:05:47 299

原创 codevs 2597 团伙

2597 团伙题目描述 Description1920年的芝加哥,出现了一群强盗。如果两个强盗遇上了,那么他们要么是朋友,要么是敌人。而且有一点是肯定的,就是:我朋友的朋友是我的朋友;我敌人的敌人也是我的朋友。 两个强盗是同一团伙的条件是当且仅当他们是朋友。现在给你一些关于强盗们的信息,问你最多有多少个强盗团伙。输入描述 Input Description输入文件gan...

2018-07-16 16:13:28 115

原创 创建了一个静态数组,越界访问为什么不报错

#include&lt;stdio.h&gt;int main(){ int s[5],i; for( i=0;i&lt;10;i++) { s[i]=i; } printf("\n"); for( i=0;i&lt;10;i++) { printf("%d ",s[i]); } retur...

2018-07-14 10:20:24 687

c++入门讲义.rar

“BV1et411b73Z”

2021-09-22

常用正则表达式.pdf

常用正则表达式

2021-09-09

Rational-Rose使用手册

Ration-Rose使用手册,《Rational Rose 2003基础教程》 配套电子教案

2018-11-29

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

TA关注的人

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