2022icpc沈阳 L
Problem L. Tavern Chess
题意:给你两支队伍,依次轮流进行攻击,问每支队伍最后获胜的可能性
这个题目中要考虑到是轮流进行攻击,进攻次数较少的人会优先进行攻击。
理解:简单的深搜
#include<bits/stdc++.h>using namespace std;
int h1[10], h2[10],s1[10];
int a1[10], a2[10],s2[10];
int n, m;
//p2 A,s2 B
double p1, p2, sum;
void bfs(int a, double ps, int c, int d) {//cout << ps << "???" << a << endl;
// cout<<c<<"???"<<d<<endl;if (c == 0 && d == 0) {sum += ps;return ;}if (c == 0) {p2 += ps;return ;}if (d == 0) {p1 += ps;return ;}//a->b;if (a == 0) {int t = 0;//左边第一个活着的for (int i = 1; i <= n; i++)if (h1[i]>0&&(t==0||s1[t]>s1[i])) {t = i;//break;}s1[t]++;//cout<<t<<"!!!"<<endl;//攻击组合h2:B,h1:A//n1 A,m1 Bint n1 = c, m1 = d;for (int i = 1; i <= m; i++) {if(h2[i]<=0)continue;h2[i] -= a1[t]; //s1[t]++;h1[t] -= a2[i];//s2[i]++;if (h1[t] <= 0) n1--;if (h2[i] <= 0) m1--;bfs(1 - a, ps * 1.0 / d, n1, m1);if (h1[t] <= 0) n1++;if (h2[i] <= 0) m1++;h2[i] += a1[t]; //s1[t]--;h1[t] += a2[i]; //s2[i]--;}s1[t]--;} //b->aelse {//左边第一活着的int t = 0;for (int i = 1; i <= m; i++)if (h2[i]>0&&(t==0||s2[t]>s2[i])) {t = i;// break;}s2[t]++;int n1 = c, m1 = d;//依次攻击a中活着的for (int i = 1; i <= n; i++) {if (h1[i]>0) {h1[i] -= a2[t];//h2[t] -= a1[i];//s1[i]++;if (h1[i] <= 0) n1--;if (h2[t] <= 0) m1--;bfs(1 - a, ps * 1.0 / c, n1, m1);if (h1[i] <= 0) n1++;if (h2[t] <= 0) m1++;//st[i]=st2[t]=0;h1[i] += a2[t];//s2[t]--;h2[t] += a1[i];//s1[i]--;}}s2[t]--;}
}
int main () {cin >> n >> m;for (int i = 1; i <= n; i++)cin >> h1[i], a1[i] = h1[i];for (int i = 1; i <= m; i++)cin >> h2[i], a2[i] = h2[i];if (n < m)bfs(1, 1, n, m);else if (n > m)bfs(0, 1, n, m);else {bfs(1, 0.5, n, m);bfs(0, 0.5, n, m);}cout<<p1<<endl<<p2<<endl<<sum<<endl;
}
这个题目对于那些没有玩过炉石传说的人不太友好,题目英语说的不是很好,但是简单的签到题
2022icpc沈阳 L相关推荐
- 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings
题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...
- 2022icpc沈阳站感想
打完比赛的第一感觉就是挺狗血的,这次博弈严重失败,本以为这站队伍特别多会特别难打,想到去年打沈阳站时就差几行代码拿牌,今年就想练练手,顺便去去霉运,没想到这一站竟然是福利局,我们队伍全程排在本校第一名 ...
- 分类讨论 ---- 2021 icpc 沈阳 L Linear Fractional Transformation (思维题)
题目链接 题目大意 给你一个线性变换函数f(z)=az+bcz+df(z)=\frac{az+b}{cz+d}f(z)=cz+daz+b,现在把取值范围扩展到复数域.给你3个等式 f(z1)=w1f ...
- hdu5461(2015沈阳网络赛L题)
题意: 给出一个数列,我们要在这里找出两个数,使得题意中那个表达式最大. 思路: 排两个序就好了啊,看代码一下就懂了. 代码: #include <cstdio> #include < ...
- MPB:沈阳生态所李琪组-土壤线虫群落DNA提取、扩增及高通量测序
为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...
- 智能车竞赛技术报告 | 单车拉力组 - 沈阳航空航天大学 - 青梅绿茶队
简 介: 本设计以第十六届全国智能车大赛为背景,车模使用大赛单车拉力组指定的 K型车模,以宏晶STC16F为主控,外加自行设计的母板.驱动板和前置运放模块,配备MPU6050陀螺仪.512线编码器.聚 ...
- HDU6218 2017ACM/ICPC亚洲区沈阳站 Bridge(Set,线段树)
HDU6218 2017ACM/ICPC亚洲区沈阳站 Bridge Solution 我们考虑维护在环上的边的个数,答案就是总边数减去环上边数. 环的形态是这样的:(0,l),(0,l+1)...(0 ...
- 2016ICPC沈阳站
2016ICPC沈阳站 题号 题目 知识点 难度 A Thickest Burger 贪心 签到 B Relative atomic mass 贪心 签到 C Recursive sequence 矩 ...
- 2017 ICPC沈阳区域赛
2017 沈阳区域赛 题号 题目 难度 知识点 A BBP Formula B Bridge C Empty Convex Polygons D Defense of the Ancients E F ...
最新文章
- 最近用到的一些方法技巧
- Python 国际化
- python打地鼠游戏教程_Python入门小游戏,炫酷打地鼠教程第二部分,都是干货
- sqlserver2008未将对象引用设置到对象的实例_面试官:ThreadLocal 的内存泄漏是弱引用导致的,你确定?...
- map反转key value
- git commit时避免填写Commit Message
- 2019.3.18 区块链论文翻译
- 服务器突然关机的操作系统日志,一台R410 服务器不定时宕机,系统日志只有“上一次系统是意外关闭”...
- linux 常用工具
- MachineLearning(7)-决策树基础+sklearn.DecisionTreeClassifier简单实践
- 如果唐代诗人有微博,简直就是真实版「梦回大唐」
- Linux程序设计-1-Linux基础
- 使用 关键字来创建python自定义函数_python 自定义函数
- JVM致命错误日志详解
- 计算机低级格式化,硬盘格式化之低级格式化
- html个人所得税计算器,上海个人所得税计算器_个税计算器_税后工资计算器
- CityEngine+Python自动化建模实现【系列文章之四】
- 最近插入法和最近邻点法
- Nao机器人运行B-human代码之开始篇 1
- 【万兴PDF专家】OCR引擎的离线安装方法,让你不受网速的折磨,PDF给OCR成可搜索的高级PDF,牛逼了我的万兴