在 Linux 内核代码,特别是驱动代码中经常见到的用法是使用一个标准结构,后面的代码基于这个结构来实现,类似面向对象的多态特性。
在 C 语言里面借助结构体和函数指针实现的这个功能,这里我们写了个例子,提取了关键代码:
#include
struct s_new{
char name[10];
char* (* my_method)(char *name);...
分类:
系统相关 时间:
2014-05-23 07:58:18
阅读次数:
324
题意:求一个无向图的,去掉两个不同的点后最多有几个连通分量。
思路:枚举每个点,假设去掉该点,然后对图求割点后连通分量数,更新最大的即可。算法相对简单,但是注意几个细节:
1:原图可能不连通。
2:有的连通分量只有一个点,当舍去该点时候,连通分量-1;
复习求割点的好题!
#include
#include
#include
using namespace std;
i...
分类:
其他好文 时间:
2014-05-23 07:56:52
阅读次数:
317
http://acm.hdu.edu.cn/showproblem.php?pid=2833
大致题意:给定一个无向图,以及悟空和师傅起点与终点,求它们分别从起点到终点的最短路径中经过相同的点的最大个数。
思路:首先dijkstra求出最短路,那么如果有dis[a] + map[a][b] = dis[b],则边(a,b)一定在最短路径上。根据这一定理可以求出所有最短路径。然后...
分类:
其他好文 时间:
2014-05-22 13:00:41
阅读次数:
234
#include
//#include
using namespace std;
struct node
{
char word[10];
int num;
};
node obj[100];
void my_word(char input[], char output[])
{
int sum=0,flag=0;...
分类:
其他好文 时间:
2014-05-22 12:41:25
阅读次数:
233
题意:
给定n个点 m条有向边 k
下面m条有向边
问删最少几个点使得1-n的最短路>k
这样思考:
如果k = inf,那么我们只要给每个点拆点一下,限流为1,然后原图的边容量为inf,跑个最小割即可(这样建图就能求出删点的最小割,而不是删边的最小割)
注意这样建图,起点拆点出的边容量=inf,终点同理
而此题中,我们只需要把所有在满足k条件的所有路径上的点加入图即...
分类:
其他好文 时间:
2014-05-22 12:20:36
阅读次数:
258
http://acm.hdu.edu.cn/showproblem.php?pid=3832
大致题意:给出n个灯的位置以及每个灯照亮的范围。问最后至多可以熄灭多少盏灯使得编号为1,2,3的点连通。
思路:若任意两灯的照亮范围相交,那么两点之间建边,权值为1。最后枚举一点使它到1,2,3点的距离最近,那么该距离之和+1(还有该点本身)代表必须不能熄灭的灯,那么熄灭的灯数就求出来...
分类:
其他好文 时间:
2014-05-22 08:46:23
阅读次数:
229
N皇后问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7743 Accepted Submission(s): 3481
Problem Description
在N*N的方格棋盘放置了N个皇后,使得它...
分类:
其他好文 时间:
2014-05-22 08:21:38
阅读次数:
147
题目:
链接:点击打开链接
题意:
有n个朋友,编号为1......n。知道其中一些人相互认识,求最少需要多少桌子。
算法:
并查集算法的模板题。
(来源:LCY-teacher课件)
>>在某个城市里住着n个人,现在给定关于 n个人的m条信息(即某2个人认识)假设所有认识的人一定属于同一个单位,请计算该城市最多有多少单位?
>>如何实现...
分类:
其他好文 时间:
2014-05-22 08:03:40
阅读次数:
314
数塔
Problem Description
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:
有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?
已经告诉你了,这是个DP的题目,你能AC吗?
Input
输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整...
分类:
其他好文 时间:
2014-05-22 06:32:17
阅读次数:
198
DWORD WINAPI mythread( LPVOID lpParameter) //客户线程{ struct My my; memcpy(&my,lpParameter,sizeof(My)); printf("One client connect!\n"); char str1; ......
分类:
其他好文 时间:
2014-05-22 06:31:02
阅读次数:
319