Arranging Your Team
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=35800#problem/D
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <cstdio>
#include <vector>
#include <map>
using namespace std;
const int INF=<<;
const int N= ; bool vis[N];
vector<int>p[N];
map<string,int>name_id;
map<string,int>pos_id;
int value[N],link[N][N],ans; int res()
{
int ans1 = ;
for (int i = ; i <= ; i++)
if(vis[i])
ans1+=value[i];
for (int i = ; i <= ; i++)
{
for (int j = i+; j <= ; j++)
{
if (vis[i]&&vis[j])
ans1+= link[i][j];
}
}
return ans1;
} void dfs4(int cnt,int pos)
{
if (cnt==)
{
//cout<<res()<<endl;
ans = max(ans,res());
return ;
}
for (int i = pos; i <(signed)p[].size(); i++)
{
vis[p[][i]] = true;
dfs4(cnt+,i+);
vis[p[][i]] = false;
}
}
void dfs3(int cnt,int pos)
{
if (cnt==)
{
dfs4(,);
return ;
}
for (int i = pos; i <(signed)p[].size(); i++)
{
vis[p[][i]] = true;
dfs3(cnt+,i+);
vis[p[][i]] = false;
}
}
void dfs2(int cnt,int pos)
{
if (cnt==)
{
dfs3(,);
return ;
}
for (int i = pos; i < (signed)p[].size(); i++)
{
vis[p[][i]] = true;
dfs2(cnt+,i+);
vis[p[][i]] = false;
}
}
void dfs1(int cnt,int pos)
{
if (cnt==)
{
dfs2(,);
return;
}
for (int i = pos; i < (signed)p[].size(); i++)
{
vis[p[][i]] = true;
dfs1(cnt+,i+);
vis[p[][i]] = false;
}
}
void init()
{
ans = -INF;
name_id.clear();
memset(value,,sizeof(value));
memset(link,,sizeof(link));
memset(vis,false,sizeof(vis));
for (int i = ; i <= ; i++)
p[i].clear();
}
int main()
{
pos_id["goalkeeper"] = ;
pos_id["striker"] = ;
pos_id["midfielder"] = ;
pos_id["defender"] = ;
string name,pos;
while(cin>>name)
{
init();
cin>>value[]>>pos;
name_id[name] = ;
p[pos_id[pos]].push_back();
for (int i = ; i <= ; i++)
{
cin>>name>>value[i]>>pos;
name_id[name] = i;
p[pos_id[pos]].push_back(i);
}
int m,val;
string name1,name2;
cin>>m;
while(m--)
{
cin>>name1>>name2>>val;
link[name_id[name1]][name_id[name2]] = val;
link[name_id[name2]][name_id[name1]] = val;
}
if (p[].size() < ||p[].size() < ||p[].size() < ||p[].size() < )
{
printf("impossible\n");
continue;
}
dfs1(,);
printf("%d\n",ans);
}
return ;
}
Arranging Your Team的更多相关文章
- hdu3720 Arranging Your Team
Arranging Your Team Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- HDU 3720 Arranging Your Team(DFS)
题目链接 队内赛里,匆匆忙忙写的. #include <cstdio> #include <cstring> #include <iostream> #includ ...
- hdu 3720 Arranging Your Team 枚举
不可能解可以直接判断. 搭配产生的附加分可以用一个二维数组保存. 枚举1442,4种类型的人,因为总人数只有23个,所以可以搜索暴力枚举,然后保存最优解. 注意trick,答案可能为负数,所以初始化a ...
- HDU 3720 Arranging Your Team
先分组,然后暴力:注意 初始化时不要为0 会有负数:我直接二进制枚举: dfs是正解:呵呵 #include <iostream> #include <cstdio> #in ...
- Arranging Your Team HDU - 3720 【DFS】
思路 题意:此题大意是指首先给你23个队员的信息,包括他们的名字,能力值,在赛场上的职位.然后给出几个若能满足某两个队员同时在球场上就额外加上一定的值.最后让你从23个队员中选出11个人,使得最终的v ...
- Configure a VLAN on top of a team with NetworkManager (nmcli) in RHEL7
SOLUTION VERIFIED September 13 2016 KB1248793 Environment Red Hat Enterprise Linux 7 NetworkManager ...
- Create a Team in RHEL7
SOLUTION VERIFIED September 13 2016 KB2620131 Environment Red Hat Enterprise Linux 7 NetworkManager ...
- Team Leader 你不再只是编码, 来炖一锅石头汤吧
h3{ color: #000; padding: 5px; margin-bottom: 10px; font-weight: bolder; background-color: #ccc; } h ...
- Configure bridge on a team interface using NetworkManager in RHEL 7
SOLUTION IN PROGRESS February 29 2016 KB2181361 environment Red Hat Enterprise Linux 7 Teaming,Bridg ...
随机推荐
- centOS7卸载google-chrome
参考: https://www.jianshu.com/p/39d0b8f578d9
- CAD绘制一个箭头(com接口)
1 2 3 4 5 6 7 8 //绘制一个箭头 axMxDrawX1.PathMoveToEx(1000, 300, 10, 10, 0); //设置路径下一点 axMxDrawX1.Path ...
- sublime右键菜单,anaconda设置
1.sublime_addright.inf [Version]Signature="$Windows NT$" [DefaultInstall]AddReg=SublimeTex ...
- 293. [NOI2000] 单词查找树——COGS
293. [NOI2000] 单词查找树 ★★ 输入文件:trie.in 输出文件:trie.out 简单对比时间限制:1 s 内存限制:128 MB 在进行文法分析的时候,通常需要检 ...
- elasticsearch学习(1)简单查询与聚合
elastic 被用作全文搜索.结构化搜索.分析以及这三个功能的组合 一个ElasticSearch集群可以包含多个索引, 每个索引包含多个类型 一个类型存储着多个文档 每个文档又有多个属性 索引(名 ...
- 25.TF&IDF算法以及向量空间模型算法
主要知识点: boolean model IF/IDF vector space model 一.boolean model 在es做各种搜索进行打分排序时,会先用boolean mo ...
- css图片居中(水平居中和垂直居中)
css图片居中(水平居中和垂直居中) css图片居中分css图片水平居中和垂直居中两种情况,有时候还需要图片同时水平垂直居中,下面分几种居中情况分别介绍. css图片水平居中 利用margin: 0 ...
- 使用 lua 编写 wireshark 协议解析插件
一.平台 操作系统:windows 7 wireshark:1.10.3 lua:5.1 二.准备 lua 语言基本语法,特别是关于表操作和循环 wireshark 文档,包括用户使用文档和开发者文档 ...
- unigui菜单【3】
unigui菜单TuniTreeView 根据数据库表中的内容,显示菜单的处理: function TMainForm.CreateMenu: Integer; var myMenuPoint : P ...
- 洛谷—— P2424 约数和
https://www.luogu.org/problem/show?pid=2424 题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f ...