自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

L

while(true);

  • 博客(25)
  • 收藏
  • 关注

转载 java中hashMap和hashtable的区别

1、 继承和实现区别  Hashtable是基于陈旧的Dictionary类,完成了Map接口;HashMap是Java 1.2引进的Map接口的一个实现(HashMap继承于AbstractMap,AbstractMap完成了Map接口)。2、 线程安全不同  HashTable的方法是同步的,HashMap是未同步,所以在多线程场合要手动同步HashMap。3、 对null的处理不同  HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可

2011-05-24 21:03:00 452

转载 eclipse 常用快捷键

eclipse常用快捷键Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。  1. 【ALT+/】Sysout+ System.out.println()Main+[enter]+publicstaticvoid main(String[] args)  此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。  2

2011-05-23 21:53:00 602

原创 java替代性原理

替代性原理,就是在任何情况下,子类应该都可以替代父类。正是有了替代性原理,才能够将父类引用指向子类对象,因为可以将子类对象当作父类对象使用。其实方法的重写,就是让新的方法替代老的方法,如果不能替代,将违反重写的目的。返回值,参数列表,访问限制的规则都是依据替代性原理制定的。1. 重写方法的返回的数据必须可以替代原来返回的数据。原始类型,只有完全相同才能取代;对象引用则必须是原来引用类型的子类或同类,否则新的类型将无法胜任原来类型的任务!2.参数列表一旦发生变化,也就意味着这个方法的调用形式发生变化,这样一来

2011-05-22 19:12:00 763

原创 poj 1001 Exponentiation

用到了java BigDecimal 类中几个方法 public StringtoPlainString()返回不带指数字段的此 BigDecimal 的字符串表示形式public BigDecimalstripTrailingZeros()返回数值上等于此小数,但从该表示形式移除所有尾部零的 BigDecimal还有String里的trim() 方法,删除前后空白~~package bignum;import java.math.BigDecimal;import java.util.Scan

2011-05-22 00:11:00 460

原创 poj 2299 Ultra-QuickSort

逆序数的定义: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。如2431中,21,43,41,31是逆序,逆序数是4,为偶排列。 --摘自百度百科记录数列的下标,按数列的值从小到大排序,所以后面插入的值肯定比前面的大,i - getsum(c[i].pos)就可以算出在i之前还有几个比c[i]大的数,累加就是答案#include #include

2011-05-04 02:20:00 295

原创 hdu 1671 & poj 3630 Phone List

<br />基本的字典树<br />判断一组字符串中是否出现自己的前缀子串<br />#include <stdio.h>#include <string.h>const int MAXN = 100010;struct dicTree{ int next[10]; bool isWord; void init(){ memset(next,-1,sizeof(next)); isWord = false; }}

2011-05-04 02:17:00 358

原创 poj 3660 Cow Contest

没完全搞懂啊~~留代码研究#includeusing namespace std;const int MAXN = 101;int map[MAXN][MAXN], n, m;void floyed(){ for(int k = 1; k > n >> m; while(m--){ cin >> a >> b; map[a][b] = 1; map[b][a] = -1; } /*for(int i =1;

2011-05-03 23:37:00 363

原创 poj 1523 SPF

<br />求割点<br />关于被割成几个子网络 还不是很懂, 直接累加?<br />为什么呢?<br />留下问题 一定要搞懂<br />#include<stdio.h>#include<string.h>const int MAXN = 1001;int low[MAXN], dfn[MAXN], ans[MAXN], map[MAXN][MAXN];int n, cnt;void dfs(int now){ dfn[now] = low[now] = cnt++; fo

2011-05-03 21:47:00 415

原创 poj 2472 106 miles to Chicago

<br />边的权为不被抓住的概率,注意是概率,需要求的是能逃跑的最大可能<br />这题与一般的最短路不同,体现在权值上<br />所以把一般权值的相加改成相乘,利用floyed的算法框架求解<br />另外注意精度<br />#include<stdio.h>#include<string.h>#define MAXN 101double map[MAXN][MAXN]; //边权用浮点数存int n, m;void floyed(){ for(int k = 0; k < n;

2011-05-03 21:33:00 553

原创 poj 2387 Til the Cows Come Home

<br />裸的最短路<br />spfa 水过<br />#include<stdio.h>#include<string.h>#include<queue>#define INF 0x3f3f3f3f#define MAXN 10001using namespace std;struct edge{ int u, v, w, next;}e[MAXN];int first[MAXN], dist[MAXN], ecnt;bool inq[MAXN];int t

2011-05-03 21:24:00 275

原创 poj 1094 Sorting It All Out

每输入一个关系拓扑排序一次注意当有多种情况的时候 是否已经有环, 有环则直接Sorted sequence cannot be determined.判断是否有环很多方法,我用的是传递闭包判断map[i][i]是否为1  为1则有环#include#includeconst int MAXN = 27;int n, m, cnt;int in[MAXN], map[MAXN][MAXN];bool finish, more;char sort[MAXN];bool floyed(

2011-05-03 21:16:00 285

原创 poj 1125 Stockbroker Grapevine

<br /> <br />给你n个人的联系情况,对任意一个人,求出这个人发消息到其他n-1个人的时间,得到n-1个时间中的最大值,n个最大值中的最小值就是所求。如果网络不通,那就输出disjoint<br />Floyed算出任意两个人的最小时间<br />#include <iostream>#include <fstream>using namespace std;const int MAXN = 101;const int INF = 0x7FFF;int m , n;int

2011-05-03 21:07:00 259

原创 poj 1523 SPF

<br />给一个网络, 需要求出割点和被这个割点割成的子网络的个数<br />#include<stdio.h>#include<string.h>const int MAXN = 1001;int low[MAXN], dfn[MAXN], ans[MAXN], map[MAXN][MAXN];int n, cnt;void dfs(int now){ dfn[now] = low[now] = cnt++; for(int i = 1; i <= n; ++i){ i

2011-05-03 20:54:00 246

原创 poj 1386 Play on Words

转换成图论一笔画问题如何转换,一个单词的第一个字母和最后一个字母作为点,由第一个字母向最后一个字母连一条有向边问题转化为判断一个有向图是否存在欧拉回路或者欧拉路径有向图判断是否存在欧拉回路或者欧拉路径首先要满足其基图(即把边改成无向的图)是连通的(并查集判断)判断的时候要注意两种情况回路或者路径,满足回路的条件是每个定点的入度与出度相等,路径的条件是当且仅有一个顶点的入度比出度大一,和当且仅有一个顶点的出度比入度大一#include#includeconst int MAXN = 26;int

2011-05-03 20:29:00 364

原创 hdu 1512 Monkey King

并查集显然要用到左偏树解决合并的问题这题体现了数据结构的强大啊!#include#include using namespace std;const int MAXN = 100100;int father[MAXN];struct Monkey{ int l,r; int dis; int strong;}LTree[MAXN];int find(int x){ if(x != father[x]) fath

2011-05-01 09:17:00 325

原创 hdu 1198 Farm Irrigation

<br />并查集+set判断个数<br />#include <iostream>#include <set>using namespace std;struct G{ int left; int right; int up; int down;}; const int MAXN = 50;int father[MAXN * MAXN]; //map[i][j] = father[i * n + j]对格子的编号

2011-05-01 09:05:00 368

原创 zoj 2420 Calendar

学习到一种很好的处理日期的方式#include int year[2] = {365, 366}; //0 非润年int month[2][12] = {{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}}; //0 非润年的月份//2000年1月1日 Saturday char week[7][10]={"Saturday","Sunday","M

2011-05-01 08:58:00 659 2

原创 poj 1200 Crazy Search

题意给定一个由NC个字母组成的字符串,求长度为N的不同子串的个数思路:由于只有NC个字母,可以将字母编号,0 ~ NC - 1,转换成数字,就可以将字符串表示成NC进制的数字,这样所有字串代表的数字都是唯一的,转换成10进制的数也是唯一的!就像10的二进制表示只有1010例如 3 4daababacd = 3a = 0b = 1c = 2daa = 3 * 4 ^ 2 + 0 * 4 ^ 1 + 0 * 4 ^ 0 = 48#include #include char str[1000000];

2011-05-01 08:48:00 355

原创 poj 3268 Silver Cow Party & zoj 2008 Invitation Cards

参考 算法导论 p580 单终点最短路径问题这两题是一样的求法,先正着求一次最短路,再将边反向,再求一次矩阵表示图的话就是将矩阵转置一次,邻接表表示的话就是读入边的时候,建两个表poj3268dijkstra求最短路#include #include using namespace std;const int MAXN =1001;int n,m,x;const int INF = 0x7FFF;int G[MAXN][MAXN];int dist1[MAXN];int su

2011-05-01 01:30:00 430

转载 最短路转载

<br />一、Bellman-Ford算法<br />最优性原理<br /> <br />它是最优性原理的直接应用,算法基于以下事实:<br />l          如果最短路存在,则每个顶点最多经过一次,因此不超过n-1条边;<br />l          长度为k的路由长度为k-1的路加一条边得到;<br />l          由最优性原理,只需依次考虑长度为1,2,…,k-1的最短路。<br />适用条件&范围<br />l          单源最短路径(从源点s到其它所有顶点v); <b

2011-04-30 06:40:00 282

原创 poj 2367 Genealogical tree

<br />裸的拓扑排序 图用邻接表表示<br /> <br />方法是dfs<br /> <br />#include<stdio.h>#include<string.h>const int MAXN = 1000;struct edge{ int u, v, next;}e[MAXN];int n;int first[MAXN], cnt;bool visit[MAXN], f;int sort[MAXN], top;void dfs(int s){ if(v

2011-04-30 06:34:00 260

原创 poj 1135 Domino Effect

留下代码有空写解题报告 蛋疼的题目#includeconst int MAXN = 501;const int INF = 0x3f3f3f3f;int n, m;int map[MAXN][MAXN], dist[MAXN];bool used[MAXN];void dijkstra(){ for(int i = 1; i dist[j]) min = dist[minidx = j]; //这种写法不错 简洁 也易懂 } used[minidx] =

2011-04-30 05:39:00 287

原创 poj 1502 MPI Maelstrom

图 邻接矩阵 表示朴素的dijkstra AC另外 c语言提供几个有用的函数 好好利用itoa() 将整型值转换为字符串itoa() 将长整型值转换为字符串ultoa() 将无符号长整型值转换为字符串atoi() 将字符串转成整型#include #include #include const int MAXN = 101;const int MAXINT = 32767;int G[MAXN][MAXN];bool used[MAXN];int pre[MAXN];int

2011-04-30 02:40:00 341

原创 poj 1789 Truck History

<br /> where the sum goes over all pairs of types in the derivation plan such that to is the original type and td the type derived from it and d(to,td) is the distance of the types1/Σ(to,td)d(to,td)<br /><br />派生关系有向边,边权为两个串的不同字符的个数,要求的是找出一种用到所有串的派生关系,使得Q最

2011-04-30 01:36:00 230

转载 POJ 图论题目

1062* 昂贵的聘礼 枚举等级限制+dijkstra1087* A Plug for UNIX 2分匹配1094 Sorting It All Out floyd 或 拓扑 ac!1112* Team Them Up! 2分图染色+DP1125 Stockbroker Grapevine FLOYD  1135 Domino Effect 最短路1149* PIGS 网络流1161* Walls floyd1201 Intervals 差分约束1236* Network of Schools 强联通125

2011-04-28 05:38:00 602

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除