课程总结
文章平均质量分 67
钟钟终
知耻而后勇,脚踏实地
展开
-
博客总结12
可以简洁地声明为typedef unsigned long long ull。如果ull类型的整数溢出了,就相当于取模2^64了。因为ull的范围是[0 ,2^64-1]。long long 的范围是[-2^63, 2^63-1],因为有符号的第63位表示“正负”而不表示数值substr用法:s[i].substr(k,tmp) 在string类型中从k开始截取长度为tmp的字符串strstr用法:strstr(s1,s2) 判断s2是否为s1的子字符串,是则返回True#include <b原创 2021-11-28 17:24:48 · 251 阅读 · 0 评论 -
博客总结11周
H----来点gcd1.数组中出现过的元素肯定能满足条件。2.从1到n进行遍历,对于每个元素,查找他的倍数是否出现在数组中,将出现的不断取gcd,知道gcd的值为他本身,则满足条件。#include <bits/stdc++.h>using namespace std;const int maxn=1e6+5;int n,m,a[maxn],vis[maxn];int main(){ freopen("in.txt","r",stdin); int t;cin原创 2021-11-21 16:46:46 · 230 阅读 · 0 评论 -
博客总结第十周+牛客月赛
P1873 [COCI 2011/2012 #5] EKO / 砍树#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e6+5;int a[maxn];int n,m;int main(){ cin>>n>>m; int l=0,r=0,mid; for(int i=1;i<=n;i++){ ci原创 2021-11-11 19:04:12 · 518 阅读 · 0 评论 -
总结第九周
深搜关于地图问题:1.注意边界。(注意使用memset的时候要考虑清楚,可能把不需要的部分也进行初始化,影响搜索)。2.不同题目的区别点在于搜索中if语句的不同,根据题意进行编写,也不是很复杂。3.终止条件:满足便进行return返回,可能是求方案数,也可能是到达最少需要步数一类问题。(进行回溯,将走过的点在标记为初始化状态,方便下一层循环)模板题:P1605 迷宫#include <bits/stdc++.h>using namespace std;int n,m,t,sx,sy原创 2021-11-07 15:27:37 · 208 阅读 · 0 评论 -
刷题---搜索(第八周)
P2895 [USACO08FEB]Meteor Shower S题意:就是需要移动多步才不会被流星砸到,也就是移动到安全的地方。(可用数组将不同时刻流星砸到的地方标记为便可解决)也不是很难,要注意的细节很多。1.可能会出现一种情况。300*300的格子中全都被流行砸到。那我们需要移动到之外的格子中,所以数组要开大一点。2.如果3时刻和5时刻都被流星覆盖,则我们需要将单元格标记为小的时刻。3.好多细节。明明不是很难,让我做了好久……#include <bits/stdc++.h>原创 2021-10-31 16:02:37 · 187 阅读 · 0 评论 -
一周小结.....
书上内容已经大概了解,之后一边刷题一边再看看就好。(树、图论两个板块等这学期学完理论知识应该会了解的差不多,先不急)由于所学的内容各有侧重点,队友的背包已经弄得很棒了,我就先不去弄dp,而贪心的算法相对容易一点,因此开始重点刷洛谷dfs和bfs。dfs 模板题:#include <bits/stdc++.h>using namespace std;int mp[5][5];int dir[4][2]={1,0,-1,0,0,1,0,-1};struct node{ i原创 2021-10-24 16:10:37 · 110 阅读 · 0 评论 -
博客总结(六)
还是先反思一下最近的学习状态。真的懈怠了很多,我总是想去完成制定的计划,但执行起来往往总是力不从心,心思没办法集中。开始以为要做的事情太多,不知道从哪里下手引发的迷茫,之后便越来越懒惰,每天背单词、学ACM的时间都没法保证,真的让我十分担忧。不能总这样下去,我还有目标没有实现,不单单是ACM,无论哪件事都需要自己全力以赴二点去做,不要去小看别人付出的执着和努力。我能做的只是更加执着,更加努力。最后,劝勉自己一段话:勤奋到疯狂,孤独到兴奋,好胜到桀骜。本周学习内容:1.鸽巢定理、扩展欧拉定理2.杨辉原创 2021-10-17 18:39:05 · 124 阅读 · 0 评论 -
大二博客总结第五周
1.进制转换问题2.数论板块模运算快速幂GCD和LCM扩展欧几里得算法与二元一次方程的整数解同余和逆元素数3.洛谷题解(贪心,DP,搜索)进制转换问题P1143 进制转换先有n进制数转化为十进制,再由十进制转化为m进制1.字符转化为数字2.数字转化为字符3.本体最大的一个坑。转化为m进制的输出格式是有顺序的!!先转化的在后面int change(char ch){ return int(ch-'0'); //字符转化为数字}char ch1(in原创 2021-10-09 17:41:01 · 270 阅读 · 0 评论 -
大二博客总结第四周
本周学习内容:1.了解掌握了二叉树的存储,创建和遍历2.学会了二叉搜索树(BST),做完了课后习题3.看懂、学习了简单平衡二叉搜索树——Treap树4.高精度计算BST1.每个元素的键值可以比较大小,将键值存放在BST的结点上2.键值最大的结点没有右儿子,键值最小的结点没有左儿子3.最坏的情况下,树的深度为n;最好的情况下,得到的左右子树完全平衡,深度为log2(n).BST的关键在于运用算法努力使它保持平衡eg:HDU 3999 “The order of a Tree”#incl原创 2021-10-03 15:00:17 · 135 阅读 · 0 评论 -
大二博客总结(第三周)
本周的学习内容:1.学习了并查集,二叉树,做了配套的题目巩固2.剩余时间在刷洛古的题目。每类题单都有刷几道(还没根据模块具体刷)3.利用题目复习线性DP,贪心并查集模板题:n个人,m组朋友关系,能形成几个团体。并查集的操作可分为:1.初始化(也就是把每个点设置为独立的集,每个对象都是不想交的集合)void init(int n) //初始化{ for(int i=1;i<=n;i++) a[i]=i;}2.合并(由于某种属性连接在一原创 2021-09-25 19:00:33 · 195 阅读 · 1 评论 -
ACM能力分析
暑假做的事情1.暑假四十多天将小黑书看了一遍,知识点大概了解。还没到翻烂的程度2.配套题目每章节选了几道题进行巩固。3.之前选修ACM课程学了很多,所以将:第三章STL和基本数据结构 过了一遍第六章 贪心算法 过了一遍,学习了 分治法和减治法第七章 动态规划 为了复习 过了一遍重点学习了第四章 搜索技术,书中BFS题目全做过,DFS题目选做了几题第五章 高级数据结构 学了并查集和二叉树,题目做过几道今后打算:1.将书中第九章字符串、第十章图论、第十一章计算几何学完2.将之前书中偷懒原创 2021-09-19 10:50:13 · 156 阅读 · 0 评论 -
学习阶段小结 8.1
我们小队分配了每个人中需要学习的内容,主要是复习之前学的DP、贪心和二分等内容,我被叫去尝试性的学习下图论,队友主要学习计算几何。之前一阶段的学习主要是看《算法竞赛》这本书,刚开始是利用代码去巩固所学的内容,然后去做一些书本上入门的题目。但之后感觉学的有点慢,好几天才写完BFS上的题目,然后就光看书本,导致现在对于ACM竞赛所涉及的知识点都有所了解,粗浅的把所有内容都看了下(现在并未看完,但看了很多),但只掌握了一点点。之前一直就想学图论,虽然知道并不简单,但了解下来,确实好难,涉及的内容非常多,目前可原创 2021-08-02 11:06:04 · 134 阅读 · 0 评论 -
课程总结第十二周-------二分小结
1.临近期末,要加快预习、复习和刷题。时间不太够,零碎的时间对于这些题目用处不大,总是断断续续的,所以特地把做题、总结的时间都集中在周六周日。2.做下来,发现除了二分的题目,还有很多题目涉及到单调队列、单调栈、还有些树的知识,都很想花个时间去学。3.对于题解。我其实非常喜欢在电脑前因为一段不明白的代码或者没想通的知识点坐上好几个小时,一直去想,然后想通的那种感觉。但是现在时间很宝贵,要做的事情太多。其实内心真的不太愿意去看题解,虽然最后的结果都是弄懂题目,但收获的快乐和对算法的掌握程度是不一样的。G原创 2021-05-23 17:54:51 · 167 阅读 · 1 评论 -
课程总结第十一周 (背包)
先学完经典DP后,再学背包,感觉学起来轻松了很多。看了很多背包的博客,已经讲的的特别清楚。感觉我就没太大必要再去写原理、做分类,简要的总结下背包的分类模板,重点是做题的收获和学到的技巧。01背包收获:(几类特殊的01背包)1 求背包价值最大问题: n个物品每个都有它的价值和容量,要求在一个固定的容量内,所得物品的价值最大。两种代码实现:1.dp [i][j]表示前i个物品装入容量为j的背包所得的最大价值。问题点在于第i件物品装与不装所得到最大值的比较。dp[i][j]=max(dp[i-1][j原创 2021-05-17 00:22:24 · 320 阅读 · 4 评论 -
省赛总结 2021.5.9
其实也不太想多说什么,失败的原因心里也都清楚。虽然不能仅由一次比赛结果就去否定努力的过程,但还是要去审视自己。有多少的努力是有实效的,怕是不多。表现得认真是否源于内心,估计只是流于表面。还是想说,acm对于我的出发点并非热爱。但只要我想做的事,就会认真去做,得不到想要的就不会松手,放弃不是我的风格。比赛过程:1.按照既定的策略看是看题,我前几分钟就找到了本场比赛的签到题,看完题便给出了大概思路。说明了问题点,k的值很大,double不行,要转用字符串。(这里真的是坑队友,转用字符串这个思路方向就原创 2021-05-10 12:20:21 · 296 阅读 · 0 评论 -
博弈博弈
1.只要当前状态可以转移到的状态中有一个是必败点,那么该点是必胜点。2.反之,如果当前状态能转移到的所有状态都为胜态,那么该状态为败态。1.一组数,较大的数减去较小的数倍数,利用规则谁先减到0谁赢。#include <iostream>using namespace std;int main(){ int m,n; while(cin>>m>>n&&m&&n) { int flag=1;原创 2021-05-06 20:21:27 · 315 阅读 · 0 评论 -
训练总结
总结下昨晚div3:过了三题,出了点意外,第四题想了下,没来得及敲。重点是:第二题看到题目,就不自觉得想到训练赛中的一道细节模拟题,年月日中出现‘202’’的那题,我学会了一种很巧妙的暴力方法,想去用一下,顺便巩固,虽然知道这题只要构造数字就好。看了下时限是2秒,觉得没问题。但结果就是超时,之后的思路,就是在这个基础上不断缩小暴力的范围。最后还是妥协,摒弃了这个方法,重新去做,好在半小时过了2题,但由于浪费了一个小时,没时间写D题了,这都是后话。教训:还是要根据语境冷静的分析题目,经验只是辅助,切忌盲原创 2021-05-06 12:59:35 · 547 阅读 · 5 评论 -
5.1训练总结
A题: 水题wr了三次。自己的问题。心态原因:看到了简单题目,非常激动,开始着急焦躁,致使没有充分明白题意。错误原因:蓝方的血量是红方减的;红方的血量是蓝方减的。蓝方先手,减的是红方血量。因此除了统计红方和蓝方的总血量,要注意蓝方先手,红方先被扣血。当蓝方血量大于等于红方血量,都是蓝方赢,否则相反。教训:冷静,冷静,冷静 !!!B题: 配合很好的一道题,第一个过的。哈哈哈,我们也是很棒,即使结果不太好。思路:从正方体的性质入手,先排除线段用坐标表示相乘等于0的思路,然后排除线段中点的思路,最后确原创 2021-05-01 23:30:27 · 1521 阅读 · 3 评论 -
课程总结----第八周(先发后补喽)
4.27 训练收获:**C题:**想到肯定和最大最小值有关,因为团队除了问题,谁都不想去认真做题。慢慢调整。思路一:对最高的进行修建,最低的不必修建,直到所有花等高。举一组样例,规律其实很好找,不必逆向思维。思路二:将花修减到等高,必定要对最高的进行处理。逆向思维,也就是将每朵花加1,和最高的相等,如果这个和sum小于最大数,则成立。(最大数-sum)表示最后修减的高度。D题:主要是取模的问题。2的64次方无法表示,已经越界了,结果显示为0。其他的都已经想明白了。看完题解,发现把问题想简单了。E题原创 2021-04-30 23:01:31 · 200 阅读 · 1 评论 -
经典DP总结-----1
DP学的很乱,对于DP的概念理解应该不会有偏差,并且对于DP的解题步骤也总结了一套方法,但是自己拿到一个DP题目却仍然无法不借助题解把它独立做出来。于是便要镇静的去接受:自己dp依旧很烂,总结几点原因。1.自己做dp题目时,虽然也思考了很久,但最终还是过多的依靠题解,有利有弊。好处在于一个题目我知道用什么样的方法去解决会更方便,会有很多想法;坏处在于做DP题目时没有经历过一个系统的思考独立做出来,缺少完整的解题过程,必然会遗漏一些细节处理。最重要的一点,缺乏底气和信心。而底气和信心源于一道道题目和一原创 2021-04-26 02:18:35 · 1633 阅读 · 5 评论 -
第七周课程总结
区间DP:尽管很多题目都听懂了,看着代码也能理解,但是对于状态转移的具体过程事实上大多数只停留在代码,转移过程并不清晰,因此要加强状态转移的理解。A题收获:虽然老师给了一套固定模板,我也以为找到状态方程往里套就行。但事实并非如此,虽然都是一个套路,但也要思考后把模板变化着用。题意:题目很长,理解还是有点难度。共n场晚会,每场晚会都要穿对应的服饰,可以穿多件衣服,脱下的衣服不能再穿,最少需要多少件衣服。我的思路:1.先套用课上固定模板。2.不难发现,就两种情况,身上有这件衣服,脱下外面衣服;在就去穿一原创 2021-04-24 13:29:38 · 588 阅读 · 5 评论 -
课程总结 第六周
尼姆博奕异或运算及相关应用原创 2021-04-16 22:16:05 · 861 阅读 · 8 评论 -
课程总结(第五周)
J题收获:此题类似于连续子段求最大的那题,而本题要求连续子段绝对值和最小---->>>1.我的想法是用一个dp[n]数组记录每个位置绝对值最小的情况,然后用for循环进行比较,案例是过的,但是无论怎么改都无法ac。最后发现,因为dp[i-1]可能是经过绝对值的,下一个a[i]加上去时,会导致dp[i]结果不准。思路正确,但是实现方式有问题。 for(int i=1;i<=n;i++) { dp[i]=min(abs(dp[i-1]+a[i原创 2021-04-10 14:56:33 · 2737 阅读 · 7 评论 -
课程总结第四周
动态规划:跟我原先对于它的理解不一样,思路和代码实现的方法都很不一样,所以开始时造成了一定困难。之前我认为,一个动态问题可以分成若多个子问题,得到各个子问题的最先值,那么开始是如何规划便显而易见。比如那个吃金币的问题,我的思路是反正这个人都会从左上端走到右下端,那么便从右下端开始考虑问题,分析从哪里走到这金币最多,然后逐层更新...原创 2021-04-03 09:42:07 · 2232 阅读 · 1 评论 -
课程总结(第三周)
翌得:1.总结接触到的所有贪心题(难易都有)2.简要了解动态规划主要是思路。因为每题都各有特点,所以只大致分类。题目包含作业中20余题和上课所讲例题。难题会附上核心代码。课上:1.一个轮船上最多装多少集装箱---->>>重量轻的先装2.使背包中物品价值最大---->>>根据 (价值/重量) 这个比值,降序排列,塞满背包。由于物品可以分割,最后当所剩重量不足以放下整个物品时,可用性价比乘以所剩重量。类似问题:老鼠和猫的交易(题F),要求老鼠所得到的粮食最多原创 2021-03-27 20:16:43 · 2535 阅读 · 5 评论