随笔 - 62  文章 - 96  trackbacks - 0
<2025年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用链接

留言簿(7)

随笔分类(66)

随笔档案(62)

文章分类(31)

文章档案(32)

友情链接

最新随笔

积分与排名

  • 积分 - 234754
  • 排名 - 108

最新评论

阅读排行榜

评论排行榜

#include<cstdio>
#include<memory>
using namespace std;
const int MAX = 10001;
bool map[MAX][MAX],visit[MAX];
int match[MAX];
int a, b;
bool DFS(int i)
{
	int j, k = 1;
	for(j = 1 ; j <= b; j++)
	{
		if(map[i][j] && !visit[j])
		{
			visit[j] = true;
			k = match[j];
			match[j] = i;
			if(k == 0 || DFS(k))
				return true;
			match[j] = k;
		}
	}
	return false;
}
int Hungary()
{	
	int	j, ans = 0;
	memset(match, 0, sizeof(match));
	for(j = 1; j <= a; j++)
	{
		memset(visit,false, sizeof(visit));
		if(DFS(j))
			ans++;
	}
	return ans;
}
int main()
{
	int i, j, n,ans;
	memset(map,false,sizeof(map));
	scanf("%d%d",&a,&b);
	ans = Hungary();
	printf("%d\n",ans);	
	return 0;
}
posted @ 2006-10-24 18:34 beyonlin 阅读(1345) | 评论 (1)编辑 收藏

转自:http://blog.csdn.net/liu_tang/archive/2006/08/01/1008611.aspx
函数名: scanf
功  能: 执行格式化输入
用  法: int scanf(char *format[,argument,...]);

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。

其调用格式为:      scanf("<格式化字符串>",<地址表>);

scanf()函数返回成功赋值的数据项数,出错时则返回EOF。

其控制串由三类字符构成:

1。格式化说明符;
2。空白符;
3。非空白符;


(A)                格式化说明符


格式字符           说明

%a                 读入一个浮点值(仅C99有效)
%A                 同上
%c                 读入一个字符
%d                 读入十进制整数
%i                 读入十进制,八进制,十六进制整数
%o                 读入八进制整数
%x                 读入十六进制整数
%X                 同上
%c                 读入一个字符
%s                 读入一个字符串
%f                 读入一个浮点数
%F                 同上
%e                 同上
%E                 同上
%g                 同上
%G                 同上
%p                 读入一个指针
%u                 读入一个无符号十进制整数
%n                 至此已读入值的等价字符数
%[]                扫描字符集合
%%                 读%符号

posted @ 2006-10-18 22:51 beyonlin 阅读(782) | 评论 (0)编辑 收藏
istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
	string str, line;
	while(getline(cin, line))
	{
		istringstream stream(line);
		while(stream>>str)
			cout<<str.c_str()<<endl;
	}	
	return 0;
}
测试:
input:
abc   df   e              efgeg      ffg

ouput:
abc
df
e
efgeg
ffg
posted @ 2006-10-17 00:37 beyonlin 阅读(19284) | 评论 (3)编辑 收藏
#include<cstdio>
const int MAX = 10000;
const int INF = 1000000;
int clo[MAX];
int low[MAX];
int c[MAX][MAX];
bool flag[MAX];
int beg[MAX],end[MAX];//记录生成树的每条边的两个顶点
int Prim(int n)
{
	int i, j, k, ans = 0, pair = 0;
	flag[1] = true;
	for(i = 2; i <= n; i++)
	{
		low[i] = c[1][i];
		clo[i] = 1;
		flag[i] = false;
	}
	for(i = 1; i < n; i++)
	{
		j = 1;
		int min = INF;
		for(k = 2; k <=n; k++)
		{
			if(low[k] < min && !flag[k])
			{
				min = low[k];
				j = k;
			}
		}
		flag[j] = true;
		beg[i] = j;
		end[i] = clo[j];
		ans += c[j][clo[j]];
		for(k = 2; k <= n; k++)
		{
			if(c[j][k] < low[k] && !flag[k])
			{
				low[k] = c[j][k];
				clo[k] = j;
			}
		}
	}
	return ans;
}
int main()
{
	int i, j, n, m;
	scanf("%d%d",&n,&m);
	for(i = 1; i <= n; i++)
	{
		for(j = 1; j <=n; j++)
		{
			c[i][j]=INF;
		}
	}
	return 0;
}
posted @ 2006-10-13 23:48 beyonlin 阅读(3063) | 评论 (4)编辑 收藏
#include<cstdlib>
#include<cstdio>
int main() { int num = 10; char str[100]; itoa(num, str, 2); printf("%s\n", str); return 0; }
itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是目标字符串,第三个参数是转移数字时所用 的基数。在上例中,转换基数为10。10:十进制;2:二进制……
于是想到了一个十进制转二进制的方法:
#include<cstdlib>
#include<cstdio>
int main() { int num = 10; char str[100]; int n = atoi(itoa(num, str, 2)); printf("%d\n",n); return 0; }
先把num转换为二进制的字符串,再把该字符串转换为整数。
posted @ 2006-10-12 00:59 beyonlin 阅读(67434) | 评论 (14)编辑 收藏
仅列出标题
共12页: 1 2 3 4 5 6 7 8 9 Last