您正在查看 "Infomatics" 分类下的文章
2010年10月20日 星期三 下午 1:04
迷宫有N个房间,各有一把钥匙,放在其中某个房间。当然,没有钥匙时,可以把门炸开。为了打开所有门,最少要炸几次。于是转化成特殊有向图(每个顶点有且只有一个出边)中环的个数。由于N最大10^6,要用快速方法。
从某点出发,将经过的点标为 灰色,直到走到一个灰色点(即发现一个环)或黑色点(以前走过)。然后,将所有灰色点都变为黑色。重复。用相邻二进制位表示黑色、灰色、白色。
#include |
2010年10月01日 星期五 下午 3:28
iterative deepening A star 控制深度搜索,适合于搜索空间无限的情况。
控制深度的深度优先搜索,并可以估计搜索深度并及时剪枝,利用栈及分数类。通分时有极可能溢出,用int64.
当前分数1/e,目标a/b,已完成c/d,则至少还需要(a/b-c/d)*e个埃及分数
竟然有150行代码。。。
#include<stdio.h> #include<math.h>
|
2009年11月18日 星期三 下午 8:47
适应键盘、鼠标、屏幕,调整桌椅等。放松。做好准备。
先看一遍所有的题,判断难度,找出最简单的(送分的)、稍难但会做的、较难有一点想法的 和 根本不会的。根据数据范围、卡的时间判断简单题是否真送分(是否可以暴力、枚举,还是需要dp、数学)。
对于选好的简单题,思考做法,根据思路手推一下样例,看看想的对不对,并且认真看题,了解数据范围,还要考虑极端数据、陷阱等。开始打代码之前先想好要用的库、变量,不要边写边改。写好之后检查数据范围,初始化,下标范围,- -不要写成++。编译之前认真阅读,在关键地 |
2009年11月15日 星期日 下午 9:00
一.语法
类的声明后加分号
class X{
..........
};
2.判断相等:a==b
3.很大的数组开到main外,作为全局变量。
4.for(i=0;i<n;i++){......;} 不要写成 for(i=0;i<n;i++);{......;}
5.多重条件判断:if (exp1&&exp2&&exp3...) 第一个不满足后面就不做了,且前面的比后面的先做,所以注意摆放顺序(尤其是有些表达式会改变其他表达式结果时);
|
2009年09月29日 星期二 下午 8:37
错位全排列数S(n)=(n-1) * (S(n-1)+S(n-2))
或 n!*(1-1/1! + 1/2! -1/3!....+1/n!)
=n!* e^(-1) =n!/e
#include<stdio.h> int main(){ int s[ |
2009年09月23日 星期三 下午 8:46
#include<stdio.h> #include<limits> using namespace std;
const int SIZE=100, |
2009年09月21日 星期一 下午 9:38
#include<stdio.h> #include<limits> using namespace std; const int SIZE=100, |
2009年09月19日 星期六 下午 3:34
10^8以下的素数1.8秒,10^9以下的素数21.3秒
#include<stdio.h> #include<time.h> #include<string.h> const unsigned int N= |
2009年08月27日 星期四 下午 4:42
template <class T> bool List<T>::del(int pos |
2009年08月27日 星期四 下午 4:42
双向链表。指针的操作真麻烦。
#include<stdio.h>
template <class T> class Node{ public: |