Linux 备份还原指令
dump [-f 备份文件] 待备份资料
-S #仅列出备份的话占用多少空间
-u #将这次dump的时间记录到/etc/dumpdates
-v #将dump的过程显示出来
-j #使用bzip2备份,进行简单压缩(level 2)
-level #dump备份的等级
-f #类似与tar, 备份成的文件的名字
-W #显示在/etc/fstab里面设置了dump的分区是否备份过
restore #恢复dump的内容
-t #显示含有什么数据, 类似与tar -t
-C #比较实际数据和备份数[……]
USACO 3.1.3 Humble Numbers 解题报告
这个题目属于什么算法呢?我才疏学浅不知道,反正就是用num来记录丑数,假设1为丑数,代码实现会简单些,那么丑数必定就等于另外一个丑数乘以一个素数,那么再一个个的按大小找到前n个丑数,就可以了。 时间的话大概是O(nm),对每个素数都记录该和哪个丑数相乘start[i],如果sub[i](第i个素数)num[start[i]]是下一个丑数,那么start[i]就加一,如果sub[i]num[start[i]]和当前最大的丑数(就是才成为丑数的丑数)相等的话那start[i]也是要加一的,就这样循环。 /
LANG:[……]
USACO 3.1.2 Score Inflation 解题报告
这题和第三章第一题一样,标准的无限01背包,直接把代码放进去就可以了,代码: / LANG: C ID: yylogoo1 PROG: inflate / #include int f[10001]; #define max(a, b) ((a)<(b)?(a):(b)) int main(void) { int m, n; int i, j; int a, b; freopen("inflate.in", "r", stdin); freopen(&qu[......]
USACO 3.1.1 Agri-Net 解题报告
这题的话,是最小生成树的标准题,但是最小生成树我不记得写了,后来想起来了之后发现这个二叉堆实现很麻烦,就看看标称的二叉堆是怎么实现的,结果标称直接暴力就是,呵呵,感觉有点投机取巧,因为数据小所以这样。 晚点捉摸下二叉堆的实现,先把这题的代码贴上来(暴力搜的) / LANG: C ID: yylogoo1 PROG: agrinet / #include int map[100][100]; int used[100]; int main(void) { int i, j, k, l; int n; in[......]
USACO 2.4.5 Fractions to Decimals 解题报告
这题的话,其实也好说,就是利用余数进行判断,看代码吧: de lang="C">/ LANG: C ID: yylogoo1 PROG: fracdec / #include int num[100001]; int mod[100001]; char str[77]; int len; void add(char ch) { if(len == 76){ printf("%s\n", str); str[0] = ‘\0’; len = 0; }[……]
USACO 2.4.4 comehome 解题报告
这一题其实很简单,只是有个陷阱,考验你们细心与否,就是两个牧场之间可能不只有一条路径,所以这里注意一下就不会出大问题,代码如下所示: de lang="c">/ LANG: C ID: yylogoo1 PROG: comehome / #include #define INF 0xFFFFFF int map[52][52]; int getnum(char c) { if(c <= ‘a’ && c map[i][k] + map[k][j]){[……]
USACO 2.4.3 Cow Tours 解题报告
这个题目涉及的算法真的好多好多,一下子还真摸不着头脑,但摸着没摸着都先听我说。 首先要把链接在一起的那些牧区之间的距离算出来(勾股定理),然后要把各个牧场的牧区标示出来(洪水填充),这样就能进行下一步了,再把各个节点之间的距离算出来,用floyd-warshall算法,O(n^3)的那个算法,然后,再把每个牧区在这个牧场距离最远的节点之间的距离算出来,再把每个牧场的直径算出来,这题目就大概出来了。 最后在循环两个牧区,如果是在一个牧场就退出循环,如果是在两个不同的牧场的话,那如果连接起来这个新的牧场的直径就有三[……]
USACO 2.4.2 Overfencing 解题报告
题目看了之后容易发现就是广搜,从两个入口对全图进行广搜,搜到最后一个所需要的路程就是答案,广搜实现一点儿也不难,我的实现感觉还是比较好的,用一个宏和一个函数实现这个功能,然后用数字代表前进的方向,0:北,1:南,2:西,3:东。 但这题难的地方我觉得是把图转化成数据和寻找入口,其实难也不难,只是希望实现的代码简单些。刚开始我想根据变量循环的位置来判断,但这种方法的弊端就是代码量太大,要好多好多的判断,难的写,就直接使用-和|(墙的标识。)来标记数据就可以了,发现这个实现很简单,但是麻烦的就是找入口,最后我还是用了[……]