摘要: 【题目大意】 有N个连续的任务,完成每个任务需要一定的时间,有K个可以同时工作的机器,问最少要多长时间可以完成所有任务?注意任务的安排的连续的,安排在同一台机器上的任务顺序是连续的,完成所有任务的最少时间就是耗时最长的那个机器所需的时间。 例如: N=5 K=2 5 4 7 3 2 最小的安排是 (5 4)( 7 3 2) 12 。【问题求解】 我想到了一种DP方法,f[i][j] 表示前i个任务用j个机器需要的最短时间;sum[v]表示前v项和。 f[i][j]=min(min(f[q][j]+sum[i]-sum[q]),min(max(f[t][j-1],sum[i]-... 阅读全文
posted @ 2013-03-24 22:44 wuminye 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 网络流 (Network Flow) 是指在一个每条边都有容量 (Capacity) 的有向图分配流,使一条边的流量不会超过它的容量。(边有附带容量的图称为网络)一道流必须符合一个结点的进出的流量相同的限制,除非这是一个源点 (Source) ──有较多向外的流;或是一个汇点 (Sink) ──有较多向内的流。一个网络可以用来模拟道路系统的交通量、管中的液体、电路中的电流或类似一些东西在一个结点的网络中游动的任何事物。 设 是一个有限的有向图,它的每条边 都有一个非负值实数的容量 。如果 ,我们假设 。我们区别两个顶点:一个源点 和一个汇点 。一道网络流是一个对于所有结点 ... 阅读全文
posted @ 2013-03-21 10:19 wuminye 阅读(523) 评论(0) 推荐(1) 编辑
摘要: 管道及重定向就是Linux多命令协作的基础机制Linux的Shell对数据流进行以下分类定义: stdin 标准输入 编号为:0 默认:键盘 stdout 标准输出 编号为:1 默认:终端 stderr 标准错误 编号为:2 默认:终端重定向用来控制终端数据流: > 将标准输入以覆盖形式重定向到指定文件,如:ls > outfile >> 将标准输入以追加形式重定向到指定文件,如:ls >> outfile < 重定向标准输入 如:grep linuxcast < /etc/passwd 2> 重定向标准错误 2>&1 将标准 阅读全文
posted @ 2013-03-20 13:45 wuminye 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 子网掩码与IP地址同等长度,与IP地址每一位一一对应,IP地址中对应子网掩码为1的位为网络部分Linux中网卡标识为eth,第一块网卡叫做eth0,第二块叫做eth1,以此类推使用lspci或lsusb命令可查看网卡物理信息命令ifconfig (-a) 用以查看网卡信息命令ifup、ifdown用以启用、关闭一个网卡接口 ifup eth0 ifdown eth0一般使用setup命令设置网卡信息网卡的配置信息保存在下面目录中: /etc/sysconfig/network-scripts/ 配置文件为ifcfg-网卡名称,如:ifcfg-eth0DNS服务器IP保存在: /etc/reso 阅读全文
posted @ 2013-03-20 13:28 wuminye 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 操作系统通过用户、组概念来管理使用计算机的人用户代表一个使用计算机的使用者,操作系统通过用户概念限制一个使用者能够访问的资源每个用户有一个用户名和一个用户ID(UID),用户ID是操作系统真正用来管理标识用户的,UID为32位长,从0开始,最大一般到60000。用户分为:root用户(uid为0)、系统用户(uid 1~499)、普通用户(uid 500+)每个用户有一个家目录,用来保存用户私有数据,root用户的家目录为/root,普通用户家目录为/home下与用户名相同的目录每个可登陆用户拥有一个指定的shell【用户和组】一个用户可以属于一个主组,可以属于一个或多个附属组用户、组信息保存 阅读全文
posted @ 2013-03-20 13:04 wuminye 阅读(188) 评论(0) 推荐(0) 编辑
摘要: IOCP是一种典型的异步IO设计范式,简单的说就是当发起一个IO操作后,不等待操作结束就立刻返回,IO操作的结果在另外一个队列上得到通知并回调。 异步IO本身并不是一种高级的东西。相反的,在操作系统底层,所有的IO请求都是异步发起的,然后通过中断处理对结果进行处理,中断是一种在硬件层面上的 回调机制。因为异步IO在编程上相当困难,特别是对于那些不具备高级特性的语言来说。所以在设计操作系统时,设计师会将这些底层IO的复杂性封装起来,抽 象成容易使用的同步IO调用供上层使用。同步IO的意思是IO操作发起后,调用会等待IO操作结束才返回结果(阻塞模式),或者当IO不能立刻完成时返回 错误(非阻塞.. 阅读全文
posted @ 2013-03-19 21:28 wuminye 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 竞赛中有这样一类问题:求给定区间中,满足给定条件的某个D进制数或此类数的数量。所求的限定条件往往与数位有关,例如数位之和、指定数码个数、数的大小顺序分组等等。题目给定的区间往往很大,无法采用朴素的方法求解。此时,我们就需要利用数位的性质,设计log(n)级别复杂度的算法。解决这类问题最基本的思想就是“逐位确定”的方法。通常的数位dp可以写成如下记忆化搜索的形式: 1 int dfs(int i, int s, bool e) 2 { 3 if (i==-1) return s==target_s; 4 if (!e && ~f[i][s]) return f[i][s]... 阅读全文
posted @ 2013-03-16 20:53 wuminye 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 我们最常用的二叉堆,是最常用的优先队列,它可以在O(logN)内实现插入和删除最小值操作。但是对于合并两个有序的优先队列,二叉堆就显得力不从心了。 左偏树是一种可并堆(Mergeable Heap), 意思是可以在O(logN)时间内完成两个堆的合并操作。左偏树(Leftist Tree),或者叫左倾树,左式树,左式堆(Leftist Heap),左堆。顾名思义,它好象是向左偏的,实际上它是一种趋于非常不平衡的二叉树结构,但却能够实现对数级的合并时间复杂度。【左偏树的定义】 左偏树(Leftist Tree)是一种可并堆的实现。左偏树是一棵二叉树,它的节点除了和二叉树的节点一样具有左右... 阅读全文
posted @ 2013-03-15 11:08 wuminye 阅读(792) 评论(0) 推荐(0) 编辑
摘要: 题意:孩子们在幼儿园非常喜欢老虎抓小鸡的游戏。但是有一个比较大的问题:每一个人都想演老虎的角色。因此老师提出一个建议:选举。每个孩子手里面有一些漂亮的手帕,如果他认为某个人适合老虎的角色,他就拿出一个手帕给他,也就是说得到手帕就是得到支持的一票。注意支持是可以传递的。最后得到支持票数最多的人将扮演老虎的角色。(注意:如果A赢得B的支持,A只能得到B的一票,不管B有多少票,既是说A = B得到的选票 + 1,A不能投自己一票)如果多个人获得同样多的票,我们称他们都是赢家。 例子:三个人 A,B,C。A拿一个手帕给B, B拿一个手帕给C, 因此 C得到2个手帕,C被选为扮演老虎。先输入一个测... 阅读全文
posted @ 2013-03-14 21:23 wuminye 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 参考来源:http://www.byvoid.com/blog/scc-tarjan/[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量。直接根据定义,用双向遍历取交集的方法求强连通分量,时间复杂度为O(N^2+M)。更好的方法是Kosaraj 阅读全文
posted @ 2013-03-12 21:25 wuminye 阅读(157) 评论(0) 推荐(0) 编辑