11 2014 档案
摘要:lower_bound它有三个参数, 第一个和第二个是给定区间起点和终点的指针,第三个参数是要查找的数,它的作用原理是在给定的区间中进行二分查找,这个二分区间是前开后闭的,他返回第一个大于等于它的函数指针,例如数组a[100] = {3, 4, 5, 6, 7, 10, 12, 34, 55}; 想...
阅读全文
摘要:这类带权的边的图,直接广搜不行,要加上优先队列,这样得到的结果才是最优的,这样每次先找权值最小的,代码如下 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 typedef struct No...
阅读全文
摘要:平衡二叉树(AVL)是一种特殊的二叉搜索树,他满足两个性质:1. 此树是二叉搜索树2. 任意节点的左右子树高度差的绝对值不超过1这样是为了提高查询的效率,因为一般的二叉搜索树有可能不会是完全二叉树或者接近完全二叉树情况,有的甚至退化成链表,所以平衡二叉树将二叉树平衡一下,使得查询效率满足logn,主...
阅读全文
摘要:bfs题,用数组模拟水杯的状态,尝试每一种可能的状态,如果找到就返回,详解见代码注释: 1 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 const int MAX = 1...
阅读全文
摘要:普通的思路是O(n2)的复杂度,这个题的数据量太大,超时,这时候就得用nlogn的复杂度的算法来做,这个算法的主要思想是只保存有效的序列,即最大递增子序列,然后最后得到数组的长度就是最大子序列。比如序列7 8 9 1 2 3 来说, 就是先把第一个数输入到数组中,然后继续输入后面的数,每输入一个数都...
阅读全文
摘要:转载至:http://blog.csdn.net/wmx16835/article/details/38639451前阵子打Codeforces(以下简称CF),每次比赛的时候都要等待网页刷新。不是我这里网速慢,应该是国内的普遍现象吧。然而最狼狈的一次,当我刷新出题目页面的时候比赛已经开始5分钟了,...
阅读全文
摘要:这道题其实就是斯特林数,找不同的集合,一共有多少中组法,递推式就是dp[n][k] = dp[n - 1][k - 1] + k * dp[n - 1][k];这个式子可以这么解释,dp[n][k]就是总数为n分成k个集合一共有多少种, 它就有两种情况一种是第一个自己一个集合(也就是他自己一堆), ...
阅读全文
摘要:题目链接这道题也是简单dp里面的一种经典类型,递推式就是dp[i] = min(dp[i-150], dp[i-200], dp[i-350])代码如下: 1 #include 2 #include 3 using namespace std; 4 int dp[10010]; 5 int mai...
阅读全文
摘要:题目大意:让求长度为n的0 和 1 构成的串中不包含101子串的个数有多少。这个题当时想了好久,以为是一个规律题,一直在推规律,最后还是wa了,上网一看原来是dp问题, 不过确实递推式挺巧妙的。递推式dp[i] = 2 * dp[i - 1] - dp[i - 2] + dp[i - 3];现在就来...
阅读全文
摘要:我们先从简单的例子入手:求ab mod c= 几。算法1.首先直接地来设计这个算法:int ans = 1;for(int i = 1;i 2 #include 3 using namespace std; 4 /*朴素算法*/ 5 /*表示a的b次幂然后对c取余的结果*/ 6 int power...
阅读全文
摘要:此题是最基础的最小生成树的题目,有两种方法, 一个是prim一个是kruskal算法,前者利用邻接矩阵,后者是利用边集数组prim算法的思想是:一个点一个点的找, 先找从第一个点到其他点最小的, 把权值存放到一个lowcost的数组中,然后继续找下一个点,然后更新lowcost数组,注意,这时的lo...
阅读全文
摘要:这个题可以有两种方式来解决, 一个是搜索来解决,另一个是用并查集,后者较前者来说要更快点整个题的思路就是先判断整个图是否连通,然后再判断是否为欧拉图,即图中奇度顶点的个数是否为0或者2, 如果是0或者2的话就是欧拉图,就可以一笔画,所以,用搜索是来判断这个图是否连通,并查集也是,下面是代码的实现:方...
阅读全文
摘要://这种方式为jdbc直接连接,需要添加jar文件 1 package com.howe2; 2 import java.sql.*; 3 4 public class test2 { 5 public static void main(String [] args) 6 { 7 ...
阅读全文
摘要:题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=569此题目可以用筛选法的思想来做,但是用到一个欧拉函数gcd(1,12)=1,gcd(5,12)=1,gcd(7,12)=1,gcd(11,12)=1,gcd(2,12)=2,gcd(10,...
阅读全文
摘要:著名的N皇后问题,就是先按照行一行一行的找,先找第一行,第一行找到一列能满足条件,继续找下一行,如果下一行也找到一列能满足条件,继续找下一行,一次类推,最终找到解, 但是,如果找不到的话, 就说明上一行放的位置错误, 所以回溯到上一行中,继续找下一列,如果找不到,继续回溯,大体就是这么执行找到解的。...
阅读全文