- 博客(32)
- 收藏
- 关注
原创 STL配置器的内存分配策略
STL的几个组成部分1.容器:各种数据结构2.算法:各种常用算法3.迭代器:容器与算法之间的联合器,泛型指针4.仿函数:协助算法完成不同的策略的变化???5.适配器: 修饰或套接仿函数???6.配置器:分配空间管理配置器的内存空间管理策略:一级配置器:对于大于128B的空间,使用一级配置器直接调用malloc二级配置器:对于小的空间,维护一个大小为8B-
2015-03-17 19:22:06 383
原创 OC中interface,protocol的区别
在OC中经常是@interface+@implements共同构成一个类,而@protocol作为一个接口
2015-03-16 16:45:40 1049
原创 UNP 学习笔记4
本篇主要介绍一些常见的IO模型:1. 常见的阻塞IO2.IO复用3.异步IO以下是以select实现的IO复用,单线程实现的对多个文件描述符的控制#include "unp.h"int main(int argc, char **argv) { int i, maxi, maxfd, listenfd, connfd, sockfd; int nready,
2015-03-10 20:36:17 498
原创 Unix中硬链接和软链接的区别
Unix中,内核会给每一个新建文件分配一个索引节点inode,每个文件都有一个唯一确定的索引节点号,文索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。链接是一
2014-12-09 22:51:23 1330
原创 UNP 学习笔记3
5.TCP 实例在server实例中,我们搞清了socket() bind() listen() accept() close() 这几个socketserver编程里非常重要的函数的功能意义,还有sockfd connfd 两个socket描述符的作用现在我先分析一下C&S的连接流程:双方都配置好以后,Client的connect(),引起TCP的三路握手过程。Client的
2014-10-12 22:53:13 382
原创 UNP 学习笔记
UNP 学习笔记3 socket编程简介3.1 概述3.2 socket地址结构socket函数都需要一个指向socket地址结构的指针作为参数。每个协议族都定义它自己的socket地址结构,以sockaddr_开头例IPv4 socket的地址结构
2014-10-09 21:29:08 298
原创 test Week 5
180min 2/5 出了三题的主体,但每一道都WA了一下,因各种因素而小卡,还要要多积累A题,a[i] = a[i-1] + a[-2] ,关系式能出,赞一个!但是没用longlong WA了一次#include using namespace std;const int MAXN = 45 + 5;int N;long long a[MAXN];int main(){
2014-03-30 22:54:04 411
原创 course 4 分治
h第五课时的内容是分治,分治实际上并不是一个陌生的解题思想,但是重要的是结合主定理去估计一个分治是否可以提升效率介绍主定理:以2进制乘法为例,对于2进制乘法:X*Y = (2^N/2 * XL + XR) * ( 2^N/2 * YL + YR) = 2^N*X*Y + 2^N/2(XL*YR + XR*YL) + XR*YR;这个式子的递归方程式: T(N) = 3 * T(n/2
2014-03-23 17:16:46 401
原创 usaco 2.1
进入第二章:上来就是一个比较繁琐的图论,求迷宫的最大联通块,然后允许拆一块墙,在求一次此时的最大联通块求联通块:dfs+枚举每一块墙, 要注意的是题目说要尽量靠西的答案,和尽量靠南的答案,那么在枚举墙的时候应for (int j = 1; j for (int i = N; i > 0; i--)通过自底向上,从左到右枚举就省去了比较2: 每面墙会在两个小块内
2014-03-22 19:43:36 379
原创 usaco 1.5
chapter 1.5 的内容还是比较多的Number Triangles: 简单的动态规划,方程:对自顶向下的总和sum sum[i][j] = max{sum[i-1][j], sum[i-1][j+1]} + number[i][j]/*ID: zhangw31PROG: numtriLANG: C++*/#include #include #include usi
2014-03-22 19:34:30 416
原创 test Week3
3/6 keep fighting!! B题的二分答案的出口要搞清。。A题:按非降序给出N(215000)个范围在[1, 1e9]的整数,组成集合A,询问M(1 已知给出的N个数为非降序,在M次查询时,可以使用二分法进行查询,二分法可以用STL中的set实现。B题:给定N天每天花的钱数,连续的一段日子可以组成一个月,问将N天组成M个月时,每个月的最少花费是多
2014-03-17 22:15:28 408
原创 course3 二分
这周的课程是二分,一听到二分,我就会想起二分查找,其实二分的思想在许多的数据结构中都有广泛的用处,那今天的二分呢,实际上实际上是一种解题的策略:“二分答案”,也就是说,如果一道题目的答案落在某一个区间中,如果某个答案在验证正确性以后,可以确定该答案以后或以前的数值都不是最优时,就可以使用该方法了。POJ 1064 N条线,从中切K条长度相等的线,求最长可多长?答案可定在(0, maxl
2014-03-14 23:12:35 403
原创 test Week2
2/6 还是欠缺稳定性,心急吃不了热豆腐啊。。keep fighting!!A 6位的枚举B 递归枚举,2进制枚举都行综合两个基础题来看,在紧张的环境下,不能冷静地作出决策,还是多练吧!
2014-03-12 08:49:29 397
原创 usaco 1.4 枚举&搜索
the clocks 这道题题面上是一个搜索类型的题,有9个时钟,每个时钟有4个状态,现在有9种操作,每种操作可以改变某些时钟的状态,问什么时候9个时钟都到状态0,一开始没有多想就写了个BFS,但是效率太低了,主要是深搜没有状态判重。。比如同一个操作最多就做3次,第四次做完以后就相当于没做,BFS没考虑这个的话就会陷入低效。有了每种情况都只有3次,另外一种思路就是枚举,用到二进制位操作,程序
2014-03-07 13:43:20 537
原创 usaco 1.33
50min N^5 的枚举 (N要注意的是for循环里的临时变量,不能直接+= 。。debug花了些时间 ,下次注意/*ID: zhangw31PROG: crypt1LANG: C++*/#include #include #include using namespace std;int N, answer;int num[10];set s;
2014-03-04 21:40:05 405
原创 test Week1
Week 1 test 总结180min 3/5 前三道基础题120min 1题是基础的找最大值的题目2题直接求关系式 & 求模的化简3题一道栈的模拟题,一开始想的太复杂了,遍历一遍找到两个相邻且相同的字符就把它去掉,不断循环知道没有为止其实仔细一想这个做法的最坏情况是回文串的情况那么就是一个o(n^2)的一个算法,数据规模是20000,果断TLE。。那么就应该用o
2014-03-02 22:57:57 785 1
原创 usaco 1.32
1.求最长回文子序列: 我的想法是2重for遍历string的子序列用assign(s.begin() + i, s.begin() + j) 求子序列,但是貌似复杂度太高。。再想想
2014-03-01 23:09:28 442
原创 usaco 1.24
1.2的第4第5题都考察了10进制转X进制的问题,用以前的模板套一下就好了/*ID: zhangw31PROG: palsquareLANG: C++*/#include #include #include #include using namespace std;int base;string tentox (int num, int syst){ strin
2014-03-01 10:54:55 395
原创 usaco 1.23
1.深搜,dfs写得丑了点,但是够用了。2.string去掉末尾字符的方法/*ID: zhangw31PROG: namenumLANG: C++*/#include #include #include #include using namespace std;string legalname;string number;string testname;int
2014-02-28 21:16:22 393
原创 usaco 1.22
简单的枚举,一开始看了一下觉得和以前的魔板差不多,果断开始广搜,结果发现每个操作仅能一次,审题啊。。1-5之间有联系,转4个90度就相当于转回来。。/* ID: zhangw31PROG: transformLANG: C++*/#include #include #include using namespace std;const int MAXN = 11;int
2014-02-27 20:15:11 409
原创 usaco 1.21
1. 1000000的数据量,就像用一维数组模拟,一开始处理不好边界条件。。还以为一维数组模拟行不通现在前开后闭搞定2. 线段树的经典引例。/*ID: zhangw31PROG: milk2 LANG: C++*/#include #include using namespace std;int N;int timeInter[1000005];int a, b, ma
2014-02-26 09:43:15 432
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人