自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 收藏
  • 关注

原创 CMU 15-445/645 Lab3-Query Execution

0.写在前面Lab3的地址:https://15445.courses.cs.cmu.edu/fall2020/project3/本文主要总结一下在写Lab3需要的基础知识以及Task的解决思路(不公开代码,如果有问题可以留言)。Lab3的主要内容是TableIndex1.Task #1 - SYSTEM CATALOG数据库维护一个内部目录(catalog)记录了整个数据库中的table和index信息。有了catalog,我们就可以从table/index的名字或id,找到这个table/i

2022-03-16 15:04:27 2200

原创 CMU 15-445/645-Note7-执行篇-Optimization

0.写在前面based on CMU 15-445/645 2020fall, Lecture #14~Lecture #15.由于SQL语句是以声明式的方式给出要求,所以在执行的过程中有很多的优化空间。Overview:1)在第一个阶段进行SQL Rewriter(对于规则的优化),将一些常量进行累加计算等等。2)接下来会把引用格式转换成内部的标识符,构建语法树(对应3)。(一个逻辑计划可能会对应许个物理计划)3)最后Optimizer的作用就是选择代价最小的物理计划(基于代价的搜索)。1

2022-03-13 22:37:07 385

原创 CMU 15-445/645-Note6-执行篇-Query Execution

0.写在前面based on CMU 15-445/645 2020fall, Lecture #12~Lecture #13.1:执行模型(PROCESSING MODEL)DBMS 的执行模型定义了系统执行查询计划(query plan)。每一个query plan都要实现一个next函数和一个init函数,对于next函数每次调用时,返回一个元组或空标记(如果没有更多元组)。主要有三种方法:Approach #1: Iterator ModelApproach #2: Materializ

2022-03-13 19:37:04 1847

原创 CMU 15-445/645-Note5-执行篇-Join

0.写在前面based on CMU 15-445/645 2020fall, Lecture #11.Join是数据库中非常常见的操作。对于Join操作,大致可以分为三种:Loop、Sort、Hash;下面是算法以及其时间的介绍。1:Join算法1.1Simple loop join最最最暴力的算法,二重循环。1.2 Block loop join由于可以用B - 2 个buffer来scan 关系R所以时间复杂度就可以减少非常多。也可以利用Index来进行优化:对于外层循环中的每

2022-03-13 16:19:49 292

原创 CMU 15-445/645-Note4-执行篇-Sort

0.写在前面based on CMU 15-445/645 2020fall, Lecture #10 ~ Lecture #.在关系型数据库中,我们通过声明式(Declarative)的语言SQL暴露统一的接口,屏蔽底层的实现。SQL语句在底层是通过执行器来进行执行的。1:数据库中的算法-Sort面向磁盘的数据库的主要特征就是其数据不能全部装入内存(如果能够全部装入内存,很多排序算法都可能应用),这时候我们需要溢出到磁盘的外部排序。order by、建立索引、去重(DISTINCT)等等操作

2022-03-13 15:49:40 1050

原创 CMU 15-445/645 Lab2-B+Tree Index

0.写在前面GitHub同步更新,欢迎star~ https://github.com/kaniel-outis/CMU15-445Lab2的地址:https://15445.courses.cs.cmu.edu/fall2020/project2/本文主要总结一下在写Lab2遇到的几个问题,然后是Task的解决思路(不公开代码,如果有问题可以留言)。对应lab2-check point 1.Task #2.a - B+Tree Data Structure (Insertion & P

2022-03-12 21:22:00 1692

原创 CMU 15-445/645-Note3-索引篇

0.写在前面based on CMU 15-445/645 2020fall, Lecture #6 ~ Lecture #8.1: 数据库中的数据结构设计数据结构的目的:如何弄一个数据结构,使得无须对该数据结构进行大改或者每次要重新转换整个数据结构的情况下,支持快速读写。该如何让多个线程或者多个查询去访问这个数据结构,并且该数据结构表示的数据不会再物理存储层面出现问题,因为同时被线程修改的某个地址的数据会变成脏数据,从而让它们访问到某些无效的 page 或者是某些无效的内存位置。这里最关心的

2022-03-08 15:40:34 442

原创 CMU 15-445/645-Note2-数据库存储(下)

0.写在前面based on CMU 15-445/645 2020fall, Lecture #5.1: Buffer Pool Manager(BMP)一般数据库的标准配置是这样的前端 OLTP 数据库后端 OLAP 大型数据仓库(back-end data warehouse)这两者有时候被称为 Data Silo,即数据孤岛,数据存储相互独立,彼此之间不会真的交流,然后就可以进行 ETL(Extract Transform Load) 的操作,即将业务系统的数据经过抽取、清洗、转换之

2022-03-07 22:34:20 437

原创 CMU 15-445/645-Note1-数据库存储(上)

0.写在前面Lecture #1-2 是基础的sql知识。based on CMU 15-445/645 2020fall, Lecture #3 ~ Lecture #4.这门课是面向磁盘(Disk-Oriented)的数据库管理系统,之后的课程实验也都是以此为基础。Disk-Oriented:数据库的主要存储都是放在磁盘上的,意味着每次执行查询时,所要访问的数据都不在内存(Memory)中 (区别于Redis)。1: 计算机的存储结构1. 越上面的容量越小,速度越快,也越贵2. 越下面的

2022-03-07 16:52:47 681

原创 CMU 15-445/645-Note11-Distributed Databases

0.写在前面based on CMU 15-445/645 2020fall, Lecture #21 ~ Lecture #24.1: SYSTEM ARCHITECTURE1)SHARED Everything:非分布式系统使用。2)SHARED Memory:多个CPU通过一个通信层去使用同一个内存。3)SHARED Disk:CPU上运行的worker有自己的本地内存,通过通信层共享磁盘。(可以直接扩充node,cpu之间需要通信来了解当前的状态)(云架构)4)SHARED Nothi

2022-02-22 23:39:07 326

原创 CMU 15-445/645-Note10-Database Logging & Recovery

0.写在前面based on CMU 15-445/645 2020fall, Lecture #20 ~ Lecture #21.1: CRASH RECOVERYMotivation:当我们遇到崩溃和故障的时候,我们想要持久化对数据库的修改。恢复算法有2个part:1)针对DB运行中的transaction。2)当遇上重启或者崩溃的时候,利用第一个part中的信息来恢复。1.1 TypeType #1 – Transaction FailuresType #2 – System Fai

2022-02-19 21:16:29 499

原创 CMU 15-445/645-Note9-CONCURRENCY CONTROL(下)

0.写在前面based on CMU 15-445/645 2020fall, Lecture #18 ~ Lecture #19.1: 并发控制 - Timestamp Ordering (T/O)(上)中主要介绍2PL,在下中我们介绍并发控制的另一种方法Timestamp Ordering (T/O)。1.1 关于timestamp选择1.system clock:如果使用clock,那么在分布式系统中时间同步可能出现问题。(夏令时回调时间)2.logic counter:(32位或者64

2022-02-17 20:27:38 576

原创 CMU 15-445/645-Note8-CONCURRENCY CONTROL(上)

0.写在前面based on CMU 15-445/645 2020fall, Lecture #16 ~ Lecture #16.1: 事务(transaction)1.1定义它是指一些列操作序列(一个或一个以上)当一个事务被提交给了DBMS(数据库管理系统),则DBMS需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态(要么全执行,要么全都不执行);同时,该事务对数据库或者其他事务的执行无影响,所

2022-02-17 20:26:48 556

原创 CMU 15-445/645 Homework #2

0.写在前面Homework2的一些知识总结。题目和sol可以去cmu-15-445 2020上找到。个人学习总结:https://github.com/kaniel-outis/CMU15-445Question 1: Cuckoo Hashingcuckoo是布谷鸟的意思,这种鸟有一种即狡猾又贪婪的习性,它不肯自己筑巢, 而是把蛋下到别的鸟巢里,而且它的幼鸟又会比别的鸟早出生,布谷幼鸟天生有一种残忍的动作,幼鸟会拼命把未出生的其它鸟蛋挤出窝巢,今后以便独享“养父 母”的食物。cuckoo has

2022-01-03 16:13:11 467

原创 CMU 15-445/645 Lab1-BUFFER POOL

0.写在前面GitHub同步更新,欢迎star~ https://github.com/kaniel-outis/CMU15-445写这篇文章的时候看到 lecture 5:Buffer Pool. 写完homework 1,然后准备动手Lab1。Lab1的地址:https://15445.courses.cs.cmu.edu/fall2020/project1/Task1 - LRU REPLACEMENT POLICY这一部分的Lab在 lecture 5:Buffer Pool中有一些讲解

2021-12-26 21:48:34 997

原创 python_Nrrd格式转JPG与PNG

Nrrd是常见的医学图像标记格式。通过3D slicer做完标注后的数据格式为Nrrd,由于Nrrd处理起来没有JPG类似格式方便,然后网上找了一圈没找到,所以就试试看吧T_T核心代码: image_data, image_options = nrrd.read(imagepath) nrrd_image = Image.fromarray(image_data) nrrd_image.save("./"+ each +".jpg", "JPEG") # 第一个参数为保存

2021-08-31 16:36:52 1604 2

原创 python_医学图像_brain MRI_数据集文件处理

数据集来源:https://www.kaggle.com/mateuszbuda/lgg-mri-segmentation数据是脑瘤的 brain MRI数据。需要处理成的格式:<数据集名称>├── images| ├── 0a7e06.jpg│ ├── 0aab0a.jpg│ ├── 0b1761.jpg│ ├── …|└── masks├── 0| ├── 0a7e06.png| ├── 0aab0a.png| ├── 0b1761.

2021-03-26 16:29:50 2006 8

原创 PAT-2019年春季考试-甲级-Structure of a Binary Tree

7-4 Structure of a Binary Tree (30 分)作者: 陈越单位: 浙江大学时间限制: 400 ms内存限制: 64 MB代码长度限制: 16 KBSuppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder ...

2019-03-26 19:10:23 373

原创 PAT-2019年春季考试-甲级-Telefraud Detection

7-3 Telefraud Detection (25 分)作者: 陈越单位: 浙江大学时间限制: 400 ms内存限制: 64 MB代码长度限制: 16 KBTelefraud(电信诈骗) remains a common and persistent problem in our society. In some cases, unsuspecting victims lose t...

2019-03-26 18:56:47 587 1

原创 PAT-2019年春季考试-甲级-Anniversary

Anniversary作者: 陈越单位: 浙江大学时间限制: 800 ms内存限制: 64 MB代码长度限制: 16 KBZhejiang University is about to celebrate her 122th anniversary in 2019. To prepare for the celebration, the alumni association (校友会)...

2019-03-25 21:20:52 389

原创 PAT-2019年春季考试-甲级-Sexy Primes

7-1 Sexy Primes (20 分)Sexy primes are pairs of primes of the form (p, p+6), so-named since “sex” is the Latin word for “six”. (Quoted from http://mathworld.wolfram.com/SexyPrimes.html)Now given an i...

2019-03-25 20:54:05 1113 2

原创 第十五届浙江大学宁波理工学院程序设计大赛_L_The Last Stand

传送门思路:dp转移方程: dp[i]=max(dp[i],dp[j]+p[j].val+(p[i].id-p[j].id)*p[j].del);#include&lt;bits/stdc++.h&gt;#define debug(a) cout &lt;&lt; #a &lt;&lt; " " &lt;&lt; a &lt;&lt; endl#define lnn putchar('\...

2018-12-20 10:57:13 156

原创 ACM-ICPC 2018 北京赛区网络预赛_A_ Saving Tang Monk II_BFS

传送门题意:1)‘S’ 是起点,‘T’ 是终点,‘.’是空地,‘#’是毒气室(进入毒气室需要一个面具),‘P’是加速点(到这点不需要花时间),‘B’是获得面具的地点,面具可以无限获得。2)面具的上线是五个。进入毒气室的话要消耗一个面具,并且要在毒气室多呆一秒,问从S到T的最短时间。思路:BFS。#include&lt;bits/stdc++.h&gt;#define debug(a) ...

2018-09-24 16:04:10 171

原创 牛客月赛6_J_洋灰三角_矩阵快速幂

牛客小白月赛6_J_洋灰三角_矩阵快速幂

2018-09-19 20:17:06 210 2

原创 ACM-ICPC 2018 焦作赛区网络预赛_F_ Modular Production Line_费用流

传送门

2018-09-19 20:06:49 181

原创 ACM-ICPC 2018 焦作赛区网络预赛_J_ Participate in E-sports_Java大数开方

传送门题意:求n和 1+2+3+….+(n-1) 这两个数字是不是完全平方数。 思路:大数开方,似乎是板子太弱了,在做第二个数字的时候T掉了,然后我就思考下满足(n-1)*n/2为完全平方数的数字并不多,预处理出来就可以。import java.io.BufferedInputStream;import java.math.BigInteger;import java.util.Sc...

2018-09-16 15:57:28 316

原创 ACM-ICPC 2018 南京赛区网络预赛_E_ AC Challenge_(状压dp)

传送门题意: 1)n个题目,每个题目的权值为aii_i,bii_i,和s个先决条件(也就是说要先做出这几题才能做这道题),如果在T分钟做出来这题,收益就是aii_i*T+aii_i问你能获得的最大收益。 思路: 1)一共就20题,很有状压的感觉。 2)主要思路就是对于当前的一个状态,如果当前这道题没有做过并且这道题的的先决条件都已做过,那么就更新,dp[i]就表示这个状态所能获得的最大...

2018-09-02 11:25:37 158

原创 ACM-ICPC 2018 南京赛区网络预赛_C_GDY_大模拟

题意: 1)有m张牌放到栈里 2)牌的大小为3&amp;lt;4&amp;lt;5&amp;lt;6&amp;lt;7&amp;lt;8&amp;lt;9&amp;lt;10&amp;lt;11&amp;lt;12&amp;lt;13&amp;lt;1&amp;lt;2 3)n个人,每个人首先每次从栈顶取5张牌。 4)从第1个人出他手里最小的牌,然后按顺序轮流出牌。 5)出牌有两种选择:①出比前一个人的

2018-09-02 11:04:08 195

原创 hdu_6444_Neko's loop_(单调队列)

传送门题意:n个数字组成一个环(每个点都有一个价值aii_i,从任意点开始,每次可以跳k步,一共可以跳m次,问最少需要补充多少价值,才能使价值达到s。思路: 1)首先,显然,对于每个数字只可能在一个环中。所以我们只需要开一个数组维护一下是否访问过就行,这样就可以预处理出每个循环节。 2)对于每个循环节,我们计算出可以循环几圈,讨论一下一圈的正负,计算一下余数对最后答案的影响。 3)这...

2018-08-29 21:27:59 123

原创 hdu_6437_Videos_(最大费用最大流)

传送门题意: 1)一天有n个小时,m个c菌的视频(一共有2中类型的视频,如果观看不同类型的视频将会扣除一个w(定值)的快乐值),k个人。 2)现在给出m个视频的s(开始时间),t(结束时间),w(看视频所能获得的快乐值),t(类型)。 3)没个视频只能最多由一个人观看。 4)求这群人最大的快乐值。define:(from,to,cap,cost),源点为s,次源点为ss,汇点为t。...

2018-08-24 13:11:20 318

原创 Codeforces_1027F_Session in BSU(并查集维护二分图)

传送门题意:一个人有n场考试,每场考试有2个可以考试的时间,问是否可以安排上所有的考试,如果可以输出最短的天数。思路:非常有意思的一道题。现场看到觉得是一个二分图匹配,但是发现数据范围很大(结果还真有二分图过的)。 1)首先需要离散化,这样最多只有2e6的点,可以存的下。 2)我们将点点的模型变成一个点边的模型,将一场考试的两个时间点连一条边,然后如果在一个连通块中如果点数(考试数)=...

2018-08-21 15:43:41 206

原创 2018上海金马五校_J_小Y写文章(二分+二分图匹配)

传送门思路: 添加一些(n+1-m 个)假广告与不必填坑位匹配,check 条件最大匹配 =n+1,因此可以直接二分图匹配。#include&lt;bits/stdc++.h&gt;using namespace std;const int N=500;int tx[N],ty[N];int w[N][N],match[N],vis[N];int n,m;void add...

2018-04-19 23:13:24 180

原创 ZOJ_3933_Team Formation(二分图最佳匹配)

传送门题意:有n个人,第二行告诉你他是0队还是1队。第三行告诉你是男生还是女生。 现在想要组队,每个队伍必须是一个0队和一个1队的人。 问在组队数尽可能多的情况下,女生的参数人数要最大。 思路:学习KM算法的第一题。带权匹配可以用km算法也可以用费用流解。在km算法中这里的权值我们可以尽可能的设的大一些。例如我设置为10000.一个队伍中每有一个女生权值就++。这样能保证最后在边最多的情...

2018-04-19 19:45:38 169

原创 Codeforces_962D_Merge Equals(STL map)

传送门题意:给你n个数,然后如果同一个数出现过两次或者多次的话,从左边开始往右边,把第一个删掉,第二个变成2倍的值。 思路:强大的STL!map和set搞一搞就行。#include&lt;bits/stdc++.h&gt;#define debug(a) cout &lt;&lt; #a &lt;&lt; " " &lt;&lt; a &lt;&lt; endl#define LL ...

2018-04-17 17:57:11 275

原创 Codeforces_961C_Make a Square(枚举状态or深搜)

传送门题意:给你一个int范围以内的数字,判断需要删除多少位,能变成一个平方数。不能输出-1。 思路:题目还是非常裸的,只需要枚举或者深搜就行。判断这个数是不是平方数,然后看删除了多少位,维护一个最小值就可以啦。 这道题有些坑点:比如如果用int读入的话,会导致你的末尾的0无法统计。所以用string读再合适不过了。还有就是要注意前导0.#include&lt;bits/stdc+...

2018-04-16 20:28:25 215

原创 Codeforces_961E_Tufurama(树状数组or线段树)

传送门题意:有一部电视剧有n季,每一季有ai集。问有多少对i,j存在第i季第j集也同时存在第j季第i集。 思路:核心问题还是统计对于第i季,你要统计第i行(存在多少数量,要大于i)。 线段树的维护相对而言比较暴力,树状数组的话,一开始全是1,一旦某个数过小,就会导致不构成贡献,移除就好。tips:对于这样的题目,可以首先思考排序,这样可以省去一维操作。线段树:#includ...

2018-04-16 20:16:05 269

原创 Codeforces_959D_E. Mahmoud and Ehab and the xor-MST

传送门 思路:很有趣的题目,比赛的时候一直找规律,想着可以晚点再打表,结果GG。 其实对于一个数字,它连接的点一定是lowbit(x),这样就是满足边的权值最小。 所以:这道题最后的规律就是统计1的数量。 打表:#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;string.h&gt;#include&lt;alg...

2018-04-16 20:08:36 201

原创 Codeforces_959D_Mahmoud and Ehab and another array construction task(数学+贪心)

传送门题意:给你一个序列A,让你求一个序列B,满足以下情况: 1.B的字典序比A大 2.Bi&gt;=2 3.B中的没两个数都两两互质。思路:先预处理质因数。B中满足两两互质等价于B中没有相同的质因数。所以对于每个数看,他的质因数有没有在之前出现过,出现过就找 下一个,如果找到的数和起始的不一样的话,之后的数只需要从最小的质数开始就行。#include&lt;bits/stdc+...

2018-04-16 20:03:14 219

原创 Codeforces_953C_Mahmoud and Ehab and the wrong algorithm(构造)

传送门思路:分情况构造,一定 正确的树是一条直线。不正确的话是当n&gt;=6的时候,只需要在1上挂2,3,4,其他挂在2上就行。画画图就很容易出来啦。#include&lt;bits/stdc++.h&gt;#define debug(a) cout &lt;&lt; #a &lt;&lt; " " &lt;&lt; a &lt;&lt; endl#define LL long lo..

2018-04-16 19:54:41 197

原创 codeforces_961D_ Pair Of Lines+849B_Tell Your World(数学+直线)

对于直线的问题一直没有很好的写法,今天总结下判断直线的问题。Tell Your World 题意:给出坐标为(i,y[i])的一系列点,问能否找到两条平行且不重合的直线,使得所有点都落在两条直线上,且每条直线上至少有一个点。 思路:对于所要求的斜率我们只需要枚举(1,2),(1,3),(2,3)这几个点就一定会有最总要求的斜率的值。判断在每种情况下,是否能满足要求即可。#include...

2018-04-16 19:46:03 158

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除