文章列表

3.9k 4 分钟

# A. Cards for Friends 给一个宽度和一个长度的蛋糕,只有为长或宽为偶数时才能切一刀数量乘以 2,问给定尺寸的蛋糕能否分够 k 块。 分别对宽和长除 2,只要是偶数就除,看看能除几次,得到两个次数相乘就是能分的最大数量,和 k 比较一下 #include <bits/stdc++.h>#define ios ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)using namespace std;typedef long long ll;const int SUP=0x800000;const int...
6.2k 6 分钟

朴素版的线段树只能实现单点修改区间查询,修改和查询的时间复杂度都是 O (logn) # 懒标记问题 加上懒标记后的线段树就可以实现区间修改了,比如我要把 [a,b] 的值加上 k,肯定不会傻到 n 次单点修改,是个人都会想到假如递归到一个包含在 [a,b] 的区间时就不用继续往下递归了,直接告诉这个区间的管理员,把这个区间的和直接给修改了,但是假如你上面第一次增加时增加区间为 [c,d],并且区间 [c,d] 是包含在 [a,b] 中间的,现在又要在 [e,d] 增加 k,e>c 的,这个时候你就会发现 [e,d] 这个区间增加了两次,因为第一次增加时你根本没有递归到...
2.1k 2 分钟

# 2020 年度总结 转眼间已是 2021,想一想我的大学生活已经过去将近一半,真是快呀!总结一下我的 2020 年叭~ # 成就 ACM 天梯赛 (铜奖) CCPC 省赛银奖 CET 成绩还没出,不过感觉是考的不错 体测 79,已经非常满意了,只要过了 75 就满足了~ 学业 比较满足了,相比于上学期确实进步了好多,可能是因为新图书馆建好了的缘故叭~ # 想说的话 # 寒假 ​ 2020 年寒假在家,对视频剪辑,PS,特效制作兴趣比较大,就学了十多天吧,当时还去淘宝上买了好几个教学视频呢,现在都还在百度网盘存着,就是做特效的时候才发现 AE 对电脑的配置需求太大了!5...
1.3k 1 分钟

原来使用的 Sakura 主题已经没人维护了,写作时因为没有集成插件很多标签都没有,因此写出来的文章就比较丑,最重要的原因还是 shoka 这个主题太好看了,个人实在是喜欢 (❤ ω ❤),忍不住就咕哝了两天,在这里记录一下迁移过程遇到最棘手的问题 Algolia 的配置吧。 主题优点 先给新主题 shoka 打个广告,继承了许多优秀插件,尤其是写作标签非常多,写作标签介绍,就光这一点就足够吸引我了,其次就是好看,贼好看,这个布局确实是让人看着赏心悦目,而且配置简单,因为很多东西都集成了,就方便了很多操作。 回归主题,由于以前没用过...
978 1 分钟

你是否还在为这丑陋的 window10 界面而叹气 (win10 界面其实还可以),你是否还在为怎么美化界面而烦恼?不用叹气,不用烦恼!这篇博客可以解决你的问题 众所周知,一个简单漂亮的界面对人的心情也是有很大影响的,假如一个人不整理文件,桌面上乱七八糟,什么都往桌面上放,那迟早是受不了的,将来一定有一天你都不想开电脑 先来放一张美化过后的图片吧 效果还不错吧 强烈推荐 致美化(里面什么都有) # Mydock 仿 MAC-dock 栏,官网,随便选择一个下载渠道,下载后安装 找到一个空白地方右击可以设置大小,图标,开机启动等等,还可以设置最小化动画 # Translucent...
3.8k 3 分钟

课程设计 问题描述: 用十字链表存储稀疏矩阵,实现两个可进行矩阵之间的乘法运算。 基本要求: (1)要对两个矩阵能否进行乘法进行判断。(2)对能够进行乘法运算的稀疏矩阵进行乘法运算并输出正确的结果。 参考博客 # 大致思路 一般矩阵中会有很多值为 0 的元素,十字链表把这些值给忽略掉了,只存有值不为 0 的元素,每一行都是一个链表,每一列也是一个链表,用一个行指针、一个列指针指向它们,形成矩阵形式 # 数据类型 typedef struct OLNode{ // 元素类型 int row,col; // 行列 ElemType val; // 数值 OLNode...
5.5k 5 分钟

实验目标: 1、创建二叉树 2、用非递归算法先中后序遍历二叉树 (难点) 3、分别求出二叉树中度为 0、1、2 的结点个数 4、求出树的高度 参考博客: Article_1 Article_2 难点在于非递归遍历,用栈来模拟递归的过程 # 二叉树结构 typedef struct node{ char data; struct node *lchild, *rchild;}BiTNode,*BiTree;# 创建二叉树 void CreateBiTree(BiTree &t){ char ch;...
4.1k 4 分钟

倍增 以倍增方式向上跳,时间复杂度是 O (q*logn) tarjan 树上算法,实现过程通过 dfs + 并查集来离线求出 lca (最近公共祖先),时间复杂度 O (n+q),n 是结点数,q 是查询数 # 算法实现过程 倍增算法流程: 用一个 dfs 得出每一个点的父亲节点还有它的深度,用数组保存起来,其中保存父亲的数组用 dp [i][j] 表示,意义是 i 节点向上跳 2j 步后到达的节点,父亲节点保存在 dp [i][0] 中 void dfs(int u,int fa,int d){...
2.6k 2 分钟

暑假学习了 KMP,奈何掌握不深,现在又来复习,结果又是从零开始 # 什么是 KMP? 现在有一个原字符串,再给你一段模式串,问你在原字符串中是否存在一段子串等于模式串,或者模式串在原串中出现几次? BF 算法,也就是人人都会的指针回朔暴力算法,略过 原串: ABABABAABA (i) 模式串: ABAA (j) 当匹配时第一个失配的位置是 3 (下标从 0 开始),然后朴素做法是把 i 和 j 指针都回朔,但其实可以利用之前已经匹配的信息的,可以找到当前失配字符之前的最大公共前后缀长度,假设长度为 k,则 s [i-k]...s [i-1]==t [j-k]...t [j-1],而 t...
1.4k 1 分钟

2020 年 10 月 18 日,这一天是我第一次打比赛的日子,非常有纪念意义,但是时至今日我才补了这篇文章 2020 年注定是不平凡的一年,突如其来的疫情改变很多人的生活轨迹,原本该在这一年大展拳脚的学长们无奈只能在家里打着练习赛,然而对我们而言,有好也有坏吧,好的是我们有更多时间去提升自己 (当然全靠自觉),坏的是少了许多阅历,不管怎样,终于在 2020 年 8 月 29 日我们开学了,开学后经过一个星期的过渡,又回到了算法的训练中去,在下面也打了许多训练赛,每次都紧紧抱着大佬的大腿,每次成绩也都还不错 (不错指的是会的都比较快的做出来了),然而只要是 dp...