- 博客(40)
- 收藏
- 关注
原创 csapp之malloc lab
csapp之malloc lab思路思路空闲链表有头部和尾部,然后前后节点指针,共计16个字节,其实负荷空间不用记录前后指针,不过感觉影响不大,就都按多费16个字节来做,然后就是把空闲链表按大小分类,0-32,32-64,。。。一直到>4096,共计9个类,然后每次要分配的时候在相应大小里面找,插入空闲链表的时候在头部插入,合并就是前后合并(立即合并的方法),realloc的时候如果当前空间不够就先释放掉当前占用空间,然后找,这里用memcpy的话会因为内存重叠会产生奇怪的错误,用memmove过
2021-01-29 11:33:41
980
原创 Query on a tree V SPOJ - QTREE5
题意一棵树,每个节点有黑白颜色之分,q个操作,每次可以改变节点颜色或给定节点v,查询距离v最近的白色节点的距离。思路树分治建立重心树,这里用到一个重心树的性质,两个节点a,b在重心树中的LCA(a,b)= f 在a到b的路径上,因为由重心树的定义可知删去f后a,b必然在两个不同连通分量内。由此可以对最短路径ans进行更新,设v为查询点,g为其祖先节点,op(v)为以v为根的子树中v到白色节点...
2019-07-19 23:13:23
165
原创 UVA - 822 Queue and A
传送门:UVA-822有点绕。。。多个客服同时选中某个请求这里,可以先将客服按等待时间和id排序,然后就可以顺序处理了。AC代码: #include<iostream>#include<vector>#include<queue>#include<cstring>#include<map>#include&l...
2018-12-14 19:31:02
318
原创 UVA - 511 Do You Know the Way to San Jose?
传送门:UVA-511要求有点多,但是思路还是清晰的。AC代码: #include<iostream>#include<map>#include<cmath>#include<vector>#include<algorithm>using namespace std;const double eps=1e-5;...
2018-12-13 11:17:43
265
原创 UVA - 12504 Updating a Dictionary
传送门:UVA-12504相比于前两个STL的题,这题水多了。。。AC代码: #include<iostream>#include<map>#include<vector>#include<sstream>using namespace std;int main(){ int n; cin>>n; whi...
2018-12-10 20:14:43
153
原创 UVA - 1597 Searching the Web
传送门:UVA-1597用了一波允许key出现重复的multimap。当一篇文章中出现不止一个关键字时lower_bound用来找第一次出现的位置。AC代码: #include<iostream>#include<map>#include<vector>#include<algorithm>#include<set>...
2018-12-10 18:38:57
255
2
原创 UVA - 1596 Bug Hunt
传送门:UVA-1596细节题,还是挺磨人的,思路都注释在代码里了AC代码: #include<iostream>#include<vector>#include<map>#include<sstream>using namespace std;int main(){ string pq[1009],tmp;//pq存储...
2018-12-10 12:22:33
127
原创 UVA - 230 Borrowers
传送门:UVA-230练了一波自定义的sortAC代码:#include<iostream>#include<map>#include<vector>#include<algorithm>using namespace std;bool cmp(pair<string,string> a,pair<strin...
2018-12-09 11:38:38
197
原创 UVA - 12100 Printer Queue
传送门:UVA-12100又是一个直接模拟的题,这章主要还是练STLAC代码: #include<iostream>#include<map>#include<vector>#include<queue> using namespace std;int main(){ int t,n,m,op[110];//op存储优先...
2018-12-08 20:59:51
105
原创 UVA - 1593 Alignment of Code
传送门:UVA-1593算一下每列的占位AC代码: #include<iostream>#include<algorithm>#include<sstream>#include<vector>using namespace std;vector<string> pq[1009];//存储单词 int main(...
2018-12-08 20:02:21
110
原创 UVA 1595 Symmetry
传送门:UVA-1595建一个map<int,pair<int,int> > 的数据结构,键存储点的y坐标,pair存储所有纵坐标为y的点的x值的和及这些点的个数,最后判断平均数是否相同。AC代码: #include<iostream>#include<map>#include<cmath>using namespa...
2018-12-08 17:52:03
113
原创 UVA - 10391 Compound Words
传送门:UVA-10391将每个单词拆成两个,遍历所有情况,判读两个单词是否在词典中AC代码:#include<iostream>#include<map>#include<set>#include<algorithm>using namespace std;string op[120009]; int main(){ ...
2018-12-08 17:30:18
118
原创 UVA - 10763 Foreign Exchange
传送门:UVA-10763对每一个学校来说只要想出去的人和想进来的人数相同就行,不是两个学校必须互换学生AC代码: #include<iostream>#include<map>using namespace std;int main(){ int n; while(cin>>n){ if(!n) break; map<...
2018-12-08 17:23:08
175
原创 UVA - 10935 Throwing cards away I
传送门:UVA-10935STL的简单应用AC代码: #include<iostream>#include<vector>using namespace std;int main(){ int n; while(cin>>n){ if(!n) break; vector<int> pq,gh; //pq存储纸牌序...
2018-12-08 17:17:28
96
原创 UVA1594 Ducci Sequence
传送门:UVA-1594贼水,这章习题前面好多水题AC代码: #include<iostream>#include<cmath>using namespace std;int main(){ int t,n; cin>>t; while(t--){ cin>>n; int op[20],cnt=0,tmp[20]...
2018-12-08 17:14:39
118
原创 紫书第四章习题
例题5: Spreadsheet Tracking 传送门:UVA512 例题6: A Typical Homework 传送门: UVA12412 习题1:Xiangqi 传送门:UVA1589 习题2:Squares 传送门:UVA201 习题...
2018-12-05 16:35:09
221
原创 UVA - 815 Flooded!
传送门:UVA-815二分法,水位最低在最低的格子,最高不超过maxn+v/(n*m)/100+1,其中maxn表示最高的格子的高度,v代表水体积。最后保留两位小数,精度eps设为1e-4足够了AC代码:#include<iostream>#include<cmath>using namespace std;const double eps=1e-4;...
2018-12-05 16:05:35
216
原创 UVA - 1591 Data Mining
传送门:UVA-1591这题理解完感觉没啥难度,公式看来看去都没啥错误,就是在满足 (sp<<a+1)>>b >= sq的情况下(这是保证存储空间不重叠,因为对q来说相邻两个元素之间的空间就是上式的左边,其实稍微变换一下上式也等价于 (n-1)*(sp<<a+1)>>b+sq>=n*sq,就是总存储空间不小于连续存储空间),求总存储...
2018-12-05 11:07:57
191
原创 UVA - 12108 Extraordinarily Tired Students
传送门:UVA-12108模拟题,存储时间点上的学生状态,出现重复可以判断不能全部清醒AC代码:#include<iostream>#include<set>#include<vector>using namespace std;const int maxn=20;int a[maxn],b[maxn],c[maxn],per[maxn]...
2018-12-04 15:28:17
240
原创 UVA - 509 RAID!
传送门:UVA-509对所有磁盘对应位的异或和进行校验,如果有两位损坏,则数据不可恢复,因为复原状况不唯一AC代码: #include<iostream>using namespace std;int main(){ int d,s,b,op,num=1;//num代表数据集的序列,op代表校验码 char vir;//代表奇偶校验 string pq[...
2018-12-04 11:16:40
228
原创 UVA - 508 Morse Mismatches
传送门:UVA-508这题很长,不过不难,会用STL很快AC了,不过碰见了一个奇怪的bug,两个数一个是tmp.size(),另一个是fg[i].size(),tmp是个string,fg是string的vector,二者直接相减就出现一个很大的数,不懂为啥,有大佬知道的吗。。。AC代码: #include<iostream>#include<map>#...
2018-12-03 17:10:02
189
原创 UVA - 1590 IP Networks
传送门:UVA-1590这题就是个基本的位运算,我却调了好久。。。对所有网址从左往右,按位从高往低找到第一个不同的二进制位AC代码: #include<iostream>#include<cstring>#include<cstdlib>using namespace std;const int maxn=1000+9;int pq[m...
2018-12-03 11:14:29
382
原创 中国MOOC北大程序设计与算法(二)算法基础2018秋季期末
之前有说过我本科不是学计算机的,所以学习大都在网上,这之中mooc真的给了我很多帮助,郭炜老师的程序设计系列真的是很棒 01:大盗阿福 解答传送门:01:大盗阿福 02:马走日 解答传送门:02...
2018-12-02 18:29:06
734
原创 10:Best Cow Line, GoldMOOC程序设计算法基础期末第十题
FJ is about to take his N (1 <= N <= 30,000) cows to the annual "Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges.The co...
2018-12-02 18:14:57
312
原创 09:最大子矩阵MOOC程序设计算法基础期末第九题
已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。比如,如下4 * 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8这个子矩阵的大小是15。输入输入是一个N * N的矩阵。输入的第一行给出N (0 < N <= 100)。再后面的若干...
2018-12-02 18:10:44
532
1
原创 08:Calling Extraterrestrial Intelligence AgainMOOC程序设计算法基础期末第八题
问题表述:A message from humans to extraterrestrial intelligence was sent through the Arecibo radio telescope in Puerto Rico on the afternoon of Saturday November 16, 1974. The message consisted of 1679 ...
2018-12-02 18:01:40
471
原创 07:画家问题MOOC程序设计算法基础期末第七题
有一个正方形的墙,由N*N个正方形的砖组成,其中一些砖是白色的,另外一些砖是黄色的。Bob是个画家,想把全部的砖都涂成黄色。但他的画笔不好使。当他用画笔涂画第(i, j)个位置的砖时, 位置(i-1, j)、 (i+1, j)、 (i, j-1)、 (i, j+1)上的砖都会改变颜色。请你帮助Bob计算出最少需要涂画多少块砖,才能使所有砖的颜色都变成黄色。输入第一行是一个整数n (1≤n ...
2018-12-02 17:55:05
568
原创 06:SudokuMOOC程序设计算法基础期末第六题
Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smaller squares 3x3 as shown on the Figure. In some of the cells are written decimal digits from 1 to 9. The othe...
2018-12-02 17:46:03
377
原创 05:单词序列MOOC程序设计算法基础期末第五题
给出两个单词(开始单词和结束单词)以及一个词典。找出从开始单词转换到结束单词,所需要的最短转换序列。转换的规则如下:1、每次只能改变一个字母2、转换过程中出现的单词(除开始单词和结束单词)必须存在于词典中例如:开始单词为:hit结束单词为:cog词典为:[hot,dot,dog,lot,log,mot]那么一种可能的最短变换是: hit -> hot -> ...
2018-12-02 17:39:38
363
原创 04:宠物小精灵之收服MOOC程序设计算法基础期末第四题
一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵。小智也想收服其中的一些小精灵。然而,野生的小精灵并不那么容易被收服。对于每一个野生小精灵而言,小智可能需要使用很多个精灵球才能收服它,而在收服过程中,野生小精灵也会对皮卡丘造成一定的伤害(从而减少皮卡丘的体力)。当皮卡丘的体力小于等于0时,小智就必须结束狩猎(因为他需要给皮卡丘疗伤),而使得皮卡丘体力小于等于0的野生小精灵也不会...
2018-12-02 17:32:55
1640
2
原创 03:开餐馆MOOC程序设计算法基础期末第三题
问题描述:北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列m1, m2, ... mn 来表示他们的相对位置。由于地段关系,开餐馆的利润会有所不同。我们用pi 表示在mi 处开餐馆的利润。为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于k。请你帮助小明选择一个总利润最大的方案...
2018-12-02 17:23:30
706
原创 02:马走日MOOC程序设计算法基础期末第二题
问题描述:马在中国象棋以日字形规则移动。请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。输入第一行为整数T(T < 10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0<=x<=n-1,0<=y<=...
2018-12-02 17:11:13
618
原创 01:大盗阿福MOOC程序设计算法基础期末第一题
问题描述:描述:阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。这条街上一共有 N 家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?输入输入的第一行是...
2018-12-02 16:59:29
437
原创 UVA - 253 Cube painting
传送门:UVA-253依此将第二个正方体的六个面转至第一个的1上,随后旋转第二个正方体判断二者能否相等AC代码: #include<iostream>#include<cstring>using namespace std;int main(){ string pq,a,b; int yu[]={0,6,5,4,3,2,1};//yu存储每个面对...
2018-11-30 10:48:18
492
3
原创 UVA - 220 Othello
传送门:UVA-220思路很好想,写个对某一位置判别合法性的函数,输出个数的时候应该占三个位(这里presentation error了几次)。AC代码: #include<iostream>#include<fstream>using namespace std;char pq[10][10];//存储棋盘 char rev(char tmp){i...
2018-11-29 12:24:44
704
1
原创 UVA - 201 Squares
传送门:UVA-201思路很清晰,将有边的点连起来,再扫一遍AC代码: #include<iostream>#include<cstring>using namespace std;const int maxn=15;int side[maxn*maxn][maxn*maxn],n;//side存储边,将二维转为一维存储 int pos(int x...
2018-11-28 17:29:57
512
原创 UVA - 1589 Xiangqi
传送门:UVA-1589黑棋可能直接吃掉红棋这题早该AC的,一个bug卡了好久。。。一直以为if后面如果只有一句(循环也算?)就不用加花括号,但是我代码里写的judge函数的if else里都是循环,不加花括号就一直wa,加了就过。。。有大佬能解释下吗AC代码: #include<iostream>#include<vector>#include&l...
2018-11-28 12:33:18
462
原创 UVA-512 Spreadsheet Tracking
传送门:UVA-512一开始嫌直接模拟麻烦,瞎搞了一个方法,UDebug里的in都过了,然而就是wa。。。放弃后直接建个表很快ac了AC代码: #include<iostream>#include<algorithm>#include<vector>using namespace std;const int maxn=60;int ma...
2018-11-27 12:08:41
463
1
原创 UVA - 12412,A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)
题巨长,但是不难,一个bug调了好长时间,终于ac了。浮点数加上1e-5;当数据库空的时候直接输出0.00(虽然udebug里是输出nan);还有选操作4时输出的单引号应该是英文的,样例给的是中文的。传送门:UVA-12412AC代码: #include<iostream>#include<map>#include<algorithm>#i...
2018-11-26 16:45:04
246
原创 紫书第三章习题
1. Score UVA - 1585题目链接: UVA-1585题目描述: There is an objective test result such as “OOXXOXXOOO”. An ‘O’ means a correct answer of a problem and an ‘X’ means a wrong answer. The s...
2018-11-22 22:15:24
1997
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人