自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hihocoder #1109 最小生成树三·堆优化的Prim算法

#include<fstream>#include<iostream>#include<string.h>#include<math.h>using namespace std; #define FOR(i,b,e) for(int i=(b);i<=(e);i++) #define FORE(i,b,e) for(int i=(b);i>=(e);i--) #define ls

2016-07-22 23:13:03 412

原创 #hihocoder #1092 : Have Lunch Together

BFS{#ifdef DEBUG_ ifstream fin("G:/1.txt");#define cin fin#endif int N,M; cin>>N>>M; FOR(i,0,N-1){ cin>>map[i]; } FOR(i,0,N-1) FOR(j,0,M-1){ dis[i

2016-07-17 23:40:11 372

原创 hihocoder #1059 : String Matching Content Length

题解里面很详细。 复习了最长公共子序列——动态规划: 记dp[i][j]为A的前i个字符和B的前j个字符的最长公共子序列, 若Ai=Bj,则dp[i][j]等于dp[i-1][j-1]+1; 若Ai≠Bj,则dp[i][j]为max(dp[i-1][j],dp[i][j-1])。如果Ai属于最长公共子序列,那么Bj必定和最长公共子序列无关,则dp[i][j]==dp[i][j-1],Bj同理

2016-07-15 23:59:16 520

原创 hihocoder #1061 : Beautiful String

#include<fstream>#include<iostream>#include<string>#include<math.h>using namespace std; #define FOR(i,b,e) for(int i=(b);i<=(e);i++) #define FORE(i,b,e) for(int i=(b);i>=(e);i--) #define max

2016-07-15 11:29:55 475

原创 hihocoder #1196 : 高斯消元·二

#include<fstream>#include<iostream>#include<string.h>#include<math.h>using namespace std; #define FOR(i,b,e) for(int i=(b);i<=(e);i++) #define FORE(i,b,e) for(int i=(b);i>=(e);i--) #define m

2016-07-13 23:14:19 386

原创 hihocoder #1195 : 高斯消元·一

#include<fstream>#include<iostream>#include<string.h>#include<math.h>using namespace std; #define FOR(i,b,e) for(int i=(b);i<=(e);i++) #define FORE(i,b,e) for(int i=(b);i>=(e);i--) #define m

2016-07-13 11:41:05 426

原创 拓扑排序hihocoder#1174&&#1175

#1174#include<string.h> #include<queue>#include<iostream>#include<stdio.h>#include<fstream>using namespace std; #define FOR(i,b,e) for(int i=(b);i<=(e);i++) #define FORE(i,b,e) for(int i=(b

2016-06-23 14:23:46 274

原创 《自己动手写操作系统》小结

一、保护模式 在初始状态下寻址方式为实模式,CS:IP = CS*10+IP的方式确定物理地址。载入gdt后,CS表示 gdt中的偏移量,CS:IP相当于类似gdt[cs].base+IP的形式寻址。 组成:GDT:由多个段描述符(8bytes)组成,每个段描述符包含段的基地址,界限,属性。 段选择子(2bytes):段选择符的相对GDT地址的偏移量

2016-05-11 22:34:00 733

原创 IOCP完成端口模型

//iocp.cpp//VS2012//主要参考windows网络编程第二版第五章及各个关于完成端口的博客解释#include"iocp.h"CIocp::CIocp(){ m_nWorkerThread = new HANDLE[16]; m_pkey = new COMPLETIONKEY;}void CIocp::main_process(){ if(0!=w

2016-04-12 17:21:25 584

原创 Operating Systems: Three Easy Pieces阅读笔记(五)LFS

Log-structureed File System1.buffer all updates in a memory segment 2.write to free block locations sequentially(never overwrites) 3.inodes和data blocks分散在硬盘各处,由imap中换算出inodes的地址,为了便于更新,imap就在最近一次更新的i

2016-03-03 19:34:23 1636

原创 Operating Systems: Three Easy Pieces阅读笔记(四)FILE SYSTEM- VSFC&FSCK

very simple file system(VSFS)superblock: 记录了系统的类型,inodes数量,data region数量,inodes的起始位置,还包含指向free block的指针 bitmap: 用位表示block的使用情况,0表示free,1表示in-used,用两个bitmap: 分别代表inodes和data region inodes:

2016-03-01 20:03:13 749

原创 Operating Systems: Three Easy Pieces阅读笔记(三)DISK-RAID

Redundant Arrays of Independent Disks,RAID下面以与单块硬盘的性能的倍数比表示RAID的性能 raid 0 没有镜像和按位检查的能力,block在不同的磁盘上带状分布,以尽量避免同一时间只对一个磁盘写入,连续读写和随机读写的效率都能提高N倍: disk0 disk1 disk2 disk3

2016-02-28 20:59:15 470

原创 Operating Systems: Three Easy Pieces阅读笔记(二)concurrence-lock&condition val&semaphores

**concurrence: lock** 1。不能用简单的flag(如int的0、1置换)实现lock,原因在于实现lock的过程本身就不是原子操作,存在被打断的可能。 2。spin lock 过于浪费cpu时间片,在已有线程获取锁的情况下,其余线程只能消耗光一个时间片 3。Lock With Queues, Test-and-set, Yield, And Wakeup

2016-02-27 19:29:17 693

原创 模板元编程第九章练习(非答案)

9-0#ifdef NO_MI_EBOtemplateclass storage;templateclass storage_imp:private T{protected:public: storage_imp(T const& t):T(t){} T const& get_t(){return *this;}};templateclass storage:public

2015-12-13 13:51:03 364

原创 hihocoder#1103 栈

#include<iostream> #include<string> #include<string.h>#include<algorithm> #include<fstream>#include<stack>#include<map>using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|

2015-12-06 22:29:27 274

原创 模板元编程第六章课后习题(非答案)20151206

//6-0template<bool,class T1,class T2>struct T1smallest{ typedef T1 type;};template<class T1,class T2>struct T1smallest<false,T1,T2>{ typedef T2 type;};template<class T1,class T2>struct T

2015-12-05 16:25:14 735

原创 模板元编程第五章练习(非答案)

“` 5-1 //5-1 template

2015-12-03 13:13:58 299

原创 模板元编程第四章练习(非答案)

4-0using namespace std;using namespace boost;using namespace mpl::placeholders;templatestruct is_a{ static const bool value = 0;};templatestruct is_b{ static const bool value = boost::i

2015-11-30 12:42:30 354

原创 模板元编程 第三章课后练习(非答案)

3-0templatestruct cal{ BOOST_STATIC_ASSERT((N%10>=0)); BOOST_STATIC_ASSERT((N%10<2)); static const int val = 2*cal::val+N%10;};template<>struct cal{ static const int val = 0;};3-1,3-2

2015-11-26 12:45:25 456

原创 hihocoder #1093

这道题复习了下spfa算法用scanf勉强过的,没有做优化,spfa算法每一步应该是取队列中最小距离的点开始搜索的,这样消除了重复、无效的搜索,但是懒得写最小堆了。。。#include #include #include #include#include#includeusing namespace std; #define lch(i) ((i)<<1)

2015-11-21 21:45:51 326

原创 模板元编程 第二章练习(非答案)

2-0.编写一个一元元函数 add_const_ref,如果T是一个引用类型,就返回T,否则返回T const&。编写一个程序来测试你的元函数。提示:可以使用boost::is_same来测试结果。boost::add_const 对引用没有效果。。#ifndef ITER_SWAP_H#define ITER_SWAP_H#include#include#include#in

2015-11-19 20:12:24 466

原创 hihocoder #1258 签到题

#pragma warning(disable:4996)#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1

2015-11-15 21:31:58 362

原创 hihocoder #1255 枚举

开始看错以为是4个三个长方形组合只有两种情况,一条直线或“1+2”:#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i)

2015-11-15 20:49:10 423

原创 hihocoder #1249 枚举

求出从每一条线分割 坐标绿洲的面积#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #

2015-11-15 20:46:06 456

原创 hihocoder 1058 线段树

#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i))

2015-11-14 12:53:37 628

原创 hihocoder #1057

程序要满足1、不能交叉,即一个程序要么完全包含在另一程序时间里面,要么互不相交2、时间严格递增#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<

2015-11-13 14:14:17 322

原创 hihoCoder #1054 dfs

深搜按条件剪枝:1、与下一个点间不能有没经过的点2、遇到预设折线直接沿路搜索仅当num>=4和预设直线全部经过才增加sum#include #include#include #include #include#include #include#include#include#includeusing namespace std; #defi

2015-11-12 16:27:07 310

原创 hihocoder #1099 枚举

本来解题报告已经很详细了,然而还是留了一个坑。用相对位置标记最多二十个星星的位置,但是如果这样。。。。。。。。。。。。。#。。。。#。只有右下角四个位置有用,也就是说其他的。。有没有都是一样的,直接把星图简化成#。#。#include #include#include #include #include#include #include#

2015-11-09 20:33:22 369

原创 poj 1020dfs

从一个顶点开始,一行一行堆,先堆灵活度小的(大体积),后堆灵活度大的(小体积)。不管怎么堆,dfs肯定能遍历所有堆法,但是用以上的堆法可以更快速的找到答案比如从左上角开始,先堆满第一行,再第二行……知道n个小方块都塞进去了,表示找到答案,可以return了。总结:做dfs一定一定要注意好完全的回溯,如果回溯,所有与判断有关的全局变量一定要还原,这题由于没有注意到高度的还原WA2

2015-11-09 16:30:34 387

原创 poj1017 水

#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i))

2015-11-08 10:30:25 166

原创 poj 1016水

#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i))

2015-11-07 22:51:01 300

原创 poj 2244 约瑟夫环

这里在推一遍公式由于每次都是由1开始,所以可以把1排除掉,直接将城市数变成k-1,把2当作1.假设上一轮选中k=ANS[I-1],那么剩下的从k+1开始:k+1 1…… ……n n-kn+1 (就是原来的1)n-k+1…… ……k+n-2 n-1本轮X 下一轮X‘但是本轮只剩下n-1个数了,而编号还是从1~n(中间缺少了ANS[i-1]),中断了,而下一

2015-11-07 11:30:25 402

原创 poj 1013 枚举

因为答案只有12*2 =24种,枚举每一种可能就可以了#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i

2015-11-06 19:58:39 253

原创 poj 1012 约瑟夫置换

一开始用的不是约瑟夫置换:关键是要储存之前求出的值。因为只有13个数,所以也可以另开程序手动求出所有k值塞进数组,这样每次查找都是o(1),0ms了首先m值必须在[k+1+2kn,2k(n+1)],n=0,1,2……之间,然后枚举。#include #include#include #include #include#include

2015-11-06 13:08:57 445

原创 poj 1011

#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i))

2015-11-05 20:25:50 275

原创 poj 1010 dfs

数据少,比较简单的dfs#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sq

2015-11-05 11:42:37 275

转载 poj 1009

这题只有像素变化的地方,该点包括周围八个点都有变化的可能。举个例子:。。。。。。。。。。 ,,,,,,,,,,= =  = =  =  =  =  =  =  =假设,的四周都没有像素变化的点,那么所有,的编码值都等于max(abs(,减。),abs(,减=)引用别人一个清晰的代码传送门:http://blog.csdn.net/lyy289065406/article

2015-11-04 22:50:23 346

原创 poj 1008 水

注意边界#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i

2015-11-03 23:01:47 280

原创 poj 1007 归并+STL

#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i))

2015-11-03 20:43:41 234

原创 poj 1006 暴搜

这道题要注意前三个数不是“第一次出现”,因此当前日期可能小于前三个数,所以要保证从current year 的第一个 peak 遍历起#include #include#include #include #include#include #include#include#include#includeusing namespace std; #define l

2015-11-02 21:07:28 291

空空如也

空空如也

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

TA关注的人

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