打开文件流:
FileStream fs = new FileStream(@"d:\2.txt",FileMode.Open,FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs);
定位指针:
sw.BaseStream.Seek(0, SeekOrigin.End);
写缓冲区:
sw.Write(string a);
写入文件:
sw.Flush();
最后关闭文件:sw.Close();
posted @
2010-03-02 20:56 蔗晨 阅读(168) |
评论 (0) |
编辑 收藏
看到不熟悉的题,不要以为都是有专门的算法(特别是图论的),今天那道Ranking the Cows其实就是很简单的一道。我还以为是专门的图论的算法,就没去想。
注意__int64的最大值可以达到9,000,000,000,000,000,000多。
对线段树的理解还是不够深入。处理儿子的下标有2中处理方法,各有所长。
插入线段前,把数据先排序,能够避免线段树的递归。复杂度降低。
对各种算法的复杂度一定要知道。今天看到那个矩形面积的题,一看坐标的范围那么大,就直接用了矩形切割。但其实N是4000,矩形切割是N的平方。显然超时。
对于n特别大的,比如5000,就要想想贪心了,想想策略。
posted @
2009-08-29 01:03 蔗晨 阅读(144) |
评论 (0) |
编辑 收藏
一个低级失误导致浪费了很多时间,后面的题没时间做了。一位数字是0到9,我写成了1到9.
在计算几何中,用向量的方法求点的坐标方便,用平面几何的方法会出现平方。
posted @
2009-08-28 12:46 蔗晨 阅读(125) |
评论 (0) |
编辑 收藏
今天我写的很失败。
一道简单的暴搜找路径,找不出哪里错了。还好sweet重写马上就过了。
还有一道记忆化搜索的题,最优解是很快写出来了。不过回溯路径的时候出了点小问题。后来用来sxj的方法过了。其中犯了一个低级错误。。。调试了半天。还好sxj调试能力强。学到了很多调试的方法。
有个很容易出错的地方:
向上递归父亲节点的时候,
while(res--)
{
cout<
posted @ 2009-08-25 18:51 蔗晨 阅读(144) |
评论 (0) |
编辑 收藏
1. 找到了原来 二分枚举 的模板的一个错误。
2. 对矩阵的坐标搞混了。以后每次这样:
A[x][y]指第x行,第y列。
注意 向右走一格的时候是y+1。因为向右走行数不变,列数变。也可以画一个坐标辅助。坐标向右是y方向。向下是x方向。
A[M][N]是是M行,N列。
这次选题有些失误。
posted @
2009-08-25 18:41 蔗晨 阅读(152) |
评论 (0) |
编辑 收藏
pku2951
1属于S,若X属于S,则2*X+1,3*X+1也属于S。
求S的前10000000个元素(从小到大)。
量太大,只能用O(n)的。
用表记录,最后不可能用排序的,所以要一开始放的时候就是从小到大。
用t2记录 2*X+1 方法增加数的最大的一个的下标。
用t3记录 3*X+1 方法增加数的最大的一个的下标。
只要比较a[t2]*2+1与a[t3]*3+1哪个小,小的一个放入a。t2或t3加1.
这种方法适用于扩展方法有限,且要按序排放的题。用标记头记录各种扩展方法的状态。
posted @
2009-03-12 20:57 蔗晨 阅读(122) |
评论 (0) |
编辑 收藏