- 博客(35)
- 收藏
- 关注
原创 poj_3386 Frequent values
#include #include #include #include #include #include using namespace std;const int maxn = 100010+100;int dp_max[maxn][20];int f[maxn];int n; int num[maxn];void ST(){ for (int i = 1; i
2014-12-30 11:27:53
250
原创 poj-1330 Nearest Common Ancestors
#include #include #include #include using namespace std;const int maxn = 10000+1000;std::vector tree[maxn];int indeg[maxn];int root;int ancestor[maxn];bool vst[maxn];void BuildTree(int no
2014-12-17 19:22:36
217
原创 堆排序
#include #include #include using namespace std;void Adjust(int arry[], int index, int len){ int lchild = index*2; int rchild = index*2+1; int max = index; if (lchild arry[max]) { max = l
2014-12-12 16:45:41
205
原创 4-在二元树中找出和为某一值的所有路径
#include #include #include #include #include #include using namespace std;struct BinaryTreeNode{ BinaryTreeNode *left; BinaryTreeNode *right; int m_value; int sum; vector s;};queue q;
2014-12-08 16:23:07
207
原创 3-求子数组的最大和
#include #include #include #include using namespace std; int main(int argc, char const *argv[]){ std::vector v ; v.push_back(1); v.push_back(-2); v.push_back(3); v.push_back(10); v.push_b
2014-12-08 14:13:29
190
原创 2-设计包含min函数的栈
#include #include #include using namespace std;struct StackMin{ stack s; stack min; void push(int value) { s.push(value); if (min.empty() == true || min.top() >= value) { min.push(v
2014-12-08 14:11:38
217
原创 1-排序树变成双向链表
#include #include using namespace std;struct BStreeNode{ int m_value; BStreeNode *left; BStreeNode *right;};void addBSTreeNode(BStreeNode *&pCurrentNode, int value){ if (pCurrentNode == N
2014-12-07 15:00:54
197
原创 poj_2309 BST
lowbit 的应用,思路大于代码。#include int main(){ int N; scanf("%d",&N); while(N--) { int a; scanf("%d",&a); int b = a & (-a); b--; printf("%d %d\n",a-
2014-12-02 20:58:39
219
转载 poj_2051 Argus
堆排序,可以用stl里的函数,但是还是复习一下,堆排序的原理吧,先贴代码,再说堆的原理。#include #include #include #include #include #include using namespace std;const int maxn = 1000+10;struct Node{ int id; int time; int
2014-11-29 21:55:28
232
原创 poj_2481 Cows
#include #include #include #include using namespace std;const int maxn = 100000+100;int m;struct cow{ int s; int e; int index;};cow cw[maxn];int ans[maxn];int arr[maxn];bool cmp(cow
2014-11-27 20:18:28
231
原创 poj_1631 Bridging signals
最终转化为最长上升子序列。#include #include #include #include using namespace std;const int maxn = 40000+100;int n;int m;int stack[maxn];int a[maxn];int b_search(int low,int high,int goal){ while(lo
2014-11-27 20:05:48
187
原创 Lcs hdu1159 Common Subsequence
#include #include #include using namespace std;const int maxn = 1300;char str1[maxn];char str2[maxn];int dp[maxn][maxn];int Lcs(){ memset(dp,0,sizeof(dp)); int length1 = strlen(str1+1); i
2014-11-13 22:15:30
212
转载 践踏堆栈'
践踏堆栈'[C语言编程] n. 在许多C语言的实现中,有可能通过写入例程 中所声明的数组的结尾部分来破坏可执行的堆栈.所谓'践踏堆栈'使用的 代码可以造成例程的返回异常,从而跳到任意的地址.这导致了一些极为 险恶的数据相关漏洞(已人所共知).其变种包括堆栈垃圾化(trash the stack),堆栈乱写(scribble
2014-09-09 18:11:29
162
原创 hdu1010 Tempter of the Bone
#include #include #include #include #include #define N 8using namespace std;int row;int col;int step;int sx,sy,ex,ey;bool can;char maze[N+1][N+1];int dir[4][2]={1,0,-1,0,0,1,0,-1};void D
2014-05-16 01:24:37
182
原创 操作系统——请求分页
[问题描述] 设计一个请求页式存储管理方案,为简单起见。页面淘汰算法采用 FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中修改状态位。而不再判断它是否被改写过,也不将它写回到辅存。[基本要求] 页面尺寸1K,输入进程大小(例如5300bytes),对页表进行初始化,页表结构:页 号物理块号状态位0
2012-12-16 10:42:24
426
原创 操作系统——银行家算法
1银行家分配算法,顾名思义是来源于银行的借贷业务,一定数量的本金要应多个客户的借贷周转,为了防止银行加资金无法周转而倒闭,对每一笔贷款,必须考察其是否能限期归还。在操作系统中研究资源分配策略时也有类似问题,系统中有限的资源要供多个进程使用,必须保证得到的资源的进程能在有限的时间内归还资源,以供其他进程使用资源。如果资源分配不得到就会发生进程循环等待资源,每个进程都无法继续执行下去的死锁现象。把
2012-12-16 10:34:33
230
原创 操作系统——进程调度
1、进程调度算法:采用动态最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)。 2、每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名---进程标示数 ID优先数 PRIORITY 优先数越大优先权越高到达时间---进程的到达时间为进程输入的时间。、进程还需要运行时间ALLTIME,进程运行完毕ALLTIME=0,已用CPU时间-
2012-12-16 09:40:44
309
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人