动态规划——初步
摘要:练习题集Greedy Tino滚动数组#include #include const int INF = 1e9;int main() {#ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout);#endif int t; while (scanf("%d", &t) != EOF) { int caseid = 0; while (t--) { int n; scanf(&qu
阅读全文
刷题最佳代码风格
摘要:由于算法题一般都有6k最大文件限制,又要节约打字时间又要追求效率和准确率,和工程的要求有很大的不同。所以尽量要使用简洁的风格。之前是和工程一样严格遵循google C++编程规范,浪费了apm的调试还容易出错,写出的程序性能还不高比别人的难看代码多上百ms。为了提高准确率,我要一改以前的迂腐作风,不到200行的程序讲究什么编程规范。我仔细研究了曾经的top coder NO.1 Petr的第一视角,要找出一种最有效的代码风格:SRM 529codeforces NO.1 tourist的代码:#include #include #include #include #include #inclu
阅读全文
Codeforces Round #230 (Div. 2) 解题报告
摘要:Problem A. Nineteen思路: 除了首位像连的n,其他的字母不能共用nineteenineteen。所以可以扫描一遍所有的字符串将出现次数保存到hash数组,n的次数(n - 1) / 2,e为e / 3。最小值就是min(i, e / 3, t , (n - 1) / 2)。#include #include int main() {#ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout);
阅读全文
线段树
摘要:线段树:线段树的定义定义1 长度为1的线段称为元线段。定义2 一棵树被成为线段树,当且仅当这棵树满足如下条件:(1) 该树是一棵二叉树。(2) 树中每一个结点都对应一条线段[a,b]。(3) 树中结点是叶子结点当且仅当它所代表的线段是元线段。(4) 树中非叶子结点都有左右两个子树,做子树树根对应线段[a , (a + b ) / 2],右子树树根对应线段[( a + b ) / 2 , b]。但是这种二叉树较为平衡,和静态二叉树一样,提前根据应用的部分建立好树形结构。针对性强,所以效率要高。一般来说,动态结构较为灵活,但是速度较慢;静态结构节省内存,速度较快。 ...
阅读全文
搜索——基础篇
摘要:1.入门级hdu 1010 Tempter of the Bone注意BFS是向4个方向同时扩展,搜索的一定是最短路径。如果把用掉的点标记:2 2 3S.D.这组数据用BFS只能搜到1,不能搜到3的路径。BFS不知道怎么剪枝才能不超时。DFS解法:/*------------------------------------------------@file hdu1010解题:优化: @author fripSide@date 2014/02/16------------------------------------------------*/#include #i...
阅读全文