【hihocoder】sam-2】的更多相关文章

问题:http://hihocoder.com/problemset/problem/1148 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 思路: 1. 将问题转换成求两个日期间有几个闰年 基本公式:闰年数(endYear,startYear) = 闰年数(0, endYear) - 闰年数(0, startYear) 注意点:区间的端点值 2. 闰年的要求 不能被100整除,能被4整除 或能被400整除 3. cnt = [i / 4] 对cnt = [i / 4]取…
题目:http://hihocoder.com/problemset/problem/1288 手机屏幕大小为 W(宽) * H(长),一篇文章有N段,每段有ai个字,要求使得该文章占用的页数不超过P的字体最大值S. 思路: 1. 最大的字体:一页只放一个字,则S = min(W, H) 2. 枚举方式:对于每一个S,计算需要的行数,然后判断页数是否超过P 注意点: 1. 如果一段文字的最后一行没有被填满,下一段文字也必须从下一行开始. 2. 关于ceil和floor函数 需要包含头文件 #in…
  题目:http://hihocoder.com/problemset/problem/1082 输入一个字符串,将其中特定的单词替换成另一个单词   代码注意点: 1. getline(istream &in, string &s) 没有读入字符,将返回false 2. transform(tmp.begin(),tmp.end(),tmp.begin(),::tolower) 将tmp的所有字母都改成小写 需要包含 #include <algorithm> 3. 查找函数…
  题目   http://hihocoder.com/problemset/problem/1121 无向图上有N个点,两两之间可以有连线,共有M条连线. 如果对所有点进行涂色(白/黑),判定是否存在一个合理的涂色方案,使得图上每一条连线两端的顶点颜色都不相同.   思路   1. 深度优先搜索:把图上所有的点都遍历一遍   代码注意点   1. 因为不想用二维数组,采用vector<vector<int>>的类型.这时要注意初始化方式: 不该用的方式 //1. 初始化 vect…
题目:http://hihocoder.com/problemset/problem/1036 给一个词典dict,词典中包含了一些单词words.要求判断给定的一个文本串text中是否包含这个字典中的单词words. 相关基础的理解 1. 与用KMP解决的问题的差别 KMP:输入原串S和一个模式串T,判断T是否出现在S中.通过对T计算next数组,避免原串S的回溯. 现在的问题:输入文本串text和多个单词words,判断words中是否有出现在text中.同样希望输入的text不用进行回溯.…
题目:http://hihocoder.com/problemset/problem/1039 给定一个字符串s,只包含'A', 'B', 'C'三种字符 1. 向 s 的任意位置 (包括头和尾) 中插入'A', 'B', 'C'中任意一个字符 2. 递归删除 s 中的相同字符,要求第1步的插入位置使得消除的字符最多 递归删除: "ABCCBCCCAA"->"ABB"->"A' 思路 1. 枚举:向 s 中插入一个字符获得新字符串s', 计算s…
题目:http://hihocoder.com/problemset/problem/1037 一个迷宫有n层,第 i 层有 i 个房间 从第i层的第i个房间(i, i)可以走到第i+1层的第i个房间或第i+1房间(i+1, i)/(i+1, i+1) 每个房间走出去后都不能回头 样例输入 5 //迷宫的层数 2 6 4 1 2 8 4 0 9 6 6 5 5 3 6结果: 28思路动态规划maze[i, j] = max(maze[i-1, j], maze[i-1, j-1]) 源码 迭代方…
初探数位dp 介绍了数位类统计的基础知识.以下列出其中的基础点: 基本问题 统计在区间[l, r]中满足条件的数的个数 思路 1. [l, r] 将问题转换为 在[0, r]中满足条件的个数 - 在[0, l)满足条件的个数 2. 求解 区间[0, n]满足条件的个数 性质:一个小于n的数m,一定是从高位到低位在某一位小于n的对应位的一个数   数值 百位 十位 个位   n   m 3 5 0<8 m 349 3 4<5 遍历所有小于n的数:从高位到低位枚举第一次小于n的数位,之后数位的值就…
问题:http://hihocoder.com/problemset/problem/1014 给定一个字符串字典dict,输入字符串str, 要求从dict中找出所有以str为前缀的字符串个数. 构建Trie树: 1) 一个节点有多个子节点.用vector<Node*> nexts 存储. 2) 两个字符串的相同前缀部分共用同一条路径. 3) 每个节点包含计数变量 cnt, 表示有多少个字符串共用该节点 复杂度分析: 假定dict中的字符串个数 n, 字符串的长度 l 1)建树:O(n^2*…
问题:http://hihocoder.com/problemset/problem/1049?sid=767510 已知一棵二叉树的前序遍历及中序遍历结果,求后序遍历结果 思路: 前序:根-左子树-右子树 中序:左子树-根-右子树 后序:左子树-右子树-根 递归的方法,从前序得到根结点,然后根据中序发现两个子树.先求子树的后序遍历结果,再把当前的根添加在最后即可. #include <iostream> #include <string> using namespace std;…