HDU 3720 Arranging Your Team(DFS)
队内赛里,匆匆忙忙写的。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <algorithm>
using namespace std;
int v[];
int flag[];
int o[][];
int p[];
char name[];
char fa[];
int que[][];
int s[];
int sf[];
int key[];
int maxz;
int judge(char *str)
{
if(strcmp("goalkeeper",str) == )
return ;
else if(strcmp("defender",str) == )
return ;
else if(strcmp("midfielder",str) == )
return ;
else if(strcmp("striker",str) == )
return ;
return ;
}
void dfs(int y,int x,int step,int sd)
{
int i,j,k,st;
if(step > )
{
st = ;
for(j = ;j < ;j ++)
st += v[p[j]];
for(j = ; j < ; j ++)
{
for(k = j+; k < ; k ++)
st += o[p[j]][p[k]];
}
maxz = max(st,maxz);
return ;
}
for(i = y;i < s[step];i ++)
{
if(!sf[que[step][i]])
{
sf[que[step][i]] = ;
p[sd] = que[step][i];
if(x+ > key[step])
dfs(,,step+,sd+);
else
dfs(i+,x+,step,sd+);
sf[que[step][i]] = ;
}
}
return ;
}
int main()
{
int i,m,sc;
key[] = ;
key[] = ;
key[] = ;
key[] = ;
while(scanf("%s%d%s",name,&v[],fa)!=EOF)
{
memset(o,,sizeof(o));
memset(s,,sizeof(s));
memset(sf,,sizeof(sf));
memset(que,,sizeof(que));
map<string,int> mp;
mp[name] = ;
flag[] = judge(fa);
que[flag[]][s[flag[]]] = ;
s[flag[]] ++;
for(i = ; i < ; i ++)
{
scanf("%s%d%s",name,&v[i],fa);
mp[name] = i;
flag[i] = judge(fa);
que[flag[i]][s[flag[i]]] = i;
s[flag[i]] ++;
}
scanf("%d",&m);
for(i = ; i < m; i ++)
{
scanf("%s%s%d",name,fa,&sc);
int a,b;
a = mp[name];
b = mp[fa];
o[a][b] += sc;
o[b][a] += sc;
}
if(s[] < ||s[] < ||s[] < ||s[] < )
{
printf("impossible\n");
continue;
}
maxz = -;
dfs(,,,);
printf("%d\n",maxz);
}
return ;
}
HDU 3720 Arranging Your Team(DFS)的更多相关文章
- HDU 3720 Arranging Your Team
先分组,然后暴力:注意 初始化时不要为0 会有负数:我直接二进制枚举: dfs是正解:呵呵 #include <iostream> #include <cstdio> #in ...
- hdu 3720 Arranging Your Team 枚举
不可能解可以直接判断. 搭配产生的附加分可以用一个二维数组保存. 枚举1442,4种类型的人,因为总人数只有23个,所以可以搜索暴力枚举,然后保存最优解. 注意trick,答案可能为负数,所以初始化a ...
- hdu3720 Arranging Your Team
Arranging Your Team Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- HDU 1241 Oil Deposits --- 入门DFS
HDU 1241 题目大意:给定一块油田,求其连通块的数目.上下左右斜对角相邻的@属于同一个连通块. 解题思路:对每一个@进行dfs遍历并标记访问状态,一次dfs可以访问一个连通块,最后统计数量. / ...
- hdu 1241 Oil Deposits(DFS求连通块)
HDU 1241 Oil Deposits L -DFS Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & ...
- HDOJ(HDU).1258 Sum It Up (DFS)
HDOJ(HDU).1258 Sum It Up (DFS) [从零开始DFS(6)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双 ...
- HDOJ(HDU).1016 Prime Ring Problem (DFS)
HDOJ(HDU).1016 Prime Ring Problem (DFS) [从零开始DFS(3)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...
- Arranging Your Team HDU - 3720 【DFS】
思路 题意:此题大意是指首先给你23个队员的信息,包括他们的名字,能力值,在赛场上的职位.然后给出几个若能满足某两个队员同时在球场上就额外加上一定的值.最后让你从23个队员中选出11个人,使得最终的v ...
- 2017ACM暑期多校联合训练 - Team 9 1005 HDU 6165 FFF at Valentine (dfs)
题目链接 Problem Description At Valentine's eve, Shylock and Lucar were enjoying their time as any other ...
随机推荐
- K-MEANS算法总结
K-MEANS算法 摘要:在数据挖掘中,K-Means算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 在数据挖掘中,K-M ...
- Sencha Architect 安装与使用
http://www.sencha.com/products/touch/ Sencha SDK Tools Advanced JavaScript and CSS Project Build Too ...
- 10g 11g配置Logical Standby
1.创建一个物理Standby数据库 详细见11g Physical Standby配置 2.Standby数据库取消managed recovery ALTER DATABASE RECOVER ...
- C# IP地址与整数之间的转换
IP地址与整数之间的转换 1.IP地址转换为整数 原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个无符号的32位整数. 举例:一 ...
- [J2EE] 在Web如何取得相关路径
来自网络,自己整整一下: request.getRealPath("url"); // 虚拟目录映射为实际目录,不建议使用,使用ServletContext.getRealPath ...
- JSP/Servlet的编码原理
转自:http://janwer.iteye.com/blog/150226 首先,说说 JSP/Servlet 中的几个编码的作用 在 JSP/Servlet 中主要有以下几种设置编码的方式: pa ...
- C# 指针操作图像 二值化处理
/// <summary> /// 二值化图像 /// </summary> /// <param name="bmp"></param& ...
- loj 1412(树上最长直径的应用)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1412 思路:好久没写题解了,有点手生,这题从昨天晚上wa到现在终于是过了...思想其实 ...
- python web编程-CGI帮助web服务器处理客户端编程
这几篇博客均来自python核心编程 如果你有任何疑问,欢迎联系我或者仔细查看这本书的地20章 另外推荐下这本书,希望对学习python的同学有所帮助 概念预热 eb客户端通过url请求web服务器里 ...
- java的安装环境配置详细步骤
--------------------声明,如果你有什么建议或者不懂的地方,欢迎回复,我们可以互相学习,转载请注明出处,谢谢---------------- 首先得安装jdk(Java Develo ...