自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 WA恶之源

luogu1364医院设置 printf中用了&,颓了一下午;NOIP2017Day2 cheese 多组询问忘了在循环结束时重置变量,瞬间爆炸模板-归并排序 全局变量与局部变量一定要分清openjudge2727仙岛求药   数组大小问题以及码风不该作死,致使if逻辑判断书写错误233luogu2085最小函数值 写的时候m变量用样例中的10来写luogu

2017-12-14 17:44:34 253

原创 [luogu]P1220关路灯-区间DP

题目描述某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少)。老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯。为了给村里节省电费,老张记录下了每盏路灯的位置和功率,他每次关灯时也都是尽快地去关,但是老张不知道怎样去关灯才能够最节省电。他每天都是在天亮时首先关掉自己所处位置的路灯,然后可以向左也可以向右去关灯。开始他以为先...

2018-02-24 15:40:47 223

原创 [luogu]P1736创新吃鱼法

题目描述回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*)。她发现,把大池子视为01矩阵(0表示对应位置无鱼,1表示对应位置有鱼)有助于决定吃鱼策略。在代表池子的01矩阵中,有很多的正方形子矩阵,如果某个正方形子矩阵的某条对角线上都有鱼,且此正方形子矩阵的其他地方无鱼,猫猫就可以从这个正方形子矩阵“对角线的一端”...

2018-02-24 14:09:07 208

原创 [luogu]P1216-数字三角形

题目描述观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大输入输出格式输入格式:第一个行包...

2018-02-22 10:39:52 261

原创 线段树

操作(初始化,单个点的修改,区间的修改,区间查询,lazy标记)//线段树 //每个节点代表一段区间  除叶节点外均有左右子节点 //左子节点:[L,(L+R)/2] 右子节点:[(L+R)/2+1,R]  叶节点长度为1 #include<iostream>#include<cstdio>#include<cstring>#include<c...

2018-02-10 00:49:08 126

原创 二叉查找树&&平衡树基础

操作:二叉查找树(插入,查找,删除,dfs序,求最值,第k大/小)  //二叉查找树 //特点:每个点左子树上的点都小于该点,右子树上的点都大于该点 //没有取值相同的点 任意点的左右子树均为二叉查找树 //中序遍历严格单调递增 #include<iostream>#include<cstdio>#include<cstring>#include&...

2018-02-10 00:45:20 285

原创 树状数组

1.sum为前缀和下标为x的数2.add操作更新数组,构建初始数组,如eg1,更新前缀和数组,如eg2,更新差分数组3.对于一个数组A[ ],其差分数组D[i]=A[i]-A[i-1] (i>0)且D[0]=A[0]令SumD[i]=D[0]+D[1]+D[2]+…+D[i] (SumD[ ]是差分数组D[ ]的前缀和)则SumD[i]=A[0]+A[1]-A[0]+A[2]-A[1]+A[...

2018-02-09 11:33:46 131

原创 链表与邻接表

 对于稀疏图来说,M要远远小于N21234564 51 4 94 3 81 2 52 4 61 3 7第一行两个整数n m。n表示顶点个数(顶点编号为1~n),m表示边的条数。接下来m行表示,每行有3个数x y z,表示顶点x到顶点y的边的权值为z。下图就是一种使用链表来实现邻接表的方法。 上面这种实现方法为图中的每一个顶点(左边部分)都建立了一个单链表(右边部分)。这样我们就可以通过遍历每个顶点...

2018-02-08 20:25:43 1043 1

原创 总结-暴搜

//所谓暴搜,其实就是以搜索的方式穷举所有的可能性//搜索的思路是将整个题目的处理拆分成好多步骤,每个步骤都进行处理以及判断。重点是,这些步骤是可以不断加深的,最终处理完整个过程//而暴搜则适用于好多题目,搜索不一定只是用在八皇后之类直观的移动类题目上,对于好多不直观的题(比如说luogu1025)也可以使用。只是前者体现在物体的位置移动上,而后者体现在一个个的小步骤处理上。//如上,

2018-01-08 23:23:06 1244

原创 [luogu]P1025数的划分-暴搜

题目描述将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1;问有多少种不同的分法。输入输出格式输入格式:n,k (6输出格式:一个整数,即不同的分法。输入输出样例输入样例#1: 

2018-01-08 23:19:23 244

原创 鬼畜-Beep

qwq/******************************************************************* * Copyright (C) Jerry Jiang * File Name : MultiThreadDlg.cpp * Author : Jerry Jiang * Create Time : 2

2018-01-07 00:04:52 214

原创 日常颓-贪吃蛇游戏

机房游戏qwq/************************贪吃蛇***********************/ /**********************2012-11-20*********************/ #include #include #include #include #include #include #in

2018-01-06 23:50:23 219 1

原创 [luogu]P1031均分纸牌-日常模拟题

题目描述有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样

2018-01-06 23:39:47 215

原创 模板-Tarjan算法与图的连通性

有向图算法流程展示从节点1开始DFS,把遍历到的节点加入栈中。搜索到节点u=6时,DFN[6]=LOW[6],找到了一个强连通分量。退栈到u=v为止,{6}为一个强连通分量。返回节点5,发现DFN[5]=LOW[5],退栈后{5}为一个强连通分量。返回节点3,继续搜索到节点4,把4加入堆栈。发现节点4像节点1的后向边,节点1还在栈中,所以LOW[4]

2018-01-06 10:08:22 147

原创 模板-中国剩余定理

用现在的语言说,中国剩余定理是这样的:x≡a1(mod m1) x≡a2(mod m2) ······ x≡ar(mod mr) 其中m两两互质,此时x一定有解。由于诸mi(1≤i≤r)两两互素,这个方程组作变量替换,令x=(N/mi)*y,方程组等价于解同余方程:(N/mi)y≡1(mod mi),若要得到特解yi,只要令: xi=(N/mi)*yi,则

2018-01-05 16:19:01 154

原创 [luogu]P1000超级玛丽游戏

题目描述超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。 ******** ************ ####....#. #..###.....##.... ###.......######

2017-12-29 22:53:15 526

原创 [luogu]P1576最小花费-最短路裸题

题目背景题目描述在n个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问A最少需要多少钱使得转账后B收到100元。输入输出格式输入格式:第一行输入两个正整数n,m,分别表示总人数和可以互相转账的人的对数。以下m行每行输入三个正整数x,y,z,表示标号为x的人和标号

2017-12-23 13:19:54 233

原创 模板-最短路//Dilkstra

Dilkstra算法主要用到的是贪心的思想我们假设2是起点,想要走到终点 4,显然我们有两种走法,而且显而易见,走2-> 1-> 4这条路是最短的。我们不希望走2->4这条路。我们通过1这个点,能把从2->4的路径复杂化(多走一步(多转个弯))但是却能够缩短路径耗时的操作,我们理解为松弛操作,我们完成dijkstra的整个算法的过程,无非就是不断的在松弛的过程。我们

2017-12-21 00:11:30 309

原创 模板-最短路//spfa

求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm。     SPFA算法是西南交通大学段凡丁于1994年发表的。    从名字我们就可以看出,这种算法在效率上一定有过人之处。     很多时候,给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。有人称

2017-12-20 22:41:14 206

原创 堆排有关题目的总结

(只能说是疑似套路,因为我现在堆排做的也很少qwq(逃//像之前的序列合并与最小函数值,都要对两个数列进行处理,暴力枚举的话时空都会爆,所以这里要用到堆的一点性质。即在对数列进行过一维处理后,只枚举一个数列,另一条带入最值与枚举数列进行处理,随后建堆。再枚举另一条数列。利用大小根堆的堆顶或其他性质决定枚举对象是否入堆,这样一来就会剪去好多情况qwq

2017-12-11 23:57:18 267

原创 [luogu]P1631序列合并-堆排的套路运用

题目描述有两个长度都是N的序列A和B,在A和B中各取一个数相加可以得到N^2个和,求这N^2个和中最小的N个。输入输出格式输入格式:第一行一个正整数N;第二行N个整数Ai,满足Ai第三行N个整数Bi, 满足Bi【数据规模】对于50%的数据中,满足1对于100%的数据中,满足1输出格式:输出仅一行

2017-12-11 23:43:31 293

原创 [luogu]P2085最小函数值-堆排的玄学运用

题目描述有n个函数,分别为F1,F2,...,Fn。定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*)。给定这些Ai、Bi和Ci,请求出所有函数的所有函数值中最小的m个(如有重复的要输出多个)。输入输出格式输入格式:输入数据:第一行输入两个正整数n和m。以下n行每行三个正整数,其中第i行的三个数分别位Ai、Bi和Ci。Ai输出格式:

2017-12-10 19:51:51 293

原创 [luogu]P1090合并排序-堆

这个是堆的作法,速度很快,只有20ms左右,插排的那个要940-960ms题面另一篇里有#include using namespace std;int siz,n,x,hp[10005],sm;int p,q;void pus(int x){ siz++; hp[siz]=x; int now=siz; while(now>1) { if(hp[now]>

2017-12-10 16:04:21 191

原创 模板-堆(根堆相关操作,堆排)

堆排时从小到大是pus_small&del_stob;从大到小是pus_big&del_btospus函数操作基本原理是把当前点与之上的点比对,有不符合规律的交换;del函数操作基本原理是删去堆顶的点,把最后一个节点放到堆顶进行交换比对操作,若把删去的堆顶存下来的话就是排序#includeusing namespace std;const int maxn=100005;

2017-12-10 15:54:20 237

原创 [openjudge]P2727仙岛求药

描述少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶。叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由M×N个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全。现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他。现在要求你来帮助他实现这个目标下图 显示了一个迷阵

2017-12-08 17:05:26 438

原创 大神cyd的骗分导论

新 版 骗 分 导 论THE NEW GUIDE OF CHEATING IN INFORMATICS OLYMPIAD蒟 蒻 的 宝 书目录 第1章 绪论第2章 从无解出发2.1 无解情况2.2 样例——白送的分数第3章 “艰苦朴素永不忘”3.1 模拟3.2 万能钥匙——DFS第4章 骗分的关键——猜想4.1

2017-12-08 15:53:12 2787 1

原创 模板-插入排序

插入排序原理:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序核心:假设第一个元素排好,之后的元素对排好的部分从后向前比较并逐一移动。理解:看代码,相当于每遍历一个,若不符合队列次序,就把他向前面扔,查到合适的数后面#includeusing namespace std;const int maxn=10000

2017-12-07 00:07:55 228

原创 [luogu]P1090合并果子-插入排序的简单应用

题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省

2017-12-06 23:07:04 235

原创 [poj]P1655树的重心

题目:http://poj.org/problem?id=1655题意:给定一棵树,求树的重心的编号以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的.分析:首先要知道什么是树的重心,树的重心定义为:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡.

2017-12-06 00:16:14 224

原创 [luogu]P1966火柴排队-逆序对与归并排序的初步运用

题目描述涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为: ∑(ai-bi)^2其中 ai 表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。请问得到这个最小的距离

2017-12-04 23:33:48 162

原创 [luogu]P1141 01迷宫-宽搜

题目描述有一个仅由数字0与1组成的n×n格迷宫。若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上。你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。输入输出格式输入格式:输入的第1行为两个正整数n,m。下面n行,每行n个字符,字符只可能是0或者1,字符

2017-12-04 23:22:35 393

原创 [luogu]P1162填涂颜色

题目描述由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和涂色后的方阵如下:0 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 10 0 0 0 0 00 0 1 1 1 1

2017-12-04 23:17:40 263

原创 [luogu]P1364医院设置

设有一棵二叉树,如图:【我是图】其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。如上图中,若医院建在1 处,则距离和=4+12+2*20+2*40=136;若医院建在3 处,则距离和=4*2+13+20+40=81……输入输出格式输入格式:第

2017-12-03 22:04:32 306

原创 模板-树的遍历(先序)

#includeusing namespace std;const int maxn=100005;struct Tree{ int fa; int l; int r;}tr[maxn];void dfs(int x);int a,b;int n,m;int EA;int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ cin>

2017-12-02 10:17:52 221

原创 模板-邻接表

//邻接表struct Edge{ int to,next;//to表示起源点到的点,next表示上一条边用cnt更新 }edge[505];void add_edge(int bg,int ed){ cnt++; edge[cnt].to=ed; edge[cnt].next=head[bg];//表示起源点所连得上一条边 head[bg]=cnt;//记录 ,更新 }//G

2017-11-30 18:25:39 235

原创 模板-并查集(kruskal)

//kruskal算法,并查集 #include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;algorithm&gt;const int maxn=300005;using namespace std;int n,m;int tot;int ans;int fa[maxn];struct edge{ int u; i...

2017-11-26 21:37:53 182

原创 [luogu]P1908逆序对

利用归并排序的一道模板题,利用逆序对特点用ans计数,大意是如果当前的数存在逆序对则之后的数也都存在(排序从小到大),ans+=mid-i+1即可//数组大小要注意#include#include#include#includeusing namespace std;const int maxn=50000;int n;int ans=0;int a[maxn];int b[ma

2017-11-26 21:34:34 259

原创 小算法-快速幂

和cmath库里的pow函数作用一样,但速度快的多,原理是b可以拆成n个2的幂值,然后把b转化为二进制,判断各位上是否为一,是则累乘,否则a*a上代码#include#includeusing namespace std;int a,b,c;int res;int pw(int x,int y);int main(){ cin>>a>>b; c=pw(a,b); cout

2017-11-24 23:22:38 239

原创 模板-归并排序及易错点

没有题面//归并的基本思路:/*...*/ #include#includeusing namespace std;int n;int a[1005];int b[1005];//int mid;void merge(int l,int r);int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } mer

2017-11-24 22:27:37 405

原创 [poj]P2386 宽搜模板-lake counting

Lake Counting 试题描述有一个大小为M*N的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请求出园子里共有多少水洼?(八连通指的是下面图中相对W的*的部分)****W****限制条件:N,M≤100输入第一行包含两个正整数 N 和 M,表示将一个园子地

2017-11-23 23:03:30 365

空空如也

空空如也

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

TA关注的人

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