上一页 1 ··· 9 10 11 12 13 14 下一页
  2011年8月9日
摘要: zoj 1204题目大意:给出一些数字,求出某几个数字之和等于给出的某一个数字 ,并按照要求输出解决: 排序,dfs#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int num[35];bool flag;int res[35],n;void dfs(int start,int dest_deep,int current_deep,int current_sum){ if(current_deep==des 阅读全文
posted @ 2011-08-09 13:04 猿类的进化史 阅读(384) 评论(0) 推荐(0) 编辑
  2011年8月8日
摘要: 转载自:http://www.cppblog.com/changshoumeng/articles/114379.html#_Toc260776773详细解说 STL 排序(Sort) 0 前言: STL,为什么你必须掌握1 STL提供的Sort 算法 --------------------------------------------------------------------------------1.1 所有sort算法介绍1.2 sort 中的比较函数1.3 sort 的稳定性1.4 全排序1.5 局部排序1.6 nth_element 指定元素排序1.7 partition 阅读全文
posted @ 2011-08-08 16:25 猿类的进化史 阅读(292) 评论(0) 推荐(0) 编辑
  2011年8月7日
摘要: 实现过程及原理:首先是预处理用DP解决。设a[i]是要求区间最值的数列,f[i][j]表示从第i个数起连续2^j个数的最大值。例如数列3 2 4 5 6 8 1 2 9 7 ,f[1][0]表示从第一个数起,长度为2^0个数的最大值,其实就是第一个元素3本身。f[1][2]=5,f[1][3]=8…….从这里可以看出f[i][0]实际就是a[i]。这样dP的初始值就有了,剩下的就是状态转移方程。我们把f[i][j]平均分成两段(因为f[i][j]的值一定是个偶数0),从i到i+2^(j-1)-1为一段,i+2^(j-1)到i+2^j-1为一段。用上例说明,当i=1,j=3时就是3 2 4 5和 阅读全文
posted @ 2011-08-07 14:23 猿类的进化史 阅读(212) 评论(0) 推荐(0) 编辑
  2011年8月6日
摘要: 题目解决方案一:线段树 1916ms 47100B C/C++可以看到用线段树解决非常的浪费空间#include <iostream>#include <cstdio>using namespace std;#define L(x) (x<<1)#define R(x) ((x<<1)+1)#define M(x,y) ((x+y)>>1)const int N=1000005;struct node{ int l,r,score;};node tree[4*N];/*此处建立的线段树为[a,b][b+1,c]类型,由于询问的是点的大 阅读全文
posted @ 2011-08-06 20:06 猿类的进化史 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题目描述解决方案一:用线段树解决,因为查询的是某区间的最值时间1396 空间 5304代码长度75#include <iostream>#include <algorithm>#include <cstdio>using namespace std;struct node{ int l,r,min,max;};const int N=100005;int num[N];#define L(x) (x<<1)#define R(x) ((x<<1)+1)#define M(x,y) ((x+y)>>1)node tree[4 阅读全文
posted @ 2011-08-06 16:16 猿类的进化史 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 题目解决:(树状数组)本题是树状数组的基本应用符合两个特征,1、求区间和 2、修改的是单个元素 #include <iostream> #include <cstdio>using namespace std;const int N=1000005;int c[N];int n;//该函数功能是求出n二进制中最右边0的个数的2次幂,也等于c[n]包含的元素个数num[n-lowbit(n)+1]+...+num[n]int lowbit(int n){ return n&(-n);}//更新数组中pos的值使它加上inc,更新首先更新c[pos]一直更新该点的父 阅读全文
posted @ 2011-08-06 15:08 猿类的进化史 阅读(236) 评论(0) 推荐(0) 编辑
摘要: poj 3468题目大意:给定Q(1 ≤ Q≤ 100,000)个数A1,A2… AQ,,以及可能多次进行的两个操作:1)对某个区间Ai … Aj的个数都加n(n可变)2) 求某个区间Ai … Aj的数的和2) 求某个区间Ai … Aj的数的和解决:线段树/*线段树的区间有两种形式,第一种是[1,2][2,3],第二种是[1,1],[2,2],在这里,由于我们查询的区间和是不能相交的,所以只能采用第二中形式,*/#include <iostream>#include <cstdio>using namespace std;typedef long long intt;s 阅读全文
posted @ 2011-08-06 10:15 猿类的进化史 阅读(357) 评论(0) 推荐(0) 编辑
  2011年8月4日
摘要: NKoj1751题目大意:给出后缀表达式序列,求出层次遍历的结果解决:还原树的形状,bfs之后就是结果,先直接开辟树结点数组,将数据导入结点,然后寻找节点间父子关系,从而完成建树过程ac代码: 1 #include <iostream> 2 #include <cctype> 3 #include <queue> 4 #include <string> 5 #include <vector> 6 using namespace std; 7 string str; 8 struct node 9 {10 char data;11 bo 阅读全文
posted @ 2011-08-04 08:11 猿类的进化史 阅读(439) 评论(0) 推荐(0) 编辑
  2011年8月3日
摘要: poj 2255题目大意:给出先序遍历和中序遍历树的结果,求出后续遍历的结果解决:将树还原,根据先序和中序的结果还原树的形状,然后再后续遍历出结果 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 struct node 5 { 6 char data; 7 node *lch,*rch; 8 node(){lch=rch=NULL;} 9 };10 node *root=NULL;11 //创建树的过程12 /*13 pre代表先序序列,in代表中序序列,此处一定要用引用14 */15 阅读全文
posted @ 2011-08-03 18:55 猿类的进化史 阅读(665) 评论(0) 推荐(0) 编辑
  2011年7月23日
摘要: poj 1611题目大意:0号学生是流感疑似病人,找出与0接触及与0间接接触的人(与0接触的人接触的人)的个数解决:并查集,找出与0同在一个集合的所有元素的个数#include <iostream>#include <cstring>using namespace std;int num[30005];bool mark[30005];int find(int x){ if(num[x]<0)return x; return num[x]=find(num[x]);}void merge(int a,int b){ int fa=find(a); int fb=f 阅读全文
posted @ 2011-07-23 19:41 猿类的进化史 阅读(224) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 下一页