hdu 1500

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

题意:有两台机器A和B以及N个需要运行的任务。每台机器有M种不同的模式,而每个任务都恰好在一台机器上运行。如果它在机器A上运行,则机器A需要设置为模式xi,如果它在机器B上运行,则机器A需要设置为模式yi。<br>每台机器上的任务可以按照任意顺序执行,但是每台机器每转换一次模式需要重启一次。请合理为每个任务安排一台机器并合理安排顺序,使得机器重启次数尽量少。<br>最小点覆盖 没说的<br>#include<iostream>

#include<cstring>

using
namespace std;

int n,m,k;

int map[111][111];

int vis[111];

int fa[111];

int dfs(int
x)

{

    for(int
i=1;i<=m;i++)

    {

        if(map[x][i]&&vis[i]==-1)

        {

            vis[i]=1;

            if(fa[i]==-1||dfs(fa[i]))

            {

                fa[i]=x;

                return
1;

            }

        }

    }

    return
0;

}

int
main()

{

    int
i,job,u,v;

    while(scanf("%d",&n)!=EOF)

    {

        if(n==0)

            break;

        scanf("%d%d",&m,&k);

        memset(map,0,sizeof(map));

        for(i=1;i<=k;i++)

        {

            scanf("%d%d%d",&job,&u,&v);

           // map[v][u]=1;

            map[u][v]=1;

        }

        memset(vis,-1,sizeof(vis));

        memset(fa,-1,sizeof(fa));

        int
sum=0;

        for(i=1;i<=n;i++)

        {

           memset(vis,-1,sizeof(vis));

           sum+=dfs(i);

        }

        printf("%d\n",sum);

    }

    return
0;

}

hdu 1500,布布扣,bubuko.com

时间: 2024-11-29 02:19:52

hdu 1500的相关文章

hdu 1500 Chopsticks

http://acm.hdu.edu.cn/showproblem.php?pid=1500 dp[i][j]为第i个人第j个筷子. 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 int dp[1011][5011]; 7 int a[5011]; 8 int k,n; 9 int sqr(int x) 10 { 11 return x

hdu 1500 Chopsticks DP

题目链接:HDU - 1500 In China, people use a pair of chopsticks to get food on the table, but Mr. L is a bit different. He uses a set of three chopsticks -- one pair, plus an EXTRA long chopstick to get some big food by piercing it through the food. As you

!HDU 1500 Chopsticks-dp-(分组问题)

题意:一种新式筷子:每副有三支,两支短的,长度差要尽可能小:一支长的,只要满足是一副里最长的就行.在n支筷子里选k副,要求每副里的短筷子的长度差总和最小 分析: 分组dp模型.这题跟搬寝室那题差不多,但这题的每组里多了一个长筷子,所以排序的时候从大到小,这样才能在一遍dp的时候一遍把长的选进每一组里,具体怎么实现的不要过于钻牛角尖. 正如搬寝室里总结的分组模型的实现方式有两种,这里也给出两个代码.注意具体实现上的一些细节差异,还有初始化. 把两道题结合起来看加深理解. 代码1: #include

HDU 4082 Hou Yi&#39;s secret-求相似三角形的最大个数-(坑货)

题意:找相似三角形的最大个数.注意不是所有相似三角形的个数,而是不同类相似三角形 中个数最大的 分析: 之前理解成了所有相似三角形的个数,所以尽管考虑了所有的特殊情况以及精度问题还是不停的wawawa,甚至重新写了一遍不用余弦来判断而是用边.绝望之中仔细看别人的代码,原来题意理解错了. 这题的收获: 1.三角形相似的判定:用余弦定理.或者边成比例.最好用边,然后判定的时候不用比值,用乘积,这样就不存在精度问题. 2.耐心.对自己有信心. 代码: #include<iostream> #incl

HDU分类

模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 12

HDU 4888

Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1993    Accepted Submission(s): 446 Problem Description Alice and Bob are playing together. Alice is crazy about art an

hdu 3466 Proud Merchants(0-1背包+排序)

题目来源:hdu 3466 Proud Merchants Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 3595 Accepted Submission(s): 1500 Problem Description Recently, iSea went to an ancient country. For

HDU 1058 Humble Numbers(离线打表)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1058 解题报告:输入一个n,输出第n个质因子只有2,3,5,7的数. 用了离线打表,因为n最大只有5842. 1 #include<stdio.h> 2 #define INT __int64 3 INT ans[5850] = { 4 0,1,2,3,4,5,6,7,8,9,10,12,14,15,16,18,20,21,24,25,27,28,30,32,35,36,40,42,45,48,4

hdu 4939 Stupid Tower Defense ( dp )

题目链接 题意:给出一条长为n个单位长度的直线,每通过一个单位长度需要t秒. 有3种塔,红塔可以在当前格子每秒造成x点伤害,绿塔可以在之后的格子每秒造成y点伤害, 蓝塔可以使通过单位长度的时间增加z秒.问如何安排3种塔的顺序使得造成的伤害最大,输出最大伤害值. 分析:比赛的时候实在是没有想出来有三种不同的 塔,每种塔的作用不同,怎么dp.看题解才知道,应该把 所有的红塔放到最后面,因为直线的长度是一定的,而红塔在前面不会增加后面的伤害,然后问题就是如何安排 绿塔和蓝塔,我这里d[i][j]代表前