自定义博客皮肤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)
  • 收藏
  • 关注

原创 欢迎来到cht的博客

欢迎来到cht的博客写在前面第一周:简单搜索写在前面  从今天起开始正式接触算法,以下是我的小白刷题之路,不管以前零零散散学了什么,现在计划每周完成任务和目标,希望能坚持下来,正常的话,每周都会更新,有时也会更新之前所学知识的总结,在算法这条路上我会坚定走下去!  我不去想是否能够成功,既然选择了远方,便只顾风雨兼程;我不去想身后会不会有寒风冷雨袭来,既然目标是地平线,留给世界的只能是背影…第一周:简单搜索POJ 1321 棋盘问题POJ 2251 Dungeon MasterPOJ 3278

2020-09-28 01:59:22 102

原创 牛客小白月赛17

牛客小白月赛17A题:小sun的假期分析:代码如下:B题:扫雷分析如下:代码如下:C题:异或和分析:代码如下:D题:解密分析:代码如下:F题:小黄鸭分析:代码如下:I 题:坐电梯  今天的训练赛是牛客小白月赛17,做了一个多小时就不会做了,一共过了6道,下面是对这6道的总结(有时间再更新补题)。A题:小sun的假期  牛客:小sun的假期题目描述:  小 sun 非常喜欢放假,尤其是那种连在一起的长假,在放假的时候小 sun 会感到快乐,快乐值等于连着放假的天数,现在小 sun 把他的安排表告诉你

2020-11-22 16:03:36 19 1

原创 区间dp

区间dp对区间dp的简单介绍:P1880 [NOI1995]石子合并:分析:完整代码如下:明天更新。。。对区间dp的简单介绍:  区间dp也属于线性dp中的一种,它以“区间长度”作为dp的“阶段”,使用两个坐标(区间的左、右端点)描述每个维度。在区间dp中,一个状态由若干个比它更小且包含于它的区间所代表的的状态转移而来,因此区间dp的决策往往就是划分区间的方法。区间dp的初态一般就又长度为1的“元区间”构成。P1880 [NOI1995]石子合并:  洛谷:P1880 石子合并题目描述  在一个

2020-11-15 21:36:20 27

原创 斜率优化dp (P2365/P5785 任务安排)

斜率优化dpP2365 任务安排解法一 O(N^3^):解法二:O(N^2^):解法二代码如下:解法三 O(N):凸壳:综上所述:P2365 任务安排  这道题因为数据量不大,不需要用到斜率优化dp,但后续的 P5785 虽然题意不变,但数据范围变大了,需要用到斜率优化dp来解决,所以就先用较简单的做法介绍一下这道题。  洛谷:P2365 任务安排题目描述:  有 N 个任务排成一个序列在一台机器上等待执行,它们的顺序不得改变。机器会把这 N 个任务分成若干批,每一批包含连续的若干个任务。从时刻0

2020-11-08 19:26:41 1112 8

原创 第五周:二分 尺取 单调栈队列

第五周:二分:CodeForces - 371CPOJ - 3122HDU - 4768HDU - 4190尺取:POJ - 3061POJ - 2100HDU - 5672HDU - 1937单调队列:HDU - 4122二分:CodeForces - 371C  Hamburgers分析:代码如下:#include <bits/stdc++.h>using namespace std;typedef long long LL;int b, s, c;LL w, mid,

2020-11-02 01:21:42 19

原创 Bellman - Ford算法和SPFA算法

  给定一张有向图,若对于图中的某一条边(x, y, z),有 dist[y] ≤ dist[x] + z 成立,则称该边满足三角形不等式。若所有边都满足三角形不等式,则 dist 数组就是所求最短路。  先介绍基于迭代思想的Bellman-Ford算法。它的流程如下:  1.扫描所有边(x,y,z),若 dist[y] > dist[x] + z,则用 dist[x]+z 更新 dist[y]。  2.重复上述步骤,直到没有更新操作发生。  Bellman-Ford 算法的时间复杂度为0(n

2020-10-24 20:07:43 21

原创 HDU - 1024 Max Sum Plus Plus (kuangbin - 基础DP)

题目描述 (已转换成中文)  你有n个数s1, s2…sn,给你一个整数m,求m个子段和的最大值输入格式  输入m,输入n。后面跟着输入n个ai (n < 1e6)输出格式  输出最大和输入输出样例输入1 3 1 2 32 6 -1 4 -2 3 -2 3输出68题目链接分析:  这道题大概的意思就是把n个数中,切成m段,求这m段的最大字段和,属于动态规划的题目,重点是找出转移方程。  先来分析下如何得到状态方程:使用一个二维数组dp[i][j]表示如果取第j个数时

2020-10-20 23:32:14 43

原创 HDU - 1754 I Hate It (kuangbin - 线段树)

题目描述  很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。  不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。输入格式  本题目包含多组测试,请处理到文件结束。  在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5000 ),分别代表学生的数目和操作的数目。  学生ID编号分别从1编到N。 第二行包含N个整数

2020-10-17 16:01:34 21

原创 HDU - 1166 敌兵布阵 (kuangbin - 线段树)

题目描述  Lily 特别喜欢养花,但是由于她的花特别多,所以照料这些花就变得不太容易。她把她的花依次排成一行,每盆花都有一个美观值。如果Lily把某盆花照料的好的话,这盆花的美观值就会上升,如果照料的不好的话,这盆花的美观值就会下降。有时,Lily想知道某段连续的花的美观值之和是多少,但是,Lily的算术不是很好,你能快速地告诉她结果吗?输入格式  第一行一个整数T,表示有T组测试数据。每组测试数据的第一行为一个正整数N(N<=50000),表示Lily有N盆花。接下来有N个正整数,第i个正

2020-10-10 23:51:21 18

原创 ZOJ - 1586 QS Network (kuangbin - 最小生成树)

题目描述(已转换成中文)  想用路由器把N个地方连接起来,给定N个路由器安装点,接下来的N个数字表示在某地安装一个路由器的费用。再接下来N*N的矩阵表示两地进行连接时的花费。每个路由器只能用一次,例如在AB之间连接了,就需要分别在A和B购买一个路由器,然后再把他们连起来,然后再想在AC之间连接,A就必须要再买一个路由器,不能重复使用同一个路由器,求他们的最小花费输入格式  T组输入。输入N代表需要N地互联,下面一行有N个数字,代表在第i个地方安装一个路由器的费用。下面N行为一个矩阵,代表第i个地方到第

2020-10-09 18:06:57 10

原创 POJ - 2421 Constructing Roads (kuangbin - 最小生成树)

题目描述(已转换成中文)  有N个村庄,从1到N,你应该修建一些道路,这样每两个村庄就可以连接起来。我们说两个村庄A和B相连,当且仅当A和B之间有一条路,或者存在一个村庄C使得A和C之间有一条路,并且C和B相连。  我们知道一些村庄之间已经有一些道路了,你的工作是修建一些道路,这样所有的村庄都连接起来,所有道路的长度都是最小的。输入格式  第一行是整数N (3 <= N <= 100),即村庄数。然后是N行,第i行包含N个整数,第j列是村i和村j之间的距离(距离应该是[1,1000]内的

2020-10-09 18:04:22 10

原创 POJ - 1287 Networking (kuangbin - 最小生成树)

题目描述(已转换成中文)  李云龙集结了所有驻扎在外的部队,想要进攻平安县城,但是平安县城太大了,李云龙的部队太多了,把平安县城围起来之后自己传达命令很不方便,而且由于山本的手下有个狙击手专打通讯员,派遣通讯员很有可能发生意外使得命令传达不到,所以李云龙决定派工程兵修建电话线。  由于这是一个危险的任务,而且为了尽快建好通讯电话网络,工程兵需要在最短的时间内建立一个能够传达命令的电话网络。输入格式  多样例输入,且至少有一个可行方案。  每个样例的第一行有两个整数,P(需要建立通讯的部队数),R(

2020-10-09 18:00:55 11

原创 POJ - 1251 Jungle Roads (kuangbin - 最小生成树)

题目描述(已转换成中文)  有一个旅游区,旅游区有很多的景点,景点间需要开通缆车,使得任意两个景点可以互相到达。现在给出一些点间的缆车线路制造成本,两个景点之间可能有多重制造方式。问最少的花费是多少。输入格式  输入包括多组数据,最多100组,最后以输入0表示结束。对于每一组数据,第一行一个n,表示景区数量,1<n<27。  之后n-1行,每行第一个是一个大写字母,表示当前景区的编号,接着是k,表示当前景区对外可以有k中缆车线路制造方式,接着k对,每对第一个是一个字母,表示这条路线连接的

2020-10-09 17:55:43 9

原创 图的存储结构:稠密图与稀疏图 对应 邻接矩阵与邻接表

概念:  有很少条边或弧的图称为稀疏图,反之称为稠密图。 这里稀疏和稠密是模糊的概念,都是相对而言的。目前为止还没有给出一个量化的定义。比方说一个有100个顶点、200条边的图,与100个顶点组成的完全图相比,他的边很少,也就是所谓的稀疏了。用n 表示图中顶点数目,用e 表示图中边或弧的数目  稀疏图: e < nlogn  稠密图 e >nlogn若图中边或弧上有权,则该图称为网  稠密图用 邻接矩阵存储  稀疏图用 邻接表存储原因:  邻接表只存储非零节点,而邻接矩阵则要把

2020-10-09 00:51:28 191

原创 详解单源最短路径问题-迪杰斯特拉算法(Dijsktra)

Dijsktra算法Dijsktra算法的定义算法思想具体的实现过程Dijsktra算法的定义  Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。在无向图 G=(V,E) 中,假设每条边 E[i] 的长度为 w[i],找到由顶点 V0 到其余各点的最短路径(单源最短路径)。算法思想  设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初

2020-10-08 17:14:52 126

原创 POJ - 2387 Til the Cows Come Home (kuangbin - 最短路练习)

题目描述(已转换成中文)  cht很热爱学习,他打算偷偷跑回学校学习,为了多学习他希望可以找最快的路线回到学校。  北京市里有N个(2 <= N <= 1000)个地铁站,编号分别为1…N。cht家在1号地铁站旁边,清华大学旁边是N号地铁站。地铁站之间共有M (1 <= M <= 2000)条双向路径。  cht现在在1号地铁站,他希望知道到学校最短要多长时间。可以保证cht能到达学校。忽略cht在换乘地铁时需要的等待时间输入格式  第一行:两个整数:M和N  接下来M行

2020-10-08 10:56:40 21

原创 POJ - 1182 食物链 (kuangbin - 并查集)

题目描述  动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。  有人用两种说法对这N个动物所构成的食物链关系进行描述:    第一种说法是"1 X Y",表示X和Y是同类。    第二种说法是"2 X Y",表示X吃Y。  此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就

2020-10-04 20:59:09 17

原创 POJ - 1611 The Suspects (kuangbin - 并查集)

题目描述(已转换成中文)  新型冠状病毒肺炎(Corona Virus Disease 2019,COVID-19),简称“新冠肺炎”,是指2019新型冠状病毒感染导致的肺炎。如果一个感染者走入一个群体,那么这个群体需要被隔离!小A同学被确诊为新冠感染,并且没有戴口罩!!!!!!  危!!!  时间紧迫!!!!  需要尽快找到所有和小A同学直接或者间接接触过的同学,将他们隔离,防止更大范围的扩散。  众所周知,学生的交际可能是分小团体的,一位学生可能同时参与多个小团体内。  请你编写程序解决

2020-10-03 17:09:53 50

原创 POJ - 2236 Wireless Network (kuangbin - 并查集)

题目描述(已转换成中文)  南亚发生了一次地震。ACM (Asia Cooperated Medical 亚洲联合医疗队) 已经为膝上型电脑搭建了一个无线网络,但受到了一次不可预知的余震攻击,因此网络中的所有电脑都被破坏了。电脑被逐台修复,网络逐步恢复了工作。由于受到硬件的约束,每台电脑只能与距离它不超过 d 米的其它电脑直接通信。但每台电脑可被看作其它两台电脑的通信中转点,也就是说,如果电脑 A 和电脑 B 可以直接通信,或存在一台电脑 C 既可与 A 也可与 B 通信,那么电脑 A 和电脑 B 之间就

2020-10-03 11:32:40 935

原创 FZU - 2150 Fire Game (kuangbin - 简单搜索)

题目描述(已转换成中文)  两个熊孩子在n*m的平地上放火玩,#表示草,两个熊孩子分别选一个#格子点火,火可以向上向下向左向右在有草的格子蔓延,点火的地方时间为0,蔓延至下一格的时间依次加一。求烧完所有的草需要的最少时间。如不能烧完输出-1。输入格式  第一行,输入一个T,表示有T组测试数据。 每组数据由一个n,m分别表示行列1 <= T <=100, 1 <= n <=10, 1 <= m <=10输出格式  输出最少需要的时间输入输出样例输入43

2020-09-28 23:33:19 25

原创 HDU - 1495 非常可乐 (kuangbin - 简单搜索)

题目描述  大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。  但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 (正好装满一瓶) ,它们三个之间可以相互倒可乐 (都是没有刻度的,且 S==N+M,101>S>0,N>0,M>0) 。聪明的ACMER你们说他们能平分吗?如果能请输出倒可乐的最少的次数,

2020-09-28 21:57:10 20

原创 HDU - 1241 Oil Deposits (kuangbin - 简单搜索)

题目描述(已转换成中文)  给定一个矩形区域,询问有多少个全为‘@’的连通块。a与b属于同一连通块当且仅当至少满足下列的一个条件:  1,a与b相邻。(当a在以b为中心的8个位置中的一个时,认为a与b相邻)  2,a的相邻点与b或b的相邻点属于同一连通块。  3,b的相邻点与a或a的相邻点属于同一连通块。输入格式  输入可能有多个矩形区域(即可能有多组测试)。每个矩形区域的起始行包含m和n,表示行和列的数量,1<=n,m<=100。当m =0时,输入结束。  接下来是n行,每行m个

2020-09-28 21:51:19 37

原创 POJ - 3984 迷宫问题 (kuangbin - 简单搜索)文尾有亮点。。。

题目描述  定义一个二维数组:  int maze[5][5] = {      0, 1, 0, 0, 0,      0, 1, 0, 1, 0,      0, 0, 0, 0, 0,      0, 1, 1, 1, 0,      0, 0, 0, 1, 0,   };  它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入格式  一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。输出格

2020-09-28 21:45:50 24

原创 UVA - 11624 Fire! (kuangbin - 简单搜索)

题目描述(已转换成中文)  乔在迷宫中工作。不幸的是,迷宫的一部分着火了,迷宫的主人没有制定火灾的逃跑计划。请帮助乔逃离迷宫。根据乔在迷宫中的位置以及迷宫的哪个方块着火,你必须确定火焰烧到他之前,乔是否可以离开迷宫,如果能离开他能跑多快。  乔和火每分钟移动一个方格,上、下、左、右,四个方向中的一个。火势向四个方向同时蔓延。乔可以从迷宫的任何一个边界逃离迷宫。无论是乔还是火都不会到达有墙的位置。输入格式  第一行输入包含一个整数,即测试次数,每个测试用例的第一行包含两个整数R和C,用空格分隔,1≤R

2020-09-28 21:39:06 38

原创 POJ - 3414 Pots (kuangbin - 简单搜索)

题目描述(已转换成中文)  小明给你两个容器,分别能装下A升水和B升水,并且可以进行以下操作:  FILL(i) 将第i个容器从水龙头里装满(1 ≤ i ≤ 2);  DROP(i) 将第i个容器抽干  POUR(i,j) 将第i个容器里的水倒入第j个容器(这次操作结束后产生两种结果,一是第j个容器倒满并且第i个容器依旧有剩余,二是第i个容器里的水全部倒入j中,第i个容器为空)  现在要求你写一个程序,来找出能使其中任何一个容器里的水恰好有C升,找出最少操作数并给出操作过程输入格式  有且只有

2020-09-28 21:15:34 24

原创 POJ - 3087 Shuffle‘m Up (kuangbin - 简单搜索)

题目描述(已转换成中文)  还记得2020年招新赛中“编织字符串”这一道题吗?  tls在ac完以后想出了一个更有趣的问题,具体是这样的:给定两个长度均为len的字符串s1、s2和一个长度为len2的字符串s,每一次我们按照编织字符串的操作将s1和s2拼接起来(注意这里s2先拼接,具体请看样例),得到长度为len2的字符串s’,然后令s1为s’的前一半,s2为s’的后一半,反复以上操作。若在某一次中s’和s相等则结束循环。  假设有s1=“JNU”,s2=“ACM”,s=“NAMJUC”,第一次操作后

2020-09-28 21:02:54 20

原创 POJ - 1426 Find The Multiple (kuangbin - 简单搜索)

题目描述(已转换成中文)  给定一个正整数n,请编写一个程序来寻找n的一个非零的倍数m,这个m应当在十进制表示时每一位上只包含0或者1。你可以假定n不大于200且m不多于100位。  提示:本题采用Special Judge,你无需输出所有符合条件的m,你只需要输出任一符合条件的m即可。输入格式  输入包含多组数据,每组数据仅一行,只包含一个正整数n (1 <= n <= 200).输出格式  对于输入的每组n,都输出任一符合条件的m。即使有多个符合条件的m,你也只需要输出一个即可。

2020-09-28 20:53:58 16

原创 POJ - 3126 Prime Path (kuangbin - 简单搜索)

题目描述(已转换成中文)  给你两个四位的素数a,b。  a可以改变某一位上的数字变成c,但只有当c也是四位的素数时才能进行这种改变。  请你计算a最少经过多少次上述变换才能变成b。  例如:1033 -> 8179  1033  1733  3733  3739  3779  8779  8179  最少变换了6次。输入格式  第一行输入整数T,表示样例数。 (T <= 100)  每个样例输入两个四位的素数a,b。(没有前导零)输出格式  对于每个样例,输出

2020-09-28 20:40:51 19

原创 POJ - 2251 Dungeon Master (kuangbin - 简单搜索)

题目描述(已转换成中文)  你被困在一个3D地牢中且继续寻找最短路径逃生!地牢由立方体单位构成,立方体单位中有的会充满岩石。向上下前后左右移动一个单位需要一分钟。你不能向对角线的四个方向移动且迷宫四周环绕着许多岩石。 判断你是否可以逃出地牢?如果可以,则需要多少时间?输入格式  输入的第一行包含一个数,表示地牢的数量。每个地牢的描述,其第一行包含三个数L,R和C(均小于等于30)。L表示地牢的层数;R和C分别表示每层地牢的行与列的大小。随后输入地牢的层数L,每层中包含R行,每行中包含C个字符。每个字符

2020-09-28 09:26:50 24

原创 POJ - 3278 Catch That Cow (kuangbin - 简单搜索)

题目描述(已转换成中文)  你被困在一个3D地牢中且继续寻找最短路径逃生!地牢由立方体单位构成,立方体单位中有的会充满岩石。向上下前后左右移动一个单位需要一分钟。你不能向对角线的四个方向移动且迷宫四周环绕着许多岩石。 判断你是否可以逃出地牢?如果可以,则需要多少时间?输入格式  输入的第一行包含一个数,表示地牢的数量。每个地牢的描述,其第一行包含三个数L,R和C(均小于等于30)。L表示地牢的层数;R和C分别表示每层地牢的行与列的大小。随后输入地牢的层数L,每层中包含R行,每行中包含C个字符。每个字符

2020-09-28 09:01:31 18

原创 POJ - 1321 棋盘问题(kuangbin - 简单搜索)

题目描述  在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入格式  输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n * n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n , 当为-1 -1时表示输入结束。  随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示

2020-09-28 03:42:35 49

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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