<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tianhaijun的专栏]]></title><description><![CDATA[在这里，有程序人生。望多关注。]]></description><link>https://blog.youkuaiyun.com/u011016591</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u011016591]]></copyright><item><title><![CDATA[hdu Minimum Inversion Number 的三种方法，暴力，线段树]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10826905</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10826905</guid><author>u011016591</author><pubDate>Sun, 01 Sep 2013 16:06:14 +0800</pubDate><description><![CDATA[暴力：
 
#include
#include

int a[5003];
int main()
{
	int i,j,n,sum;
	while(scanf("%d",&n)!=EOF)
	{
		sum = 0;
		for(i=1;i<=n;i++) 
		{
			scanf("%d",a+i);
			for(j=1;ja[i]) sum++;
		}
]]></description><category></category></item><item><title><![CDATA[线段树模板 hdu 敌兵布阵]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10817463</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10817463</guid><author>u011016591</author><pubDate>Sun, 01 Sep 2013 09:43:21 +0800</pubDate><description><![CDATA[#include
#include
#define N 50005
int num[N];
struct node
{
	int L;
	int R;
	int sum;
}list[N*4];

void build(int k,int x,int y)
{
	list[k].L = x;
	list[k].R = y;
	if( list[k].L == list]]></description><category></category></item><item><title><![CDATA[hdu Farm Irrigation]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10256919</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10256919</guid><author>u011016591</author><pubDate>Sat, 24 Aug 2013 11:25:12 +0800</pubDate><description><![CDATA[主要难点在构图，其实也不难，然后就是运用并查集，
把能够连通的成为一个集合，最后看有多少个集合就是所求的解。
 
#include
int n,m;
const int maxn = 60 ;
struct node
{
    int up;
    int down;
    int left;
    int right;
}list[maxn][maxn];
in]]></description><category></category></item><item><title><![CDATA[hdu find the most comfortable road]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10252485</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10252485</guid><author>u011016591</author><pubDate>Sat, 24 Aug 2013 10:05:14 +0800</pubDate><description><![CDATA[我想，将速度做一次排序，最后就是多次并查集枚举答案。
因为在排完序之后，减去起点之后的就是本次旅游的最大起伏点，多次枚举求出最小值就是解。
 
#include
#include
#include
using namespace std;

const int maxn = 205;
const int maxm = 1005;
const int INF = 0xffffff]]></description><category></category></item><item><title><![CDATA[hud Connect the Cities]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10241297</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10241297</guid><author>u011016591</author><pubDate>Fri, 23 Aug 2013 21:13:00 +0800</pubDate><description><![CDATA[注意：后面的有3个城市是指相互连接。
用模板。
 
#include
#include
const int maxn = 510;
#define INF 0xfffffff
int map[maxn][maxn],lowcost[maxn],vis[maxn],n,m,k;

int prim()
{
    int i,j,z,mins,sum=0,yes;
    f]]></description><category></category></item><item><title><![CDATA[hdu 继续畅通中。]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10241273</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10241273</guid><author>u011016591</author><pubDate>Fri, 23 Aug 2013 21:11:11 +0800</pubDate><description><![CDATA[不用多说，用模板。
 
#include
#include
const int maxn = 110;
const int INF = 0xfffffff;
int map[maxn][maxn],lowcost[maxn],vis[maxn],n;

int prim()
{
    int i,j,k,mins,yes,sum=0;
    for(i=1;i<=n;i+]]></description><category></category></item><item><title><![CDATA[hdu 畅通工程再续。]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10241243</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10241243</guid><author>u011016591</author><pubDate>Fri, 23 Aug 2013 21:09:50 +0800</pubDate><description><![CDATA[我们可以提前处理那些不能够到达的点。
 
#include
#include
#include
const int maxn = 110;
const double  INF  = 100000000.0;
double map[maxn][maxn],lowcost[maxn],x[maxn],y[maxn],z;
int vis[maxn],m;

double prim(]]></description><category></category></item><item><title><![CDATA[hdu 畅通工程]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10241213</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10241213</guid><author>u011016591</author><pubDate>Fri, 23 Aug 2013 21:06:45 +0800</pubDate><description><![CDATA[不多说，用模板，注意？是没有访问到全部的点。
 
#include
#include
const int maxn = 110;
#define INF 0xfffffff
int map[maxn][maxn],lowcost[maxn],vis[maxn],n,m;

int prim()
{
    int i,j,k,mins,yes;
    int sum=0;]]></description><category></category></item><item><title><![CDATA[hdu Jungle Roads]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10241145</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10241145</guid><author>u011016591</author><pubDate>Fri, 23 Aug 2013 21:04:43 +0800</pubDate><description><![CDATA[这一题目，主要是如何建图。
也是用模板。不多说。
 
#include
#include
using namespace std;
#define maxn 1000 + 10
#define INF 100000000
int net[maxn][maxn],lowcost[maxn],vis[maxn];
int n;

int prim()
{
    int j,]]></description><category></category></item><item><title><![CDATA[hdu 还是畅通工程]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10241117</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10241117</guid><author>u011016591</author><pubDate>Fri, 23 Aug 2013 21:02:18 +0800</pubDate><description><![CDATA[模板题目：不多说。
 
#include
#include
int n,tn;
int map[110][110];
int lowcost[110];

int prim()
{
    int i,j,z;
    int yes,min,sum=0;
    int vis[110];
    memset(vis,0,sizeof(vis));
    mems]]></description><category></category></item><item><title><![CDATA[hdu 畅通工程]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10241089</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10241089</guid><author>u011016591</author><pubDate>Fri, 23 Aug 2013 21:00:50 +0800</pubDate><description><![CDATA[我们用并查集求出共有多少个集合，然后总集合减一就是题目的解，
如果你去计算共连通了多少步，最后一组测试数据你一定会超时。
 
 
#include
#include
const int maxn = 1001;
int father[maxn],rank[maxn];
struct node
{
    int x;
    int y;
}list[maxn*maxn];]]></description><category></category></item><item><title><![CDATA[hdu Eddy's picture]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10241051</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10241051</guid><author>u011016591</author><pubDate>Fri, 23 Aug 2013 20:57:56 +0800</pubDate><description><![CDATA[直接用模板，prim kruskual 都可以。
 
prim:
#include
#include
#include
double lowcost[110];
double dp[110][110];
int visit[110];
int n;

double prim()
{
    int j,z;
    double min,sum=0.0;
    in]]></description><category></category></item><item><title><![CDATA[hdu Constructing Roads]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/10240945</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/10240945</guid><author>u011016591</author><pubDate>Fri, 23 Aug 2013 20:54:27 +0800</pubDate><description><![CDATA[题意：给出一个数N，表示有N个城市，接下来的矩阵就表示，各城市之间的连通价格，
然后给一个数M，接下的M行表示，每两个数为两个城市已经连通。（那么我们可以表示为零）；
这个题可以直接用模板解决。
 
 
#include
#include
const int maxn = 110;
#define INF 0xfffffff
int n,m,map[maxn][maxn],low]]></description><category></category></item><item><title><![CDATA[hdu Eddy's pitrue prim and kruskal]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/9791549</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/9791549</guid><author>u011016591</author><pubDate>Tue, 06 Aug 2013 15:01:06 +0800</pubDate><description><![CDATA[点击打开链接
Prim 

#include
#include
#include
double dis[110][110];
double lowcost[110];
int n;

struct node
{
    double x;
    double y;
}list[110];

double fun(double x1,double x2,double y1,double y2]]></description><category></category></item><item><title><![CDATA[巧妙的字符串分割]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/9744567</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/9744567</guid><author>u011016591</author><pubDate>Sun, 04 Aug 2013 09:28:18 +0800</pubDate><description><![CDATA[1006排序：点击打开链接




atoi这个函数原来做进制转换的时候就接触过。如果第一个非空格字符不存在或者不是数字也不是正负号则返回零，否则开始做类型转换，之后检测到非数字(包括结束符 \0) 字符时停止转换，返回整型数。（百度百科）简而言之是一个把字符型数字转化成整型的函数。
strtok函数，感觉这个比较新鲜。下面从百度百科摘点介绍：
原型
　　char *strtok(]]></description><category></category></item><item><title><![CDATA[大数的阶乘]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/9733279</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/9733279</guid><author>u011016591</author><pubDate>Sat, 03 Aug 2013 16:25:26 +0800</pubDate><description><![CDATA[#include
int main(){
	int s[1000]={0};
	int n;
	int i,j;
	s[0]=1;
	scanf("%d",&n);
	for(i=2;i<=n;i++){
		int c=0,sum=0;
		for(j=0;j<1000;j++){
			sum=i*s[j]+c;
			s[j]=sum%10;
			c=sum/10;]]></description><category></category></item><item><title><![CDATA[完全背包问题]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/9718613</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/9718613</guid><author>u011016591</author><pubDate>Fri, 02 Aug 2013 16:31:02 +0800</pubDate><description><![CDATA[详解：   
点击打开链接
 
 
 
#include
#include
#include
using namespace std;

struct node
{
	int volume;
	int values;
}g[100];

int max(int a,int b)
{
	return a>b?a:b;
}

int f[1000];

i]]></description><category></category></item><item><title><![CDATA[hdu Chopsticks]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/9612757</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/9612757</guid><author>u011016591</author><pubDate>Mon, 29 Jul 2013 10:18:40 +0800</pubDate><description><![CDATA[点击打开链接




题目分析：
些题大概意思是说，有N条不同长度的筷子，在题目中按照非递减的顺序输入。
要求找出K+8 对（每对三根筷子使得每一对的最后两根的差的平方总和最少。）并输出最少值。
看起来，这和搬寝室那一题差不多。
状态转移方程可表示为；
dp[i][j]=min(dp[i][j-1],dp[i-1][j-2]+(a[j]-a[j-1])^2;
这里为什么是dp]]></description><category></category></item><item><title><![CDATA[hdu FatMouse's Speed]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/9569387</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/9569387</guid><author>u011016591</author><pubDate>Sun, 28 Jul 2013 21:03:28 +0800</pubDate><description><![CDATA[点击打开链接

FatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want to take the data on a collection of mice and put as large a subset of this data as possible into ]]></description><category></category></item><item><title><![CDATA[hdu Doing Homework again]]></title><link>https://blog.youkuaiyun.com/u011016591/article/details/9569337</link><guid>https://blog.youkuaiyun.com/u011016591/article/details/9569337</guid><author>u011016591</author><pubDate>Sun, 28 Jul 2013 20:25:37 +0800</pubDate><description><![CDATA[题目链接：点击打开链接


roblem Description 

Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If]]></description><category></category></item></channel></rss>