avatar
文章
162
标签
107
分类
5

首页
分类
友链
说说
Doraemon's Blog
搜索
首页
分类
友链
说说

Doraemon's Blog

牛客小白月赛29
发表于2021-02-21|题目|题目
B 二进制题目链接: https://ac.nowcoder.com/acm/contest/8564/B 单纯与或者单纯或单纯异或都支持交换律,但是他们放在一起就不支持交换律了,比如1先和0与再和1或结果是1,但是1先和1或再和0与结果就不一样,可以设两个数,一个所有位都是0,一个所有位都是1,把这两个分别进行上述操作,最后得出来的结果按位对比,如果0变成了1且1变成了0则这个位肯定是异或1,如果0变成0且1变成0则这一位是与0,如果0变成1且1变成1这一位肯定是或1,按照这个规律可以求出这个数,任何一个数与1或0异或0都不变,所以可以设置三个数,一个全设为1,另外两个全设为0,当这个位是与0时,就用全为1的变量减去(1<<i)这一位上的数,另外两个同理 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include <bits/stdc++.h>#define debug freopen("in.txt",& ...
凸包讲解
发表于2021-02-08|算法|凸包
凸包(百度百科): 讲解凸包之前先讲解一下极角排序、叉积 叉积就是数学上的叉乘,两个向量叉乘,有正有负,相乘的两个向量前后顺序颠倒符号相反,乘出来的的结果也是一个向量,值等于以这两个向量作为平行四边形的两条边长的面积,方向指向与两个向量垂直的方向,右手定则,拇指指向x轴弯向y轴大拇指指向方向就是叉积的方向 数学上叉积非常重要,利用它可以计算出来不规则图形的面积,只需要知道不规则图形的顶点坐标。 利用叉积求多边形面积 两个向量的叉积值等于以这两个向量作边的平行四边形的面积 求多边形面积,就可以把多边形分解成许多三角形,求各个三角形面积加起来即可,从原点到各个点做向量,逆时针或者顺时针依次作叉积/2求和即可,顺时针和逆时针求出来的叉积方向不同,正负不同逆时针为正,顺时针为负 例题:HDU2036 123456789101112131415161718192021222324252627282930313233>#include <bits/stdc++.h>>#define debug freopen("in.txt","r&q ...
Codeforces Round
发表于2021-01-21|题目|div3
A. Cards for Friends给一个宽度和一个长度的蛋糕,只有为长或宽为偶数时才能切一刀数量乘以2,问给定尺寸的蛋糕能否分够k块。 分别对宽和长除2,只要是偶数就除,看看能除几次,得到两个次数相乘就是能分的最大数量,和k比较一下 123456789101112131415161718192021222324252627282930313233#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 MAXN=1e5;const int INF=0x3f3f3f3f;const double eps=1e-4;int num[MAXN];int main(){ ios; int t; cin>>t; while(t--){ int w,h,k; cin>>w> ...
线段树区间修改
发表于2021-01-19|算法|线段树
朴素版的线段树只能实现单点修改区间查询,修改和查询的时间复杂度都是O(logn) 懒标记问题加上懒标记后的线段树就可以实现区间修改了,比如我要把[a,b]的值加上k,肯定不会傻到n次单点修改,是个人都会想到假如递归到一个包含在[a,b]的区间时就不用继续往下递归了,直接告诉这个区间的管理员,把这个区间的和直接给修改了,但是假如你上面第一次增加时增加区间为[c,d],并且区间[c,d]是包含在[a,b]中间的,现在又要在[e,d]增加k,e>c的,这个时候你就会发现[e,d]这个区间增加了两次,因为第一次增加时你根本没有递归到[e,d],而是递归到这个区间的上一层就直接返回了,现在你再在[e,d]区间增加值就会出错,因为少加了第一次的增值,所以应该找一个东西记录下来第一次增值,并且把他带到下面去,这时懒标记就出来了,新开一个数组lazy[i],表示编号为i的区间的累计增值,那么第一次修改[c,d]时,lazyu\就会记录下来增值,lazy[u]+=c,第二次修改经过这个已经修改过的区间时,就要顺带着把这个区间的修改值一起带过去,正所谓父亲欠下的债儿子去偿还,当修改[e,d]时,经过 ...
2020summary
发表于2021-01-07|生活|2020
2020年度总结 转眼间已是2021,想一想我的大学生活已经过去将近一半,真是快呀!总结一下我的2020年叭~ 成就 ACM 天梯赛(铜奖) CCPC省赛银奖 CET 成绩还没出,不过感觉是考的不错 体测 79,已经非常满意了,只要过了75就满足了~ 学业 比较满足了,相比于上学期确实进步了好多,可能是因为新图书馆建好了的缘故叭~ 想说的话寒假​ 2020年寒假在家,对视频剪辑,PS,特效制作兴趣比较大,就学了十多天吧,当时还去淘宝上买了好几个教学视频呢,现在都还在百度网盘存着,就是做特效的时候才发现AE对电脑的配置需求太大了!5千多的电脑根本带不起来…CPU在燃烧🔥~最后也是做出来了一个爱情公寓版的开头片,个人感觉还是不错的,做了两天呢!遗憾的是最后失误把源文件了导致图片链接不上了,最后也是啥也没做成,现在也忘了软件咋用了。 接触Hexo​ 从过年开始疫情就开始了,过年的那两天啥也没干,亲戚也不敢串,都窝在家里,当时一整天有半天多都是躺在被窝里玩游戏或者看爱情公寓5,好慵懒😶~然后就是因为疫情一直没有开学,从2月底开始上网课,记得刚听说要上网课 ...
Shoka主题配置Algolia搜索
发表于2020-12-25|技术|hexo
原来使用的Sakura主题已经没人维护了,写作时因为没有集成插件很多标签都没有,因此写出来的文章就比较丑,最重要的原因还是shoka这个主题太好看了,个人实在是喜欢(❤ ω ❤),忍不住就咕哝了两天,在这里记录一下迁移过程遇到最棘手的问题Algolia的配置吧。 :::success 主题优点 先给新主题shoka打个广告,继承了许多优秀插件,尤其是写作标签非常多,写作标签介绍,就光这一点就足够吸引我了,其次就是好看,贼好看,这个布局确实是让人看着赏心悦目,而且配置简单,因为很多东西都集成了,就方便了很多操作。 ::: 回归主题,由于以前没用过algolia,导致我还得去网上查资料一点一点学,好在最后弄好了。 Algolia配置 首先第一步就是安装hexo-algolia,右击博客根目录输入npm i hexo-algolia 打开网页algolia,注册账户,新建一个Indice,名字随便起,然后根据提示完成后续工作,大致就是让你选择根据什么来搜索 之后在左侧导航栏中找到Api Keys 点击All API Keys,然后点击右上角New API Key,新建一个API ...
win10美化
发表于2020-12-10|技术|win10
你是否还在为这丑陋的window10界面而叹气(win10界面其实还可以),你是否还在为怎么美化界面而烦恼?不用叹气,不用烦恼!这篇博客可以解决你的问题 众所周知,一个简单漂亮的界面对人的心情也是有很大影响的,假如一个人不整理文件,桌面上乱七八糟,什么都往桌面上放,那迟早是受不了的,将来一定有一天你都不想开电脑 先来放一张美化过后的图片吧 效果还不错吧 强烈推荐 致美化(里面什么都有) Mydock仿MAC-dock栏,官网,随便选择一个下载渠道,下载后安装 找到一个空白地方右击可以设置大小,图标,开机启动等等,还可以设置最小化动画 Translucent(汉化版)任务栏透明化,在桌面时可以使任务栏变得透明,点击左下角windows图标,选择所有应用,找到M开头的应用,找到Micrsoft Store,打开后搜索Translucent(汉化版)一定要是汉化版除非您是英语大佬 下载就可以了 雨滴皮肤雨滴是一款占内存非常小的软件,里面有桌面时钟效果,可以添加到桌面动态时钟 皮肤下载地址: Here 自行设置效果吧 本人还是觉得简约效果最好: 任务栏图标居中 找一个安全位置新 ...
十字链表存储稀疏矩阵
发表于2020-12-03|算法|数据结构
课程设计 问题描述: 用十字链表存储稀疏矩阵,实现两个可进行矩阵之间的乘法运算。  基本要求: (1)要对两个矩阵能否进行乘法进行判断。(2)对能够进行乘法运算的稀疏矩阵进行乘法运算并输出正确的结果。 参考博客 大致思路一般矩阵中会有很多值为0的元素,十字链表把这些值给忽略掉了,只存有值不为0的元素,每一行都是一个链表,每一列也是一个链表,用一个行指针、一个列指针指向它们,形成矩阵形式 数据类型123456789typedef struct OLNode{ //元素类型 int row,col; //行列 ElemType val; //数值 OLNode *right,*down; //行指针、列指针}*OLink; struct CrossList{ //矩阵结构 int n,m,num; OLink *Rhead,*Chead; //指向行链表、列链表的指针}; 初始化指针每次都要先把矩阵指针置为空 1234void InitCrossList(CrossList &CL){ CL.n=CL.m=CL ...
Binary Tree
发表于2020-11-30|算法|数据结构
实验目标:1、创建二叉树2、用非递归算法先中后序遍历二叉树 (难点)3、分别求出二叉树中度为 0、1、2的结点个数4、求出树的高度 参考博客:Article_1Article_2 难点在于非递归遍历,用栈来模拟递归的过程 二叉树结构1234typedef struct node{ char data; struct node *lchild, *rchild;}BiTNode,*BiTree; 创建二叉树12345678910void CreateBiTree(BiTree &t){ char ch; cin>>ch; if(ch=='#') t=NULL; else{ t=new node; t->data=ch; CreateBiTree(t->lchild); //创建左子树 CreateBiTree(t->rchild); //创建右子树 }} 层序遍历1234567891011121314void Level(BiTree L){ ...
倍增与tarjan求解lca
发表于2020-11-23|算法|tarjan
倍增 以倍增方式向上跳,时间复杂度是O(q*logn) tarjan 树上算法,实现过程通过dfs+并查集来离线求出lca(最近公共祖先),时间复杂度O(n+q),n是结点数,q是查询数 算法实现过程倍增算法流程: 用一个dfs得出每一个点的父亲节点还有它的深度,用数组保存起来,其中保存父亲的数组用dp[i][j]表示,意义是i节点向上跳2^j^步后到达的节点,父亲节点保存在dp[i][0]中 12345678void dfs(int u,int fa,int d){ //得到每一个点的深度和父亲节点 dp[u][0]=fa; dep[u]=d; for(int i=head[u];~i;i=e[i].next){ int v=e[i].to; if(v!=fa) dfs(v,u,d+1); }} 然后倍增预处理出每一个节点向上跳2^i^步到的的节点 1234567void bz(){ //预处理 for(int i=1;i<=22;i++){ for(int u=1;u<=n;u++){ ...
1…101112…17
avatar
Doraemon
记录成长经历
文章
162
标签
107
分类
5
Follow Me
公告
纵岁月在笔尖洇开深浅,初心始终是砚台上那方不涸的墨。
最新文章
分布式 ID 的生成方案
分布式 ID 的生成方案2025-09-20
分布式事务
分布式事务2025-09-19
秋招-操作系统篇
秋招-操作系统篇2025-09-17
利用云服务器搭建 vpn
利用云服务器搭建 vpn2025-09-14
Java的线程池
Java的线程池2025-03-03
最新评论
正在加载中...
分类
  • 技术8
  • 生活5
  • 算法88
  • 记录21
  • 题目36
标签
线段树+欧拉函数 AIO kmeans 强化学习 hexo 笔试 凸包 雪花算法 高精 背包 状压+前缀异或和 动态规划 分布式 ID 信息安全 操作系统 ACM冷知识 题目 文件读写 类的加载过程 STL 全排列 Leetcode BIO A*算法 miniob dfs 可持久化系列 异或题 单调栈 二进制 win10 三分 事务隔离 数据一致性 算法 图论 BFS 考研 div3 随笔
归档
  • 九月 20254
  • 三月 20252
  • 二月 20255
  • 一月 20251
  • 九月 20243
  • 八月 20242
  • 七月 20242
  • 二月 20242
网站资讯
文章数目 :
162
已运行时间 :
本站总字数 :
251.9k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Doraemon
框架 Hexo|主题 Butterfly
Hi, welcome to my blog!
搜索
数据库加载中