- 博客(23)
- 收藏
- 关注
原创 2020蓝桥杯G题 砝码称重(如何更好地理解dp 附一道洛谷题
2020蓝桥杯G题 砝码称重【问题描述】你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1, W2, · · · , WN。请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边。【输入格式】输入的第一行包含一个整数 N。第二行包含 N 个整数:W1, W2, W3, · · · , WN。【输出格式】输出一个整数代表答案。【样例输入】31 4 6【样例输出】10【样例说明】能称出的 10 种重量是:1、2、3、4、5、6、7、9、10、11。1 = 1;
2021-05-28 16:09:36
6032
6
原创 复习python一些知识点(sep,string,split,eval,replace,format
做题遇到了一些不熟悉的,记录一下end 与 sep 的区别很简单,sep设置字符串之间的分隔符,end设置的是行末的符号比如:print('i love python',end=',')print('\n——————————')print('i','love','python',sep=',')输出就是这样的i love python,——————————i,love,pythonstrip()函数的用法它是用来删除一些字符的默认用法:去除空格str.strip() :
2020-12-25 18:37:54
1707
2
原创 前缀和 蒜头君班级排队打水
题目是这样的:Sample Input51 3 5 4 221 32 5Sample Output51这道题如果不考虑时间的话很容易解,但最后会超时。所以这道题的关键就在于如何用一层循环解决。解决思路如下:首先这道题在草稿纸上演算,拿输入样例来说,如果要知道某个区间打水的人花费的时间总和,可以先不看特定区间,先算出每个人打水需要的时间,我们把每个人打水需要的时间存到一个新的数组里,命名为b[n]也就是a[n] 1 3 5 4 2b[n] 1 4 9 13 1
2020-12-18 18:28:19
292
原创 2020-11-7 — 2020-11-13 python的函数学习
这周学了一些python的知识点,关于函数的。一、关于def和参数的传入a. 参数的传递与相对位置无关,而与传递对象有关举个栗子:def test(a,b): print(a+' '+b)test('1','2')test(b = '1',a = '2') #参数的传递与相对位置无关,而与传递对象有关运行结果出来分别是:1 22 1b.默认参数可以被直接使用,但默认参数要被放置于所有参数的后列如下列代码,可知传入参数会覆盖默认参数def add(a,b,c=3):
2020-12-12 14:25:10
177
1
原创 11.30 — 12.6 关于01背包问题的初步理解
首先我有n个物品,每个物品的体积为w,价值为v,我的背包容量为bagw,问该如何装才能让背包容量最大?动态规划的思想就是把大问题拆分成小问题,通过寻找大问题与小问题的递推关系,解决一个个小问题(最优解),最终达到解决原问题的目的。但动态规划强的在于,具有记忆性,其实也没那么高深莫测,说白了就是填表,只要根据题意找出状态转移方程,填表就完事。 通过填写表把解决过的子问题答案记录下来,新问题中遇到子问题直接提取,避免了重复计算,节约时间。之所以叫01背包问题,就是说当我面对第i件物品时,我可以选择装(1)o
2020-12-05 21:56:48
126
原创 11.30 — 12.6 欧拉回路
题目:欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结束。Output每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。Sample Input3 31 21
2020-12-05 20:57:27
198
转载 11.30 — 12.6 C语言文件的相关操作整理
C语言文件相关操作整理一、打开关闭文件1.打开文件2.关闭文件二、读文件1.读取一个字符2.读取字符串3.读取指定内存大小三、写文件1.写一个字符2.写入字符串3.写入指定内存大小四、其他常用函数1.文件指针位置重定位2.获取指针当前位置3.将缓冲区内容写入文件4.fprintf() 和 fscanf()五、删除和重命名文件1. 重命名文件2.删除文件一、打开关闭文件1.打开文件FILE * fopen ( const char * filename, const char * mode );成
2020-12-02 22:32:47
131
原创 11.23 — 11.29 最短路径算法理解(Dijkstra算法和Floyd算法)
Dijkstra(迪杰斯特拉)算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止,类似于BFS,prim算法。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。 是很经典的最短路径算法。搬运一个算法描述:(1)S为已经找到的从v出发的最短路径的终点集合,它的初始状态为空集,那么从v出发到图中其余各顶点(终点)vi(vi∈V-S)可能达到的最短路径长度的初值为: d[i] = arcs[LocateVex(G, v)][i],vi∈V(2)选择v
2020-11-29 19:27:18
326
原创 11.23—11.29 最小生成树(Prim算法和Kruskal算法)
最小生成树最小生成树(minimum spanning tree)是由n个顶点,n-1条边,将一个连通图连接起来,且使权值最小的结构(代价最小)。比如给N个村庄架设通信网络,该如何将这几个村庄都连接起来,成本还最小的问题。最小生成树的三个性质:最小生成树是树,因此其边数等于顶点数减1,且树内一定不会有环。对于给定的图G,其最小生成树可以不唯一,但其边权之和一定是唯一的由于最小生成树是在无向图上生成的,因此其根结点可以实这棵树上的任意一个结点。无论是Prim算法还是Kruskal算法,都肯定
2020-11-29 18:16:05
289
原创 11.23—11.29 并查集以及set容器学习总结
文章目录并查集并查集并查集主要解决,对于给定某一集合问题,需要对其进行大量的查询操作,比如说要查找一个点的祖先结点,或者查找两个点是否属于同一个集合,或者是查找连通分量的个数。并查集由一个整数型的数组和两个函数构成。数组pre[] 记录了每个点的上级是谁函数find是查找,join是合并。...
2020-11-26 10:21:21
186
原创 L2-024 部落 (并查集与set容器的应用)
题目: 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。输入样例:43 10 1 22 3 44 1 5 7 83 9 6 4210 53 7输出样例:10 2YN题目分析:应用并查集。因为题目要求输出社区总人数以及有几个部落(也就是有几个根节点),可以应用set容器解。关于并查集和set集合的知识点理解 :
2020-11-24 23:28:24
258
原创 2020-11-16 — 2020-11-22 周总结
文章目录1,二维数组输入字符串1,二维数组输入字符串做油田问题的时候看别的大佬对于例如这样一个字符串方阵我一般都是写两个for来输入但其实可以直接这样输入: for(int i = 0;i<m;i++){ scanf("%s",a[i]); }之后照样可以写两个for遍历 for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(a[i][j] == '@'){ dfs(i,j); ans
2020-11-22 18:24:38
98
原创 Catch That Cow (入门bfs搜索题 C语言)
题意:农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:1、从X移动到X-1或X+1,每次移动花费一分钟2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?Input两个整数,N和KOutput一个整数,农夫抓到牛所要花费的最小分钟数Sample Input5 17Sample
2020-11-20 22:55:48
498
1
原创 数据结构——线索二叉树、树和森林的自习作业
数据结构让交自学笔记,我就写在博客里吧 1)什么是线索二叉树以及线索的作用1)什么是线索二叉树以及线索的作用指向前驱和后继的指针称为线索,相应的二叉树就称为线索二叉树。线索的作用:因为空地址存放指向结点在某种遍历次序下的前驱和后继结点的地址,所以可以找到一个结点的前驱后继,无需再遍历一次。...
2020-11-17 22:48:45
280
原创 经典搜索题 油田dfs
题目描述:GeoSurvComp地质探测公司负责探测地下油田。每次GeoSurvComp公司都是在一块长方形的土地上来探测油田。在探测时,他们把这块土地用网格分成若干个小块,然后逐个分析每块土地,用探测设备探测地下是否有油田。土地底下有油田则成为pocket,如果两个pocket相邻,则认为是同一块油田,油田可能覆盖多个pocket。试计算长方形的土地上有多少个不同的油田。输入描述:输入文件中包含多个测试数据,每个测试数据描述了一个网格。每个网格数据的第1行为两个整数:m、n,分别表示网格的行和列;如
2020-11-16 17:18:00
326
原创 一个总结
这周的周总结基本没有什么知识点总…想写一些这么多周的做题总结这周笼统的过了一遍数据结构的书,目前还没有熟悉的点有:图的基本知识,图的应用(包括最小生成树,拓扑排序,关键路径最短路径),哈夫曼树的代码实现。 好像也就这些,列在这篇博客里以后查补。关于这次做题我觉得我还是敲的太少,更多的应该是自己实现的不够。跟着题解的思路敲了一遍自己再敲一遍也就尘封了,做题的时候也感觉脑子忒轴。感觉还是基础再打牢一些,思路和如何写出如何实现代码之间有个脱节。 比如我很清楚约瑟夫环是个怎么原理也知道应用%或去标记是否出.
2020-11-15 22:59:35
89
原创 总结一下dfs(bfs我再悟一下
先上几道题1、八皇后问题题目链接 八皇后主要考虑如何标记已放入的queen位置本来是打算用多个一维数组(然后想懵了),后来打算用二维数组,按列存标记的位置,然后行指的是(行,列,对角线…然后问题又出在如何表示对角线上…还是去看了看题解 ,源代码贴上:#include<stdio.h>int ans[50];int n;int sum=0; int book[3][50]={0};//int a[50][50]; 这里我发现完全不用开这个矩阵,也就是所谓的不用存int s
2020-11-09 23:42:05
130
原创 洛谷 P2089烤鸡(蒟蒻C语言
做的第一道深搜题,放上来纪念一下题目背景猪猪 Hanke 得到了一只鸡。题目描述猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 10 种配料(芥末、孜然等),每种配料可以放 1 到 3 克,任意烤鸡的美味程度为所有配料质量之和。现在, Hanke 想要知道,如果给你一个美味程度 n ,请输出这 10 种配料的所有搭配方案。输入格式一个正整数 n,表示美味程度。输出格式第一行,方案总数。第二行至结束,10 个数,表示每种配料所.
2020-11-06 22:12:17
1176
1
原创 快排、约瑟夫环,哈希表
文章目录一、C结构体定义的一个错误二、复习快排三、约瑟夫环一、C结构体定义的一个错误expected primary-expression before ‘[’ token刚刚的一个结构体定义时候出现的错误比如刚刚写的代码是酱婶儿的typedef struct student{char name[];int score;}stu[1010];for(i=1;i<=n;i++){scanf("%d",&stu[i].score);//这个地方报错}是指缺少申明,
2020-11-03 23:16:26
320
1
原创 树的基本知识总结和上周做的题思路整理
文章目录一、树的一些基本知识1.基本知识2.二叉树a.基本知识b.特殊二叉树c.二叉树的性质d.二叉树的遍历二、练习题整理1.智力题 crossing river2.剪花布条(kmp一、树的一些基本知识1.基本知识a)理解:线性结构是一对一的关系,而树是一对多的关系,具有n(n>=0)个结点。b)结点的分类:根节点:无前驱的结点,A叶子结点:或叫终端结点,度为0(有双亲无孩子GHIJF都是内部结点:有前驱有后继的结点,BCDE一个填空题,已知结点数,结点数-1就是分枝儿个数;同样.
2020-10-27 22:14:26
417
原创 来烤馍片咯(误
文章目录KMP算法学习总结一、为啥要烤馍片二、求函数1.求next数组a)手动求的方法(适合模式串较短且在选择题中应用)b)写成伪代码c)nextval数组(欠佳2.烤馍片三、烤好了总结KMP算法学习总结一、为啥要烤馍片幼稚(朴素)字符串匹配法的时间复杂度为O(n²),并且指示主串的指针要来回回溯,看起来非常的不聪明。此时采用KMP算法,应用next数组,使得指示主串的指针不进行回溯且将时间复杂度降为O(m+n) (写的有点粗略二、求函数1.求next数组a)手动求的方法(适合模式串较短且在选
2020-10-19 21:30:01
166
原创 2020-10-08 — 2020-10-11 学习总结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、对角线求结点1.分析2. 源代码二、质数筛1.暴力法的优化2前言洛谷入门题目知识点整理和一些基础知识点一、对角线求结点题目:对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。对于 50%的数据,保证3≤n≤100.对于100%的数据,保证3≤n≤10e5.1.分析从对角线和结点的关系入手,可分析出结点一定为两条对角线相交所得,不存在三条或多条对角线相交得一个结点的情
2020-10-11 19:06:20
170
1
原创 国庆期间学习总结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、数据结构实验:简易表达式求值1.思路分析2.如何实现二、重复了好多次冒泡排序三、计算日期差几天(py四、F12总结前言这一周儿一、数据结构实验:简易表达式求值用到栈的知识(C语言1.思路分析分析需要的函数:初始化栈;入栈;获取栈顶元素的值;判断是否为运算符;优先级比较;运算;出栈;代码如下(示例):void InitStack(Sqstack &s);//初始化栈 void Push(Sqstac
2020-10-08 15:04:00
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人