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 ...
随机推荐
- Delphi之DLL知识学习5---在Delphi应用程序中使用DLL
首先说明一下:同一个动态库(DLL)被多个的程序加载的话,那么将会在每次加载的时候都会重新分配新的独立的内存空间,绝对不是共用一个,所以当一个DLL被多次加载的时候,其会在内存中“复制”多份,不会互相 ...
- Delphi如何处理不同类型的文件
参考:http://www.cnblogs.com/railgunman/articles/1800318.html 程序设计当中,我们时常遇到需要处理文件.目录及驱动器的情况,这里将对如何处理不同类 ...
- OCJP(1Z0-851) 模拟题分析(四)over
Exam : 1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam 以下分析全都是我自己分析或者参考网上的,定有 ...
- 基于MyEclipse6.5的ssh整合
1.编写目的 为了学习,为了更好的学习java. 为了让想要学习这个整合的人少走弯路! ! ! 2.实验环境 l MyEclipse6.5 l JBoss4.2.1 l SQL2005 l 数据库脚本 ...
- MVA Universal Windows Apps系列学习笔记1
昨天晚上看了微软的Build 2015大会第一天第一场演讲,时间还挺长,足足3个小时,不过也挺震撼的.里面提到了windows 10.Microsoft edge浏览器.Azure云平台.Office ...
- 深入理解JavaScript定时机制和定时器注意问题
容易欺骗别人感情的JavaScript定时器 JavaScript的setTimeout与setInterval是两个很容易欺骗别人感情的方法,因为我们开始常常以为调用了就会按既定的方式执行, 我想不 ...
- Solr入门之(1)前言与概述
一.前言:为何选择Solr 由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有几种方案可供选择: 1. 基于Lucene自己进行封 ...
- [WebService] the namespace on the "definitions" element, is not a valid SOAP version
公司对外通过webservice访问别人接口,对方webservice IP地址发生变化,切换过去之后,始终报错,在网上搜索了各种办法之后,暂时总结该问题几种可能解决办法,待真正解决时用的到. 异常详 ...
- 时间编程,王明学learn
时间编程 一.时间类型 Coordinated Universal Time(UTC):世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT) Calend ...
- C语言文件操作fclose在NDK引起的BUG
今天在NDK中写了一个简单的写入文件操作: FILE *fp = fopen("/sdcard/test.txt","w"); if(fp == NULL) { ...