题意:

有7个英雄,3只BOSS,给出每个英雄喜欢的英雄和3只BOSS的经验,问你如何分配英雄去打这三只BOSS(每只BOSS至少分配一人),能使他们获得的经验的差最小,然后使队伍里好感度最大(好感度是指如果a英雄喜欢b英雄那么好感度+1)。

思路:

因为就只有7个人,可以直接枚举每个队伍的分配情况,只有4种情况:(5,1,1),(4,2,1),(3,3,1),(3,2,2)。然后每种情况去枚举英雄的分配情况,这里用1~7的全排列共有7!=5040种,算他们的经验和好感度,并维护。

#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;const int INF=0x3f3f3f3f;
char name1[15],name2[15],other[15];
double a[5],d[5];
int n[5];
bool vis[15][15];int Get(char name[]){if(strcmp(name,"Anka")==0) return 1;if(strcmp(name,"Chapay")==0) return 2;if(strcmp(name,"Cleo")==0) return 3;if(strcmp(name,"Troll")==0) return 4;if(strcmp(name,"Dracul")==0) return 5;if(strcmp(name,"Snowy")==0) return 6;if(strcmp(name,"Hexadecimal")==0) return 7;
}int Dis(int n3,int n2,int n1){d[1]=(int)(a[1]*1.0/n1);d[2]=(int)(a[2]*1.0/n2);d[3]=(int)(a[3]*1.0/n3);sort(d+1,d+1+3);return d[3]-d[1];
}int Sum(int n3,int n2,int n1){int a[15],res=0;for(int i=1;i<=7;i++){a[i]=i;}do{vector<int> se[5];for(int i=1;i<=n1;i++){se[1].push_back(a[i]);}for(int i=n1+1;i<=n1+n2;i++){se[2].push_back(a[i]);}for(int i=n1+n2+1;i<=n1+n2+n3;i++){se[3].push_back(a[i]);}int tmp=0;for(int k=1;k<=3;k++){for(int i=0;i<se[k].size();i++){int u=se[k][i];for(int j=0;j<se[k].size();j++){int v=se[k][j];if(vis[u][v]) tmp++;if(vis[v][u]) tmp++;}}}tmp/=2;res=max(res,tmp);}while(next_permutation(a+1,a+1+7));return res;
}int main(){int m;scanf("%d",&m);int u,v;memset(vis,false,sizeof(vis));for(int i=1;i<=m;i++){scanf("%s%s%s",name1,other,name2);u=Get(name1);v=Get(name2);vis[u][v]=true;}for(int i=1;i<=3;i++){scanf("%lf",&a[i]);}sort(a+1,a+1+3);int ans1=INF,t1;int ans2=0,t2;t1=Dis(5,1,1);t2=Sum(5,1,1);if(ans1>t1) ans1=t1,ans2=t2;else if(ans1==t1) ans2=max(ans2,t2);t1=Dis(4,2,1);t2=Sum(4,2,1);if(ans1>t1) ans1=t1,ans2=t2;else if(ans1==t1) ans2=max(ans2,t2);t1=Dis(3,3,1);t2=Sum(3,3,1);if(ans1>t1) ans1=t1,ans2=t2;else if(ans1==t1) ans2=max(ans2,t2);t1=Dis(3,2,2);t2=Sum(3,2,2);if(ans1>t1) ans1=t1,ans2=t2;else if(ans1==t1) ans2=max(ans2,t2);printf("%d %d\n",ans1,ans2);return 0;
}

Codeforces 77A Heroes相关推荐

  1. Kotlin Heroes 5: ICPC Round —— Codeforces Contest

    Kotlin Heroes 5: ICPC Round 传送门(点击传送) 注:这场比赛整场只允许用 Kotlin 作为唯一语言.之前练习赛现学的,有语法不规范或者错误的地方欢迎教导和指正. A. S ...

  2. Educational Codeforces Round 114 (Rated for Div. 2)C. Slay the Dragon

    题目链接:Problem - 1574C - Codeforces Recently, Petya learned about a new game "Slay the Dragon&quo ...

  3. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  4. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  5. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  6. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  7. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  8. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  9. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

最新文章

  1. 单页面与多页面的区别与优缺点?
  2. 声学漫谈之三:听觉的分辨力
  3. ubuntu下载工具aria2 uGet
  4. Linux的bc命令计算π的值预估系统算力
  5. 最小生成树 Kruskal算法 Prim算法
  6. Linux内核分析 - 网络[三]:从netif_receive_skb()说起
  7. UVA 1411 - Ants(二分图完美匹配)
  8. need to focus
  9. 最简单的视音频播放示例6:OpenGL播放YUV420P(通过Texture,使用Shader)
  10. 代码开源许可证 区别 Apache MIT GPL
  11. java提高篇(十三)-----字符串
  12. Unity3D开发资料
  13. python实现动态壁纸_如何实现一个 windows 桌面动态壁纸
  14. 【2020-09-22】某药品信息APP抓包
  15. Sophix热修复问题以及加固
  16. python渗透攻击
  17. Android 左飞字幕的实现(带描边)
  18. 用计算机弹霜雪千年,霜雪千年(完整版)-双笙-和弦谱-《弹吧》官网tan8.com-和弦谱大全,学吉他,秀吉他...
  19. 《图解密码技术》笔记5:公钥密码-用公钥加密,用私钥解密
  20. border渐变 ios_iOS一个方法搞定view渐变色

热门文章

  1. jupyter新建文件_jupyter notebook页面不显示文件,也无法新建文件
  2. Nginx 新手入门学习
  3. jQuary斑马条纹
  4. Word排版之利用交叉引用插入参考文献
  5. [shell]计算闺年
  6. 数字信号处理信号的圆周卷积MATLAB实现——实例
  7. 天龙八部TLBB系列 - 关于包裹掉落的物品
  8. python导入数据聚类分析实例_聚类分析实战解析与总结 - 数据分析
  9. vue高德、谷歌地图动态加载
  10. 金蝶kis标准版如何修改服务器地址,金蝶kis怎么设置服务器地址