自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python入门 2024/7/6

元组不可修改但可以修改内部list的内部元素定义元组使用小括号(),逗号隔开各个数据,数据可以是不同的数据类型如果元组只有一个数据,这个数据后面要添加逗号元组也可以用index(),count(),len(元组)a = ('周杰伦',11,["football","music"],);name=a[0];print(a);print(a);无法修改的数据容器。

2024-07-06 17:01:07 304

原创 Python入门 2024/7/6

字面量【元素1,元素2,元素3,元素4,...】;定义变量=【元素1,元素2,元素3,元素4,】;定义空列表变量名称=【】;变量名称=list【】;列表中存储的类型可以是不同的数据类型,支持嵌套print(a);

2024-07-06 12:11:36 950

原创 Python入门 2024/7/3

def 函数名(传入参数):函数体return 返回值。

2024-07-03 17:08:29 1150

原创 Python入门 2024/7/2 While

制表符:\t(效果等同于按下一个tab键)条件满足时,要做的事情;循环输出十次:键盘敲烂,月入过万。注意条件的控制,避免陷入死循环。其中的条件实质上是布尔类型。外层控制行,内层控制列。

2024-07-02 20:52:48 185

原创 Python入门 2024/7/2

在python里面,输入的数据默认为str类型。

2024-07-02 16:04:06 575

原创 Codeforces Round 952 (Div. 4)

题意:给一个数n,2<=x<=n,x+2x+3x+...+kx,其中kx<=n;求总和最大的数对应的x。题意:交换两个数组的第一个字符。这道题数据范围很小,暴力就行。思路:分别求出边界点的,y。题意:求#围城的图的中心。

2024-07-01 21:44:19 228

原创 Python入门 2024/7/1

单引号定义法 ‘ ’双引号定义法 “ ”三引号定义法 “ “ “ ” ” ”转义字符 \ 可以解除引号的作用在字符串内,想要显示双引号,用单引号包双引号在字符串内,想要显示单引号,用双引号包单引号。

2024-07-01 16:50:46 582

原创 AtCoder Beginner Contest 236

题意:交换两个位置的字符串。题意:找出 被拿走的那张牌。

2024-05-16 19:54:47 185

原创 蓝桥杯 204/4/2

【代码】蓝桥杯 204/4/2。

2024-04-02 11:37:19 219 1

原创 啊啊啊啊啊啊真的写不动了!!!

思路:寻找看里面1有没有map,pie,mapie这三个字符串,如果有的话答案就加一。

2024-03-27 20:32:44 116

原创 2024/3/1 贪心

思路:从一个数组里面依次取出最大值和最小值,然后进行运算。

2024-03-01 21:57:19 174

原创 2024/2/29 备战蓝桥杯 6-1 二分

1.程序中不要同时出现l = mid, r = mdi这两条语句。2.如过程序中出现了l = mid,mid的值用 (l + r + 1) / 2计算。3.如果程序中出现了r = mid,mid的值用((l + r) / 2计算。大佬给的方法:两种写法:r = mid ,l = mid+1 此时写(l + r ) / 2 (答案在左边)l = mid , r=mid-1 此时写(l + r + 1) /2 (答案在右边)

2024-02-29 22:42:42 431

原创 2024/2/28 最小生成树 kruskal +cf div3 (929)

2.如果sum%3==2 此时不管是删去一个数还是加上1都能构成3的倍数,所以输出答案1。如果没有任何一个数%3==1,那就要加上两个1或者删去两个数,输出答案2。此时如果有一个数%3==1,那删去这个数就可以了,输出答案1。1.如果sum%3==0 此时是3的倍数,输出答案0。思路:kruskal算法,有优惠就建边。3.如果sum%3==1。思路:每个数的绝对值的和。

2024-02-28 21:35:38 237

原创 2024/2/27 最小生成树 kruskal 1

kruskal算法简单来说就是:n个点,权值由小到大排列,选n-1条边连起来。思路:kruskal算法,注意计算消耗的云朵的个数。思路:最小生成树的模板题,并查集+数组。思路:和上面一道题一样,注意要记得排序。

2024-02-27 21:44:10 299

原创 2024/2/18 图论 最短路入门 floyd 1

注意是无向边,需要建立一个双向边。思路:用floyd算法。

2024-02-18 23:31:08 527

原创 2024/2/18 图论 最短路入门 dijkstra 2

用dijkstra算法,在更新最短距离的时候在加一个存点的步骤,最后输出就可以了。p[i]是i的上一个点。

2024-02-18 17:20:38 699

原创 2024/2/17 图论 最短路入门 dijkstra 1

选2号(因为权值比1到3的小) dist[2]+1<dist[3],所以dist[3]=dist[2]+1。比如这幅图,初始情况下,把所有的dist都设置为inf(也就是无穷大)选1号,更新最近的2,3号点 dist[2]=2,dist[3]=4。选当前离起点最近(权值最小)且没有选过的点,来更新其它点的距离。开一个数组dist,dist[x]表示从起点出发,到x的距离。这两道题只有数据范围的差别,用下面的代码可以一次过。的最短路问题,就是一个顶点到其他顶点的。因为1是起点,自己到自己的距离是0。

2024-02-17 16:55:39 1274

原创 2024/2/13 图的基础知识 3(拓扑排序)

题目要求输出从1~n中的最长路,要从2~n遍历一边,删除其他入度为0的点所以要进两次queue。可以发现,9前面没有连着的数,即入度为0,由于数据很大,所以不能直接暴力存图,存下标就可以了。中间编译错误了好几次,编译错误的原因:数组越界或者参数传递出错。以{4,8,6,3,12,9}为例。,开两个二维数组,一个数组用来。

2024-02-13 20:38:32 237

原创 2024/2/12 图的基础知识 2

用二维vector存图,数组in和数组out分别存节点的入度数和出度数,再开一个f数组存路径,如果搜到了入度为0的(即食物链低端),就进入队列,每次搜索的时候节点的路径叠加,并且清空这个点的出度的边,再循环。bfs是宽搜,建立一个int类型的队列,把没有搜到过的点全部入队并标记,由于循环是在队列里面进行的,所以函数不需要传参进去,最开始1文献入队就行了。食物链,只有捕食和被捕食的关系,不存在平级的关系,所以想到了拓扑排序。dfs是深搜,搜到了没有遍历过的点就继续进入dfs,类似于递归。

2024-02-12 23:33:41 1082

原创 Codeforces Round 923 (Div. 3)

思路:第一个B的下标减去最后一个B的下标+1。

2024-02-08 23:06:40 332 1

原创 2024/2/7 图的基础知识 1

思路:mp[n][n]用来存邻接矩阵,二维vector用来存每个点连的点。

2024-02-07 23:00:01 1050 1

原创 2024/2/4 备战蓝桥杯 5-1 前缀和

第一个情况是取数组前面两个数,第二个情况是取数组末尾的一个元素,如果循环k次一一比较的话,那么{1,1,1,1,1,1,3},若k=3,最小值就是6,这个是贪心的思想,可是最小值应该是5(3+1+1)。如果第一个情况做 p 次的话,第二个情况就做 k-p 次。这道题用暴力会超时,先用一个数组记录二维前缀和,再来遍历。(x1,y1),(x2,y2)中的所有数之和为。思路:先对公式进行合并同类相,然后用前缀和。

2024-02-04 20:47:00 739

原创 2024/2/3 备战蓝桥杯 4-2 排序

特点:不知道每一行要输入的数字有多少个,一共要输入n行数字。思路:结构体排序,满足返回true,不满足返回false。

2024-02-03 22:18:30 581

原创 2024/2/3 牛客寒假算法基础集训营1

思路:如果鸡有的钱(m)加上满减的钱(b)大于或等于满减所需要求的钱(a)即m+b>=a。如果一直不满足这个条件的话,那么鸡排的最大值为鸡现有的钱,即m。题目要求:这道题要求计算鸡排最贵为多少。思路:计算阴阳部分的面积,如图。那么鸡排的钱就变为m+b。

2024-02-03 16:25:30 206

原创 2024/2/2 备战蓝桥杯 4-1 排序

思路:用map存每个数和每个数出现的次数,用set进行数组去重,最后使用迭代器遍历set容器,输出结果就可以了。

2024-02-02 17:29:27 349

原创 2024/2/1 备战蓝桥杯 3-3 二叉树

ceil(log(i+1)/log(2)):这个公式用于计算二叉树的深度。思路:用一个数组存每一层二叉树的权值,再比较哪一层的权值最大。这道题是输出后续遍历,后序是左右根,所以根在最后输出。先序的顺序是根左右,所以得到根之后要先输出,在递归。思路:和前面一题类似,用递归。先序遍历:根,左,右。中序遍历:左,根,右。后续遍历:左,右,根。其他在代码的注释里面。

2024-02-01 23:21:17 935

原创 2024/1/31 备战蓝桥杯 3-2 栈

卡特兰数(Catalan numbers)是一系列的整数,它们以比利时的数学家欧仁·查理·卡特兰命名。凸多边形划分:对于给定的n个点组成的凸多边形,计算可以将它划分成n+2个三角形的方法数。s.empty() :判断栈中是否为空(栈不空:while(!s.empty()) )栈排序问题:对于给定的1到n的整数,通过栈的进出操作生成所有可能的出栈序列的方法数。括号匹配问题:对于给定数量的左右括号,计算可以生成的正确的括号组合数。s.size() :返回栈中元素的数量。s.push(x) :把x放入栈中。

2024-01-31 23:19:45 556

原创 2024/1/30 备战蓝桥杯 3-1 栈

s.empty() :判断栈中是否为空(栈不空:while(!s.empty()) )std::stack<type> s :定义一个type类型的栈。遇到左括号就进栈,遇到右括号并且栈不空的时候,栈顶元素出栈。注意:题目中数据输入比较大,可以用字符串来存需要输入的数。s.top() :取出栈顶元素,但不删除。s.size() :返回栈中元素的数量。s.push(x) :把x放入栈中。思路:模拟+stl的stack。s.pop() :删除栈顶元素。思路:模拟+stl的stack。思路:模拟+stl的栈。

2024-01-30 22:56:24 1186

原创 2024/1/29 备战蓝桥杯 2(队列+数组)

记录字典中是否有这个英文单词可以再开一个bool数组标记一下,如果单词存在,vis[a[i]]=true;q.empty():判断队列是否为空(队列不空:while(!q.empty()) )此时英文单词进队列,队列中弹出队首元素,查询量+1。此时英文单词直接进队列,内存容量减一,查询量+1。q.size() :返回队列的元素个数。q.push(x) :把x放入队列中。q.front():取出队头元素。思路:模拟+stl的queue。q.pop() :弹出队头元素。思路:模拟+stl的队列。

2024-01-29 19:44:29 553

原创 2024/1/28 备战蓝桥杯 1-3

注意:仔细读题,题目中说到了ans%11==10的时候,最后一位就要改为大写的X。注意判断什么时候计数的长度应该+1,什么时候应该更新要输出的最大值。注意:输入的数字有可能很大,要用字符串来存。t它的输出应该是L_1 L_2 L_3。注意:写函数的时候不要触发关键字了。可以试试特例:l1 l2 l3。好抽象,懂了但好像没完全懂。

2024-01-28 23:05:46 887

原创 2024/1/27 备战蓝桥杯 1-2

(1)如果要给金币的天数-要给这么多金币的天数>=0(即k-num>=0) 那么总数要加上要给的金币数量的平方(即num*num)(2)如果要给的金币的天数小于要给这么多金币的天数(即k-num

2024-01-27 23:52:01 584

原创 2024/1/27 备战蓝桥杯 1-1

注意数据范围,除了考虑日期不合法外面,还要考虑月份不合法。,实现大写字母转化为小写字母。思路:输入带空格的字符串,

2024-01-27 16:46:55 720 1

原创 2024/1/24 图的基本应用

思路:这道题就是先建图,然后dfs深搜输出,bfs宽搜输出就行了。思路:这道题反向建图,然后依次遍历,输出答案就可以了。

2024-01-24 18:19:23 620

原创 2024/1/23 cf805div3 c +集合

思路:假如我们是有一个数组是xxxy,我们可以任意到达一个x,再到达y,但是想想发现,到达了第一个x哪怕不需要第二次回到x也是能去y的;又假设存在xyyyyyy,我们可以反复到达y,但是为了我们只需要考虑最远的一个y就好了,因为我们不知道其它的y之间有没有穿插x。思路:这道题就是找城市和州一一对应的个数,但是也有可能是一对多,就是一个州可能有多个城市,所以,用两个map,一个用来记录输入的数的位置,另一个用来记录相同的数的最远的下标。所以用map<string,int>mp来实现。

2024-01-23 17:02:55 387

原创 2024/1/22 集合+cf805div3 ab题

思路:这道题用map,存一下每个球数所在的位置,然后输出就行了。

2024-01-22 16:55:37 395 1

原创 2024/1/21 集合(set,迭代器,map)

1 :如果迭代器返回的是第一个位置(auto it==s.begin()) 那说明仓库里面全部是比这个木头大的木头,此时输出第一个位置的元素(不用++)并且清空这个数。2:如果迭代器返回的是最后一个位置(auro it==s.end())那说明仓库里面全部是比这个木头小的木头,此时输出最后一个位置的元素(需要--)并且清空这个数。3:如果迭代器返回的位置在中间,那么需要比较短木头和长木头与输入的木头的差,谁更小就输出这个木头的长度并且清空这个数。思路:使用迭代器auto,查找>=x的第一个元素的下标。

2024-01-21 18:16:59 420 1

原创 2024/1/20 并查集

如果他们祖宗节点不一样才要减一,意味着这两个村庄连接需要修一条路,一样的话就表示可以联通,答案就不用相减了。思路:这道题用并查集,两个村庄之间每修一条路,需要修的路的条数就减少一条,最后输出还需要修的道路条数。最后判断输入的两个数据是否返回同一个祖宗节点,如果是,则输出YES;如果是亲戚,就合并他们(make(int x,int y))思路:这道题用并查集,首先输入数据,进行初始化。常识:有n个村庄,那么需要修的道路条数为n-1。ans--不应该在外面,要在if里面。

2024-01-20 17:38:13 398

原创 2024/1/19 DFS BFS

思路:这道题用bfs,因为只需要填涂以1围成的圈里面的部分,所以先搜索边界,如果是0,就改成3。思路:用bfs搜索八个方向,遇到水池就进入一次bfs,把遇到的水池全部变成平地,再进行搜索。边界搜索完了打印输出,把1和3都当作1来输出,0当作2来输出,这样就可以了。注意:在取出队头的时候一定要弹出!不然会一直在while里面循环。思路:用bfs,四个方向进行搜索,遇到0步数就+1,然后存进队列里面。这道题和洛谷上面有一道题很相似,只是数据范围变大了。这道题之前写过,今天写的时候又卡了很久。

2024-01-19 17:17:49 364

原创 2023,我和ACM

和ACM的一些碎碎念。

2024-01-19 10:41:05 1603 8

原创 2024/1/18 DFS BFS

所以只需要进一次bfs,用一个二维数组记录到达每个点的步数(因为要走下一个点必然会经过当前这个点)思路,还是用的bfs,建立一个结构体类型的队列,一个存当前的电梯层数,一个存当前走的步数。思路:用bfs,八个坐标,依次遍历 ,没有搜索到的点就输出-1。还要建一个bool类型的数组标记当前电梯层数是否走过。思路:这道题用dfs,枚举选和不选两种状态,取最小值。因为每次都要进一次bfs,所以时间复杂度就提高了。

2024-01-18 20:07:04 699

空空如也

空空如也

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

TA关注的人

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