09 2016 档案
摘要:深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口...
阅读全文
摘要:dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它. dom4j官方文档:http://...
阅读全文
摘要:二分搜索 #include #include using namespace std;const int MAXN = 100005;const int INF = 1000000005;int n, m;int l[MAXN];bool C(int d) { int last = 0; for...
阅读全文
摘要:二分查找 #include #include using namespace std;const int MAXN = 10005;const int INF = 100005;int n, k;double l[MAXN];bool C(double x) { int num = 0; for...
阅读全文
摘要:最小生成树Kruskal算法。 #include #include using namespace std;const int MAXN = 1005;const int MAXM = 20005;int n, m, a, b, l;int cost[MAXN][MAXN];int par[MA...
阅读全文
摘要:优化算法入门系列文章目录(更新中): 1. 模拟退火算法 2. 遗传算法 一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到...
阅读全文
摘要:最大生成树,kruskal将权重取负。如果并查集的大小不等于1,则说明没有将所有的谷仓连接起来,输出-1。 #include #include using namespace std;const int MAXN = 1005;const int MAXM = 20005;int n, m, a...
阅读全文
摘要:最小生成树prim #include using namespace std;const int INF = 1000005;const int MAXN = 105;int cost[MAXN][MAXN];int mincost[MAXN];bool used[MAXN];int n;in...
阅读全文
摘要:ArrayList长于随机访问 LinkedList长于插入和删除
阅读全文
摘要:优先队列 先将奶牛排序,考虑每个奶牛作为中位数时,比它分数低(前面的)的那群牛的学费总和left,后面的总和right。然后从分数高往分数低扫描,满足left + y + right #include #include #include using namespace std;const i...
阅读全文
摘要:那么将奶牛按照阳光强度的最小值从小到大排序。 将防晒霜也按照能固定的阳光强度从小到大排序 从最小的防晒霜枚举,将所有符合 minSPF 小于等于该防晒霜的SPF 的奶牛 放入优先队列之中。 然后优先队列是小值先出 所以就可以将优先队列最大值 大于等于 防晒霜的SPF的取出来。 ...
阅读全文
摘要:精选负能量(转) 声明: (1)本版专门弄些不适合年轻人看的,容易产生消极情绪的东西。 (2)如果来看技术的千万别看这些文章 (3)年轻人要好好努力,不要理这些东西 (4)可能有几句话是真话,当笑话看就可以了 (5)所有因看本文而产生的消极情绪,本人一概不负责 这篇文章看得我好爽。 ...
阅读全文
摘要:静态全局变量:只能被同一源文件中的函数调用,其它文件中的函数不能调用静态全局变量。 Java里没有全局变量,java中只有static和非static变量,这个属于每个类的,如果需要全局变量比如PI(3.14...),你可以写一个类Math,定义static变量PI,调用Math.PI就可以使用...
阅读全文
摘要:#include #include #include #include #include #include #include #include#define maxn 5010#define maxm 12500010#define INF 0x3fffffffusing namespace s...
阅读全文
摘要:枚举1~n的所有排列,直至有一种排列使得最后结果为finalNum就结束。 #include #include using namespace std;int main() { int n, finalNum, a[15], b[15]; while(~scanf("%d%d", &n, &...
阅读全文
摘要:首先可以想到,这两个数必定是用各一半数量的数字组成的数,如给出6个数,把这6个数分为两组,每组3个,这样组成的数字的差必定比其他方式小。接下来的任务就是穷举所有可能出现的组合,并求出最小差。在这里可以使用STL的next_permutation函数来求给定这组数字的所有排列,并将其分为两组组成数...
阅读全文
摘要:import java.util.Scanner;public class Main { private static int score(String str) { str = str.toLowerCase(); int[] arr = new int[26]; for(int ...
阅读全文
摘要:把 field 想象成一个图。如果要输出YES,则此图存在负圈。 使用Bellman-Ford算法,判断第 n 次是否仍然更新了。 使用Floyd-Warshall算法,判断是否有点的值小于原来的值。 Bellman-Ford算法: #include using namespace st...
阅读全文
摘要:在某一时刻牛的状态为,它可能上一时刻它也在这棵树下,或者是从另外一棵树移过来的。这样,我们用 dp[i][j] 来表 示在第 i 个时刻走了 j 步接到的最多苹果数。暂且不管当前这一时刻是否接到苹果, dp[i][j] = max(dp[i-1][j], dp[i-1][j- 1]) ,这...
阅读全文
摘要:如果i为奇数,肯定有一个1,把f[i-1]的每一种情况加一个1就得到fi,所以f[i]=f[i-1] 如果i为偶数,如果有1,至少有两个,则f[i-2]的每一种情况加两个1,就得到i,如果没有1,则把分解式中的每一项除 2,则得到f[i/2] 所以f[i]=f[i-2]+f[i/2]...
阅读全文
摘要:描述 如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。实现以下接口: 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用) 按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到...
阅读全文
摘要:快排或者随机快排都超时。 快排: #include #include int n; int d[10005]; int partition(int a[], int p, int r) { double x = a[r]; int i = p - 1; ...
阅读全文
摘要:Java里方法的重写overriding是继承类、子类继承了父类所有的方法、可以覆盖父类的方法、子类的访问权限不能小于父类。自JDK1.5后,重写也可以改变返回值类型,只要此类型是父方法的返回值类型的子类即可。e.g.父类返回Object,子类的重写方法返回String也是可以的。 Ja...
阅读全文
摘要:大意是一个公司在12个月中,或固定盈余s,或固定亏损d. 但记不得哪些月盈余,哪些月亏损,只能记得连续5个月的代数和总是亏损(=4d 保证“连续5个月必亏损”,每连续5个月种至少5个月D, 每月亏损,此情况全年必亏损 要注意的是,前4种情况都仅仅是“可能有全年的盈余”,而...
阅读全文
摘要:一般思路:二分+高精度算法 但是本题还有一个更加巧妙的办法去处理: 首先需要明确:double类型虽然能表示10^(-307) ~ 10^308, (远大于题意的1#include int main() { double n, p; while(~scanf("%lf%lf...
阅读全文
摘要:大致题意:将一条海岸线看成X轴,X轴上面是大海,海上有若干岛屿,给出雷达的覆盖半径和岛屿的位置,要求在海岸线上建雷达,在雷达能够覆盖全部岛屿情况下,求雷达的最少使用量。 本题一看就用贪心做,怎么贪呢?先研究一下每个岛屿,设岛屿到海岸线的垂直距离为d,雷达的覆盖半径为k,若d>k,直接...
阅读全文
摘要:一、举了个多项式拟合数据的例子 二、概率理论 三、模型选择:交叉验证 四、维度灾难 五、决策理论: 生成模型(利用联合概率)判别模型(利用条件概率)判别函数(比如crf实现里的特征函数) 三者的优缺点: 方法1是求联合概率,它需要大量的数据才能达到合理的精度。但是它对于检测...
阅读全文
摘要:思路是:dfs有两个参数 checkerNum 和 raw。checkerNum是棋子数量,raw是行号 。 先从第一行开始遍历,对第一行属于棋盘的每一列:开始下一行。 这一行处理完了,从下一行重新开始dfs。 #include int n, k, i, j, ans;char maze[10]...
阅读全文
摘要:三维的dfs。 #include #include using namespace std;struct q { int x; int y; int z;}q[30000];int length[30000]; int xx[]={1,-1,0,0,0,0}; int yy[]={0,0,0...
阅读全文
摘要:[直观学习排序算法] 视觉直观感受若干常用排序算法 1 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) ...
阅读全文

浙公网安备 33010602011771号