题目大概说有n只猴子,猴子们在某个时间段需要喝vi时间的水,各个单位时间段最多允许m只猴子同时喝水,问猴子们能否成功喝水并输出一个可行的方案,输出方案的时间段区间要从小到大排序并且合并连续的区间. 首先应该能联想到这是最大流的模型.猴子有100只,不过区间的点达到50W,这时考虑离散化,离散化后最多就200个点也就是199个区间. 于是猴子与区间可以作为容量网络的点,新建源点和汇点. 源点向猴子连容量vi的边,区间向汇点连容量为区间包含单位时间段数*m的边. 各个猴子喝水时间段包含的区间,由猴子…
题目大意:有n只猴子,每只猴子都有一组参数(v,a,b),表示这只猴子在时间段[a,b]之间必须要喝v个单位水,并且每个时间单位只能和一个单位水,每次至少喝一个单位.但是只有一个水池,并且这个水池最多只允许m只猴子同时喝水.问能否满足所有的猴子喝水,若能,输出任意一种可行的方案. 题目分析:将每个猴子和每个喝水区间视作节点.将每只猴子向它对应的区间连弧,容量为该区间上能喝水的总单位数:从源点向每只猴子建弧,容量为对应猴子的总需求量:从每个区间向汇点建弧,容量为该区间单位长度乘以m,表示在该区间最…
题意:雪雪是一只猴子.它在每天的 2:00 —— 9:00之间非常渴,所以在这个期间它必须喝掉2个单位的水.它可以多次喝水,只要它喝水的总量是2.它从不多喝,在一小时内他只能喝一个单位的水.所以它喝水的时间段可能是2:00 ——4:00,或者3:00——5:00,或者7:00——9:00.甚至喝两次,第一次2:00——3:00,第二次8:00——9:00.但是它不能在1:00——3:00喝水,因为在1:00时它不渴,也不能在8:00——10:00喝水,因为9:00必须结束.一共有n(n <= 1…
原题链接:http://codeforces.com/gym/100733/problem/I 题意 有两颗树(只是树,不是数据结构),每棵树上有不同高度的树枝,然后有m只猴子在某棵树的前m高的树枝上睡觉.早上的时候,他们要到地上,但他们只能从一棵树上跳到另一棵树上,并且跳的高度差也有限制,每个树枝仅能被一只猴子踩过.问你,猴子们是否能够跳到另一棵树最低的m个树枝上. 题解 就每个点拆成两个点,然后连边,所有边的容量都为1,然后跑发最大流,考察是否为滿流即可. 代码 #include<iostr…
题目描述 洞穴学者在Byte Mountain的Grate Cave里组织了一次训练.训练中,每一位洞穴学者要从最高的一个室到达最底下的一个室.他们只能向下走.一条路上每一个连续的室都要比它的前一个低.此外,每一个洞穴学者都要从最高的室出发,沿不同的路走到最低的室. 限制: 1.起点连接的通道同一时间只能容纳一个人通过 2.终点连接的通道同一时间只能容纳一个人通过 3.其他边都很宽敞,同一时间可以容纳无限多的人 问:可以有多少个人同时参加训练? 输入 第一行有一个整数n(2<=n<=200),…
字节型缓冲流,BufferedOutputStream默认缓冲区大小 8192字节byte,满了自动flush() @Test public void test6(){ File srcFile = new File("FLAMING MOUNTAIN.JPG"); File destFile = new File("FLAMING MOUNTAIN2.JPG"); FileInputStream fis = null; FileOutputStream fos =…
使用C#处理基于比特流的数据 0x00 起因 最近需要处理一些基于比特流的数据,计算机处理数据一般都是以byte(8bit)为单位的,使用BinaryReader读取的数据也是如此,即使读取bool型也是一个byte.不过借助于C#基础类库中提供的一些方法,也实现了对基于比特的数据的读取.任务完成后觉得基于比特的数据挺有意思,自己试了下用7比特和6比特编码常用ASCII字符.最后把一点新的写成博客,一方面做个记录,另一方面希望对有类似需求的园友有所帮助. 0x01 比特流数据的读取 假设我们有一…
本篇主要介绍HTML DOM中的事件流和事件委托. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4. HTML 事件(四) 模拟事件操作 目录 1. 事件流 1.1 何为事件流 1.2 事件流的三个阶段 1.3 addEventListener()注册事件流的阶段 1.4 阻止事件流的传播 2. 事件委托 2.1 何为事件委托 2.2 ul.li场景示例 2.3 JQuery的事件委托 2.3.…
FILE文件流用于对文件的快速操作,主要的操作函数有fopen.fseek.fread.fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满足编程中的需要.以下分别进行说明,还有他们使用时的注意事项 fopen 函数原型    FILE * fopen(const char *path,cost char *mode) 作用:打开一个文件,返回指向该文件的指针 参数说明:第一个参数为欲打开文件的文件路径及文件名,第二个参数表示对文件的打…
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? 不带缓冲的操作,每读一个字节就要写入一个字节. 由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲的流效率很低. 带缓冲的流,可以一次读很多字节,但不向磁盘中写入,只是先放到内存里. 等凑够了缓冲区大小的时候一次性写入磁盘,这种方式可以减少磁盘操作次数,速度就会提高很多! 这就是两者的区别…