/*
* 讲一个图片文件按照指定的大小切割成多个碎片文件。
* 方法:
* 循环读取数据到缓冲区,存放到不同的文件中就OK的啦
*/
package ioTest.io3;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class S...
分类:
编程语言 时间:
2014-05-10 09:55:32
阅读次数:
322
Codeforces Round #244 (Div. 2)D (后缀自动机)
(标号为0的节点一定是null节点,无论如何都不能拿来用,切记切记,以后不能再错了)
这题用后缀自动机的话,对后缀自动机的很多性质有足够深刻的理解。没想过后缀数组怎么做,因为不高兴敲。。。。
题意:给出两个长度均不超过5000的字符串s1,s2,求这两个串中,都只出现一次的最短公共子串。
解题思路:求的是公共子...
分类:
其他好文 时间:
2014-05-10 09:17:40
阅读次数:
313
看似dp,但是数据太大,不过n很小,可以暴力解决。
由于30个数组合情况太多,所以可以分成两边,首先预处理前n/2个数能组成哪些数,并且最小消耗多少砝码,map保存下来。
然后处理右边能组合成什么数,相加就够了。
注意这样会漏掉两种情况,就是光一边就能组成最终答案的(因为map没有存数也是0),特殊处理一下就行。
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-05-10 09:16:39
阅读次数:
245
题意:坐飞机从 a 地到 b 地 ,在最多停留s次时 , 最小花费是多少?
在题目给出的地点 , 是按从远到近给出的 , 并且给出的航班中 , 不会有从远地点到近地点的航班。
因此从这可以看出 , 题目给的图是一个DAG图 , 那么我们就能用toposort来找最短路。
注意: 会有重边
解法:
构造一个数组 d[i][j] , 表示从开始点 s 到点 i...
分类:
其他好文 时间:
2014-05-10 08:51:56
阅读次数:
391
题意:
给你ABCD四个集合,集合中数的个数都为N(N
当然你可以尝试枚举所有的组合,绝对可以计算出结果,大概有N^4种吧,如果你有足够的时间还是可以算出来的,哈哈。
当然我不是用上面一种方法计算的,那样算肯定超时。 我的做法是求出所有a+b 到ab数组中, 和所有 c+d到cd数组中,然后排序,枚举每个ab,用二分在cd中查找有没有可能组成0。 有个问题就...
分类:
其他好文 时间:
2014-05-10 08:40:14
阅读次数:
278
先澄清几个误区
1、CharSequence 不是 Char :有些小朋友根据参数的类型选择Replace或ReplaceAll方法
2、Replace 和 ReplaceAll :并不是有些小朋友想象的Replace只替代一个出现的字符,ReplaceAll 替换所有字符
3、循环替换的误区
String eventJson = ".............";
Iterator<Entry> itPro = map.entrySet().iterator();
...
分类:
其他好文 时间:
2014-05-10 08:39:17
阅读次数:
257
好,这篇我们来讲解无限循环滚动背景,这个知识已经被讲到烂了,我以前的文章也介绍过,所以就不那么详细地说明了。
笨木头花心贡献,啥?花心?不呢,是用心~
为什么是循环滚动背景?
用循环滚动背景,其实是因为我想偷懒,因为这样我只需要准备一张图片就可以了。
我们最终要创建这样的背景,如图:
为什么是循环滚动背景?
用循环滚动背景,其实是因为我想偷懒,因为这...
分类:
其他好文 时间:
2014-05-10 08:38:44
阅读次数:
469
题意:两两相邻的元素可以交换,问最小交换次数使得数列为升序。
思路:归并排序分治法。看到琦神又用了树状数组的方法求。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define P...
分类:
其他好文 时间:
2014-05-07 08:54:01
阅读次数:
488
import org.junit.Test;
public class AllSort {
public void permutation(char[] buf, int start, int end) {
if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可
for (int i = 0; i <= end; i++) {
...
分类:
编程语言 时间:
2014-05-07 08:26:47
阅读次数:
364
找出一个数组中的三个数,三个数不能组成三角形。
三个数不能组成三角形的条件是:a + b
两边和小于第三边。
这个问题属于三个数的组合问题了。暴力法可解,但是时间效率就是O(n*n*n)了,很慢。
不过既然是组合问题就必定可以使用排序后处理的方法降低时间效率的。
这里降低时间效率的方法是:
选一个最大的数c,然后选两个小数a和b,其中a
这样可以把时间效率降到O(n*n)...
分类:
其他好文 时间:
2014-05-07 06:32:23
阅读次数:
289