<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[L]]></title><description><![CDATA[                 while(true);]]></description><link>https://blog.youkuaiyun.com/lxf90</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lxf90]]></copyright><item><title><![CDATA[java中hashMap和hashtable的区别]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6443379</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6443379</guid><author>lxf90</author><pubDate>Tue, 24 May 2011 21:03:00 +0800</pubDate><description><![CDATA[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都可]]></description><category></category></item><item><title><![CDATA[eclipse 常用快捷键]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6440883</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6440883</guid><author>lxf90</author><pubDate>Mon, 23 May 2011 21:53:00 +0800</pubDate><description><![CDATA[eclipse常用快捷键Eclipse的编辑功能非常强大，掌握了Eclipse快捷键功能，能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。  1. 【ALT+/】Sysout+
  System.out.println()Main+[enter]+publicstaticvoid main(String[] args)  此快捷键为用户编辑的好帮手，能为用户提供内容的辅助，不要为记不全方法和属性名称犯愁，当记不全类、方法和属性的名字时，多体验一下【ALT+/】快捷键带来的好处吧。  2]]></description><category></category></item><item><title><![CDATA[java替代性原理]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6438168</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6438168</guid><author>lxf90</author><pubDate>Sun, 22 May 2011 19:12:00 +0800</pubDate><description><![CDATA[替代性原理，就是在任何情况下，子类应该都可以替代父类。正是有了替代性原理，才能够将父类引用指向子类对象，因为可以将子类对象当作父类对象使用。其实方法的重写，就是让新的方法替代老的方法，如果不能替代，将违反重写的目的。返回值，参数列表，访问限制的规则都是依据替代性原理制定的。1. 重写方法的返回的数据必须可以替代原来返回的数据。原始类型，只有完全相同才能取代；对象引用则必须是原来引用类型的子类或同类，否则新的类型将无法胜任原来类型的任务！2.参数列表一旦发生变化，也就意味着这个方法的调用形式发生变化，这样一来]]></description><category></category></item><item><title><![CDATA[poj 1001 Exponentiation]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6437277</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6437277</guid><author>lxf90</author><pubDate>Sun, 22 May 2011 00:11:00 +0800</pubDate><description><![CDATA[用到了java BigDecimal 类中几个方法 public StringtoPlainString()返回不带指数字段的此 BigDecimal 的字符串表示形式public BigDecimalstripTrailingZeros()返回数值上等于此小数，但从该表示形式移除所有尾部零的 BigDecimal还有String里的trim() 方法，删除前后空白~~package bignum;

import java.math.BigDecimal;
import java.util.Scan]]></description><category></category></item><item><title><![CDATA[poj 2299 Ultra-QuickSort]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6389647</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6389647</guid><author>lxf90</author><pubDate>Wed, 04 May 2011 02:20:00 +0800</pubDate><description><![CDATA[逆序数的定义： 在一个排列中，如果一对数的前后位置与大小顺序相反，即前面的数大于后面的数，那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列；逆序数为奇数的排列称为奇排列。如2431中，21，43，41，31是逆序，逆序数是4，为偶排列。 --摘自百度百科记录数列的下标，按数列的值从小到大排序，所以后面插入的值肯定比前面的大，i - getsum(c[i].pos)就可以算出在i之前还有几个比c[i]大的数，累加就是答案#include 
#include ]]></description><category></category></item><item><title><![CDATA[ hdu 1671 & poj 3630 Phone List]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6389616</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6389616</guid><author>lxf90</author><pubDate>Wed, 04 May 2011 02:17:00 +0800</pubDate><description><![CDATA[<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;
    }
}]]></description><category></category></item><item><title><![CDATA[poj 3660 Cow Contest]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6388880</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6388880</guid><author>lxf90</author><pubDate>Tue, 03 May 2011 23:37:00 +0800</pubDate><description><![CDATA[没完全搞懂啊～～留代码研究#include
using 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; ]]></description><category></category></item><item><title><![CDATA[poj 1523 SPF]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6388644</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6388644</guid><author>lxf90</author><pubDate>Tue, 03 May 2011 21:47:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[poj 2472 106 miles to Chicago]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6388610</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6388610</guid><author>lxf90</author><pubDate>Tue, 03 May 2011 21:33:00 +0800</pubDate><description><![CDATA[<br />边的权为不被抓住的概率，注意是概率，需要求的是能逃跑的最大可能<br />这题与一般的最短路不同，体现在权值上<br />所以把一般权值的相加改成相乘，利用floyed的算法框架求解<br />另外注意精度<br />#include<stdio.h>
#include<string.h>
#define MAXN 101
double map[MAXN][MAXN];	//边权用浮点数存
int n, m;
void floyed(){
	for(int k = 0; k < n;]]></description><category></category></item><item><title><![CDATA[poj 2387 Til the Cows Come Home]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6388592</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6388592</guid><author>lxf90</author><pubDate>Tue, 03 May 2011 21:24:00 +0800</pubDate><description><![CDATA[<br />裸的最短路<br />spfa 水过<br />#include<stdio.h>
#include<string.h>
#include<queue>
#define INF 0x3f3f3f3f
#define MAXN 10001
using namespace std;
struct edge{
	int u, v, w, next;
}e[MAXN];
int first[MAXN], dist[MAXN], ecnt;
bool inq[MAXN];
int t]]></description><category></category></item><item><title><![CDATA[poj 1094 Sorting It All Out ]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6388525</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6388525</guid><author>lxf90</author><pubDate>Tue, 03 May 2011 21:16:00 +0800</pubDate><description><![CDATA[每输入一个关系拓扑排序一次注意当有多种情况的时候 是否已经有环， 有环则直接Sorted sequence cannot be determined.判断是否有环很多方法，我用的是传递闭包判断map[i][i]是否为1  为1则有环#include
#include
const int MAXN = 27;
int n, m, cnt;
int in[MAXN], map[MAXN][MAXN];
bool finish, more;
char sort[MAXN];
bool floyed(]]></description><category></category></item><item><title><![CDATA[poj 1125 Stockbroker Grapevine]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6388506</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6388506</guid><author>lxf90</author><pubDate>Tue, 03 May 2011 21:07:00 +0800</pubDate><description><![CDATA[<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 ]]></description><category></category></item><item><title><![CDATA[poj 1523 SPF]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6388372</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6388372</guid><author>lxf90</author><pubDate>Tue, 03 May 2011 20:54:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[poj 1386 Play on Words]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6388102</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6388102</guid><author>lxf90</author><pubDate>Tue, 03 May 2011 20:29:00 +0800</pubDate><description><![CDATA[转换成图论一笔画问题如何转换，一个单词的第一个字母和最后一个字母作为点，由第一个字母向最后一个字母连一条有向边问题转化为判断一个有向图是否存在欧拉回路或者欧拉路径有向图判断是否存在欧拉回路或者欧拉路径首先要满足其基图（即把边改成无向的图）是连通的（并查集判断）判断的时候要注意两种情况回路或者路径，满足回路的条件是每个定点的入度与出度相等，路径的条件是当且仅有一个顶点的入度比出度大一，和当且仅有一个顶点的出度比入度大一#include
#include
const int MAXN = 26;
int ]]></description><category></category></item><item><title><![CDATA[hdu 1512 Monkey King]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6381440</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6381440</guid><author>lxf90</author><pubDate>Sun, 01 May 2011 09:17:00 +0800</pubDate><description><![CDATA[并查集显然要用到左偏树解决合并的问题这题体现了数据结构的强大啊！#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]]></description><category></category></item><item><title><![CDATA[hdu 1198  Farm Irrigation ]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6381432</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6381432</guid><author>lxf90</author><pubDate>Sun, 01 May 2011 09:05:00 +0800</pubDate><description><![CDATA[<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]对格子的编号
]]></description><category></category></item><item><title><![CDATA[zoj 2420 Calendar ]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6381428</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6381428</guid><author>lxf90</author><pubDate>Sun, 01 May 2011 08:58:00 +0800</pubDate><description><![CDATA[学习到一种很好的处理日期的方式#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]]></description><category></category></item><item><title><![CDATA[poj 1200 Crazy Search ]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6381422</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6381422</guid><author>lxf90</author><pubDate>Sun, 01 May 2011 08:48:00 +0800</pubDate><description><![CDATA[题意给定一个由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];
]]></description><category></category></item><item><title><![CDATA[poj 3268 Silver Cow Party & zoj 2008 Invitation Cards]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6378398</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6378398</guid><author>lxf90</author><pubDate>Sun, 01 May 2011 01:30:00 +0800</pubDate><description><![CDATA[参考 算法导论 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]]></description><category></category></item><item><title><![CDATA[最短路转载]]></title><link>https://blog.youkuaiyun.com/lxf90/article/details/6373644</link><guid>https://blog.youkuaiyun.com/lxf90/article/details/6373644</guid><author>lxf90</author><pubDate>Sat, 30 Apr 2011 06:40:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item></channel></rss>