
算法和ACM
icoco_
算法和C
展开
-
动态规划-数塔问题(HDOJ-2084)
动态规划(dynamic programming)网上大家都简称为DP。DP的核心思想就是找出各阶段各子问题之间的关系,然后利用各阶段的关系逐个求解。其中比较经典的题目就是数塔和最长有序子序列的求解。数塔题目 :有形如下面所示的数塔,从顶部出发,在每一节点可以选择向左走或是向右走,一直走到底层,需求找出一条路径,使路径上的值最大。解题思路路:从顶点出发时到底向左走还是向右走应取原创 2013-11-04 18:45:10 · 1258 阅读 · 0 评论 -
一些做的过的零散的题目(poj)(二):
1003: 比较简单#include int main(){ double c; while((scanf("%lf",&c)!=EOF) && c!=0) { double sum = 0.0; int i=1; while(1) { sum += 1.0/(i+1); if(sum >= c) break; i++; }原创 2013-11-02 10:22:40 · 466 阅读 · 0 评论 -
一些做的过的零散的题目(poj)
1.这次做这么写题也不是为了ACM什么的,主要是实验室的项目内容太水了,而且跟自己喜欢的方向差太多了。所以,通过这些练习,锻炼一些编码水平和准确度,顺便巩固下基础,学习一些一些解决问题的算法思想。刚开始做的题目类型都很混乱没有一些分类,后来跟着HD的acm课ppt,将问题归类,系统的学习。这些题目包括从poj的1000到1009一共十道题现在一起总结一下:总结包括一些算法细节和数据结构的选取和原创 2013-11-01 14:51:16 · 587 阅读 · 0 评论 -
算法入门-数学题之大数问题HDOJ1060&& HDOJ1061
1060:题目大意:一组数据包含N个整数,整数范围为(1=2^2 是 4 answer=4 3^3 是 27 answer = 2 4^4 是256 answer = 2;解题思路:由N的范围可知用 32位的int 就足够存储。但是计算N^N就不能直接求解了,必须借助 去对数方法 log 。由对数性质:logN + logN = log(N*N) = 2logN; 那么原创 2013-11-05 19:36:24 · 550 阅读 · 0 评论 -
算法入门数学题hdoj 1004
1.数学题对于算法的要求不是很多,主要包括数学公式、数学定理,很适合做为研究算法和acm入门题型。hdoj 上面一些数学题分类:1004、1005、1008、1009 、10601012~1014、1019~1021 、1061、1049、1066 、1178、1108、1030 、1071、1597。1004:是acm的一道比赛题目,可以使用STL,或者string类。stl代码原创 2013-11-03 19:14:39 · 1026 阅读 · 0 评论 -
深度优先搜索算法(DFS)
1. 深度优先搜索属于图的遍历算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。2.搜索策略:深度优先遍历图的方法是,从图中某顶点v出发:(1)访问顶点v;(2)依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径相通的顶点都被访问;(3)若此时图中尚有顶原创 2013-11-22 20:50:44 · 805 阅读 · 0 评论 -
并查集 (Disjoint Set)
1.并查集的实现方法,通常通过一个 set[ i ] 数组实现,其中set[ i ] 表示元素 i 所在的集合。例如:i 1 2 3 4 5 6 7 8 9 10set[i]1 214261622一共有4个不想交的集合:1,2,4,6;2.并查集的实现设计原创 2013-11-09 22:20:42 · 512 阅读 · 0 评论 -
取样问题-获取随机样本
1.需求:在n份的调查中随机获取m份样本(m原创 2013-11-25 16:54:17 · 825 阅读 · 0 评论 -
筛选法和预处理 以及HDOJ1215的优化
1. 筛选法求给定范围内的质数。一般求法(即:已经优化到了sqrt(N) :#include#includeint main(){ int i,n,x; while(scanf("%d",&n)==1) { x=(int)sqrt(n); for(i=2;i<=x;i++) if(n%i==0) break; if(i>x) printf(原创 2013-11-13 14:23:58 · 453 阅读 · 0 评论