ACM总结报告
文章平均质量分 58
晨晓翔同学
阿宸想学渗透
展开
-
这几天做的题 (练习1)关于蓝桥杯这件事
怎么说呢,反正就是愈发不知道干什么了,但是4月份还有一个蓝桥杯就做了做蓝桥杯的题,总归别输的太惨吧!!!今晚这一篇博客本就是想发几道题的题解方便回来看看,想想做题思路的,然后再煽情一把hhhh。原创 2022-03-29 01:40:23 · 322 阅读 · 8 评论 -
数位--dp
这几天在看数位dp,总算稍微有一丢丢的看明白了,所以就来浅浅的分享一下吧!!!文章目录概况基本思想模板注意:例题概况数位dp主要是来求一个区间满足条件的个数的比如 :从10到20之间求1的个数。显然有11个,但是在做题的时候范围会很大像是1e18 之类的 ,所以通常的方法就很容易超范围所以数位dp是一个不错的选择。基本思想假设范围是n~m,我们可以通过dp求出1到n的满足条件的个数,在求出1到m满足条件的个数。两者相减就是范围内满足条件的个数。 long long int n,m;原创 2022-03-09 20:29:23 · 425 阅读 · 2 评论 -
最短路径算法——SPFA算法
在家的这几天效率还是蛮低的,总是有其他的事情耽搁,然后最近就在做搜索题,然后做了两个搜索关于最短路径的,点数少的时候之前学的佛洛依德还能派上点用处,可以点数过1000之后就容易超时了,然后看他们的题解,都用到了一个SPFA算法SPFA算法是用来求某个点到别的点的距离的最短/最长路径的算法的整体思路就是使用队列不断地更新点的最短路径知道无法更新为止(感觉和BFS差不多,感觉区别就是进队的数据还是可以继续进队的)不解释了,直接上代码吧(感觉解释不太明白hhh)a[i][j]:邻接矩阵,记录邻接点w[i原创 2022-01-24 01:37:15 · 640 阅读 · 1 评论 -
训练-总结
这周没怎么做题,临近期末了也开始复习了,所以就没怎么做题,这一周还是主要的做的搜索。简单地写一写题解吧。洛谷题解 P1037 [NOIP2002 普及组] 产生数(佛洛依德+高精度)1120 小木棍链接:https://www.luogu.com.cn/problem/P1120题意:寻找一个最短的木头棍子能够把切成这个数组。思路:这个题吧,其实不仅仅是这个题,这个搜索吧,感觉最重要的是找dfs的变量代表的啥意思(真的是太难了,根本想不到)这个题的主要的思路就是从数组里面的最大值开始遍原创 2021-12-05 23:28:27 · 230 阅读 · 0 评论 -
周末-总结
这一周学的好像是比较杂了,因为学什么都感觉收到了其他知识的阻碍。那就说一说这周干了啥事吧。首先看了看那个区域赛的K题解,说什么欧拉遍历,还不知道是怎么回事,看到书上图论部分有欧拉路,索性看了看这部分链接在这儿呢,之后打算继续往下学,勉勉强强看懂了求割点割边的部分。之后再往下看就感觉和搜索,不做几个搜索题,就感觉很吃力的,就又开始学看搜索的相关题,整明白了一个算是知识点的东西。在这儿呢,之后又做了几个搜索相关的题,感觉这周没啥好总结的搜索的题还没了解的很全面,还处在不能够独立完成的阶段。...原创 2021-11-21 23:51:03 · 349 阅读 · 0 评论 -
搜索的回溯
今晚在被几串代码给困住了,就是一个回溯的,但是我就是感觉是一个死循环,然后经过一晚上的不懈划水,最后终于想明白了。先看代码吧!#include <bits/stdc++.h>#include<iostream>#include <iostream>using namespace std;int f[10];int ans=0;void dfs(int x){ for(int i=0;i<2;i++) if(f[i]<=1){原创 2021-11-19 01:12:59 · 517 阅读 · 0 评论 -
欧拉路(P1341 无序字母对)
欧拉路:就是一个连通图能够“一笔画完”欧拉回路:画完之后能够回到起点判断是不是欧拉回路的条件1、首先必须是一个连通图,连通图就是连成图包含每一个点2、(1)无向连通图:每一个点都有偶数条边时,欧拉回路有两个奇数条边的点 ,欧拉路其他的不能构成欧拉路(2)有向连通图:把每一个点入度(指向节点)记为-1,出度(指出节点)记为1,所有点入度出度相加为度,所有节点度为0,则为欧拉回路。如果有两个节点不是0,并且一个是1,一个是-1,则为欧拉路,度为1的为起点,度为-1的为终点。P1341 无序原创 2021-11-15 23:47:32 · 273 阅读 · 0 评论 -
周末总结——(并查集+dp)
这一周学的就比较杂了,刚开始还在做dp的题,后来想还是做点别的,然后又在做并查集的题,到了周末,遇到了一个并查集的题涉及了图论的其他知识,然后又开始看图论的基础知识。然后就是又打了一次div2,发现要不就是看不懂题,要不就是没涉及到算法的,出了3个第四个没翻译出来。等翻译完在出题解。就简单地写几个我认为这周比较有意义的题解吧:P1455 搭配购买链接:https://www.luogu.com.cn/problem/P1455题意:就是给你一定的钱,让你买东西,求你买的东西的价值最大,前提就是原创 2021-11-14 21:33:58 · 445 阅读 · 0 评论 -
训练 总结
这一周呢主要的就是在做洛谷,但今天看了看他们做洛谷的题目数。他们做的真的是好多啊。看看我,真的做题好少啊。而且做的也是贼慢,一个题前前后后就能画上至少2,3个小时。一个题就得一天。部分题的题解也都整理了。https://blog.csdn.net/qq_51769081/article/details/121107626?spm=1001.2014.3001.5501https://blog.csdn.net/qq_51769081/article/details/121180657?spm=10原创 2021-11-07 22:31:32 · 75 阅读 · 3 评论 -
训练周结——(div2+少的可怜的dp)
这一周主要做的事是打了两场div2 还有就是做了几个dp的题先说一说div2 吧打的不是很理想,第一次出了两个,第二次出了三个,也都是些没有算法的简单题。现在有点怀疑,现在的div2都开始前D题都是思维吗?是不是看我们的分实在是太低了。~ _ ~ 其实想通过打这种比赛看看我最近的自学有对于算法有那么一点点提高嘛。但是,还没做到算法,就没有时间了,总归我还是一个小蒟蒻。两场div2的部分题的题解在这儿了都https://blog.csdn.net/qq_51769081/article/details/1原创 2021-10-31 02:50:27 · 136 阅读 · 0 评论 -
周结——(CFdiv 3+ KMP)
这一周做了下学期的第一次CF,做的不是很好,比赛的总结呢在这儿呢!就不说了,再说一说这周主要看的一个算法吧!KMP算法这个算法就是给你两个字符串,让你判断第一个字符串中是否包含第二个字符串。按照常规的方法也能够找,大体思路就是从头开始找,没找到再从第二个开始找,找不到再从第三个开始找~~~~。原本觉得这么算也不是不行,除了比较耗时间以外。但是算法不就是为了简化时间和空间的嘛,况且这个类型的题也做过好多次了所以看见这个算法就马不停蹄的开始涉及了,算法描述:这个算法其实是通过找最长公共前后缀,来实现原创 2021-10-17 21:31:28 · 212 阅读 · 0 评论 -
二叉树——初识
说来也惭愧,就近两周都在看二叉树,虽然学的时间很多,但是对他的了解确实少之又少。或许是跳过了线性表的链式存储,感觉学的时候就比较困难,就来一点一点说吧。二叉树每个结点有两个子结点——左孩子、右孩子。左孩子和右孩子也可以当做结点,也会有他的左孩子右孩子,这样就构成了一个倒立的树。结点的构造struct Node{ int data; //存放数据 Node* lch; //左孩子的地址 Node* rch; //右孩子的地址};树:struct Tree{原创 2021-10-11 00:28:34 · 112 阅读 · 0 评论 -
训练——搜索
这几天做了几个搜索的题,下面整理一下。这几个题目都是感觉没啥变态的地方都比较常规。按照洛谷的搜索板块做的感觉都是比较基础题目一:https://www.luogu.com.cn/problem/P1443题目描述有一个 n×m 的棋盘,在某个点 (x, y)上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。输入格式输入只有一行四个整数,分别为 n, m, x, y。输出格式一个 n×m 的矩阵,代表马到达某个点最少要走几步(左对齐,宽 5 格,不能到达则输出 -1−1)。输入原创 2021-09-30 16:42:42 · 178 阅读 · 0 评论 -
暑假的总结
在暑假刚开始还感觉挺好的,但到了后来就开始不怎么看了。暑假学了并查集,看了书上的数学的那部分,再就是重新学了搜索,之前的算法又重新看了看。总之,暑假实在是太松散了,其实中间有几次就是想重新学,但都是规划大于付出,最后剩下十几二十天,就感觉到学校在学吧,结果最后就成了现在的样子,其实感觉在家玩嗨了之后,到学校感觉比大一的时候要稳的多了,所以尽全力把利用好这一学期吧,争取学期结束给自己一个不一样的自己...原创 2021-09-18 23:36:49 · 66 阅读 · 3 评论 -
七 月 月 结
因为放假七月感觉效率极低,大部分时间还是玩了,在暑假还是控制不住自己玩的心思。七月学了查并集,又复习了一下深度优先搜索。但是学的还不是很深,总之,还是挺浪费的这一个月。对于这个月来说,还是想尽量控制自己,专心的学点东西。这个月的计划是想学习一下数据结构的相关知识点,但是我想把重点放在了前面,也就是在暑假之前所学过的内容中,感觉之前学的好像已经忘记的差不多了,像是二分啊,区间/背包dp啊他们的形式也忘记的差不多了,还是线性dp的例题之类的都忘记了。还是要注重这些基础啊。其实还是蛮感慨的,随着我的哪两个队友的原创 2021-08-02 13:32:12 · 84 阅读 · 0 评论 -
第12周结(二分)
这周做题都是做的二分的题,感觉这一周还是蛮充实的。或许因为二分比dp简单吧,感觉学起来不是特别的费力。就简单说一说二分吧。二分就是起到了简化代码时间复杂度的作用,通过把一个大的区间从中间分开分成两个小的区间,寻找所找的数在哪一个区间再进行,分区间直到找到这个数为止。其实在做题中出现最多的就是循环不了,原因就是l和r可以相等,这就会陷入一个死循环,通常在这个时候,我就会挨个试一试,要不就在循环条件上把等于去掉,要不就在r或者l上加一减一。最后看一看答案是不是相同。通过几次的碰壁也是找到了几个不会“死”的代原创 2021-05-22 18:10:12 · 154 阅读 · 1 评论 -
第11周结(背包)
背包算是dp里面比较简单的一类,因为每个背包的类型都有他固定的模板,所以就比较好做。背包分为好几种背包,我所了解的就只有这4种:1、0/1背包2、完全背包3、分组背包4、二维费用背包0/1背包0/1背包应该算是背包的基础了。关于0/1背包的叙述应该是这样的,给定一个背包可以装M重量的东西,有n个东西,每个东西都有它的重量w,和他的价值c。求能装的最大价值。我们这种题的 dp数组的设置 dp[i][j] i代表物品个数,j代表背包容量,他的值代表价值。这个题看了几个视频感觉画一个表格来做就比原创 2021-05-15 21:13:43 · 111 阅读 · 2 评论 -
第11届山东省程序设计大赛总结
这一次的省赛只能说打的相当拉跨。13题3个能拿铜牌,但是我们只出了一个。分析这次的失败,无非这几点:1、我们见的题型太少了,简单的说就是我们做的题太少了。就拿我们唯一AC的题来说吧。这个题很简单明了,就是求中位数,但是这个题他埋下了陷阱,就是他要保留到小数点后k位,这个k的范围是10的5次方这个题。通过这一阵的学习当然对于这些范围的东西还是有一点敏感的,所以就在想如何做,想了很久也提交了很多次。最终花了两个小时才做出来。2、就是我们的算法的储备还远远不够,这个比赛大部分还是以算法为主,思维的题型比较少,原创 2021-05-09 20:23:18 · 211 阅读 · 0 评论 -
5.1集训总结
五天集训结束了,这五天的集训题目比我们之前做的题感觉不是一个重量级的。直呼太难了,这几天的做题情况就有点惨淡了,要不做对1个,要不做对2个,最多做对3个。这几天明显感觉到了我们和别人的差距,在做题速度上,寻找思路上都还有蛮大的差距。这几天普遍在做题中主线的状况就是代码运行超时。比如说,在5.3的磨刀里的i题让求洗衣机最小容量使得能够把所有的袜子分好。这个题刚开始有思路但是就是时间超了,当然通过这个题我也知道了一个新的算法,它叫并查集。还有就是在5.5磨刀中G题这个题做的时候也是知道怎么做但是做的太复杂了导原创 2021-05-05 21:06:18 · 82 阅读 · 0 评论 -
第八周结
这一周因为军训的缘故没有做太多的题。还是以做区间dp和做训练的题为主。从后往前说吧。周天的这个训练。我们实在是做的不是很好前两个半小时。一个题也没出。有一部分原因是因为题目没看懂,但是绝大部分原因是,那个题代码打出来了但是就是AC不了。周天我是做的Fhttps://vjudge.net/contest/436274#problem/F这个题其实刚开始觉得这个题还是挺好做的,用两个sort就行了但是做的时候总是提交超时当时我也没感觉他提交超时,随着时间一点一点过去我的心态也变得不是很好。最后,干脆不做了原创 2021-05-02 20:39:08 · 91 阅读 · 1 评论 -
第七周结
4月20日今天学了区间dp花了好几天的时间终于把区间dp里面最简单的那个线性的石子合并看明白了。关于期间dp有一个套用的公式memset(dp, 0x3f, sizeof(dp));for (int i = 1; i <= n; i++) //区间长度为1的初始化 dp[i][i] = 0;for (int len = 2; len <= n; len++) //枚举区间长度{ for (int i = 1, j = len; j <= n; i++, j++)原创 2021-04-25 20:49:47 · 840 阅读 · 2 评论 -
第六周结
转眼间就已经学习acm六周了,这一周还是主要以做线性DP和打练习赛为主。首先先来说一说在练习赛的时候,有的题你的时间复杂度太大所以导致时间超时。下面有几个简化时间复杂度的例子:省赛训练2中的D https://vjudge.net/contest/433768#problem/D我们需要求出一个字符数组中的给定字符串的个数。刚开始想得是用一个二重循环在上一个flag来记录这个字符数组中的字符串的个数。代码如下:for(int i=0;i<n;i++) { int q=0;原创 2021-04-18 15:38:23 · 85 阅读 · 0 评论 -
第五周结
这两周主要以动态规划的习题和一些模拟题为主。对于动态规划来说,动态规划比贪心难理解挺多的。贪心是局部最优反应整体最优,而动态规划是局部阶段最优反应整体最优。这个动态规划到现在还没有听的很懂,他的原理感觉也不是很难理解,但是在做题中的时候感觉想不太过来,比如说贪心的话你只要找到思路你就可以从头就能够想到结尾。但是我做动态规划,即使找到正确的阶段,还有不同的状态,我也很难从头想到尾。动态规划主要的解题思路思路首先就是划分阶段,这个阶段相对来说比较好找,当然也有想起来比较麻烦的。比如说DP的第H题:求毛毛虫到原创 2021-04-10 17:45:34 · 118 阅读 · 0 评论 -
第三周结
这一周的练习也是以贪心算法的练习为主,在周四打了一场codeforce的练习赛,对于练习赛来说这次的题目不是很难,和寒假的时候差不太多,但是因为很久没做了,还是有一点生疏。主要出现的问题还是代码的能力比较差,第三题应该使用STL中的string但是忘记怎么用了。还有就是一二题提交的次数过多,虽然最终做出回来了,但是每个题都提交了三四次。所以以后还需要使用多种不同的代码方式来写题,扩展自己的代码储备。再就是对贪心算法的练习,通过这周的贪心算法感觉贪心算法主要适用于这几类的题目。1、求最优装载问题这种单变原创 2021-03-26 22:20:33 · 78 阅读 · 0 评论 -
2021-03-16 周末总结(第二次)
回想一下这一周主要还是以做vjudge上了题为主、为了巩固贪心算法的知识,这是第一次开学后的做题,感觉还是比在寒假的时候难一点,但是这方面的题,体型和套路还是比较固定的,无非就是找到一个突破点根据这个突破点来进行排序和编码,但是在这里的难点就是突破点要找准,这方面还是以后努力的重点。在这周的做题中,总是找的关键点有所偏差导致AC不了;这周做题中我有以下几个问题:1、英语题意看不懂导致一直用翻译器来阅读。这其实一直是我的软肋,英语单词不会,会也翻译练不成句子。2、在寻找解题思路是总是和正确解法有所偏差,原创 2021-03-20 14:24:29 · 97 阅读 · 1 评论 -
2021-03-12第一周总结
acm程序设计第一周总结:在昨天不布置的作业里虽然我现在只做出第一个题来,但我却在这个学到了很多,在这个题中前几次运行的时候总是超时;因为我定义了一个二重循环,但是n是10000以内的数值,从而运行的比较慢,导致超时。运行了8次才ac。这一周学的知识点还是蛮多的,学到STL的几个方便的函数,但是熟练运用起来还是有点难度,所以在写代码的时候要多用一下STL的知识尽快的熟练运用,还有就是学了贪心算法:用局部最优的方法达到全局最优,虽然定义很好理解但要达到熟练运用还是有点困难,所以要加强代码强度。总之,通过这原创 2021-03-12 22:16:57 · 126 阅读 · 3 评论