[SCOI2016]妖怪 牛客网的ACM省选题,个人看法,欢迎交流
链接:https://ac.nowcoder.com/acm/contest/390/1001
来源:牛客网
题目描述
输入描述:
第一行一个n,表示有n只妖怪。接下来n行,每行两个整数atk和dnf,表示妖怪的攻击力和防御力。1 ≤ n ≤ 10^6, 0<atk,dnf ≤ 10^8
输出描述:
输出在最不利情况下最强妖怪的战斗力值,保留4位小数。
输入
3 1 1 1 2 2 2
输出
8.0000
解题思路
首先,对于一只妖怪,在(a,b)环境下,它可能会增强ka的攻击力,同时相应的会降低kb的防御力,但是它的防御力为非负,所以它的攻击力最大的时候,也就是它的防御力为零的时候。同理,它的防御力最大的时候,它的攻击力为零。由此,我们可以得到在(a,b)环境下,妖怪攻击力最大时的k值k1,和防御力最大时的k值k2。
设妖怪的初始攻击力为x0,初始防御力为y0。它在(a,b)环境下的最大攻击力为x0+k1*a,最大防御力为y0+k2*b,其中k1、k2满足y0-k1*b=0和x0-k2*a=0。
那么该妖怪在环境(a,b)中的战斗力为
变换可得到
即当,F具有最小值,此时的 环境(a,b)为该妖怪最不利的环境。
Python代码
import sys
maxv = 0.0
maxxy = [1,2]
ad = []
lines = sys.stdin.readlines()
for i in lines[1:]:i = i.split()x0 = int(i[0])y0 = int(i[1])F = x0+y0if F>maxv:maxv = Fmaxxy = [x0,y0]
x = maxxy[0]**0.5
y = maxxy[1]**0.5
maxv = (x+y)**2
print('%.4f'%(maxv))
仅为个人看法,不对的地方,请指正。主流的解法是使用凸包什么的,对这方面知识不是很足,我也不知道我这做法对不对,欢迎交流!
转载于:https://www.cnblogs.com/zhuangzi101/p/11466471.html
[SCOI2016]妖怪 牛客网的ACM省选题,个人看法,欢迎交流相关推荐
- 牛客网暑期ACM多校训练营(第十场)F.Rikka with Line Graph
牛客网暑期ACM多校训练营(第十场)F.Rikka with Line Graph 做法:\(G'\) 中的对应原图两条边(a,b) (c,d)的最短路为: \[ w[a][b] + w[c][d] ...
- 牛客网暑期ACM多校训练营(第九场)
牛客网暑期ACM多校训练营(第九场) A. Circulant Matrix 做法:看到下标 \(xor\) 这种情况就想 \(FWT\),可是半天没思路,于是放弃了..其实这个 \(n\) 疯狂暗示 ...
- 牛客网暑期ACM多校训练营(第五场)
牛客网暑期ACM多校训练营(第五场) A. gpa 二分答案,然后就转化为是否满足 \(\frac {\sum s[i]c[i]}{\sum s[i]} ≥ D\), \(\sum s[i]c[i] ...
- 牛客网暑期ACM多校训练营(第三场)
牛客网暑期ACM多校训练营(第三场) A. PACM Team 01背包,输出方案,用bool存每种状态下用的哪一个物品,卡内存.官方题解上,说用char或者short就行了.还有一种做法是把用的物品 ...
- 牛客网暑期ACM多校训练营(第一场)
牛客网暑期ACM多校训练营(第一场) A. Monotonic Matrix 考虑0和1的分界线,1和2的分界线,发现问题可以转化为两条不互相穿过的路径的方案数(可重叠),题解的做法就是把一条路径斜着 ...
- 牛客网暑期ACM多校训练营(第十场)D Rikka with Prefix Sum
链接:https://www.nowcoder.com/acm/contest/148/D 来源:牛客网 题目描述 Prefix Sum is a useful trick in data struc ...
- 牛客网暑期ACM多校训练营(第三场)A.PACM Team(多重01背包)
链接:https://www.nowcoder.com/acm/contest/141/A 来源:牛客网 题目描述 Eddy was a contestant participating in ACM ...
- 2018牛客网暑期ACM多校训练营(第十场)A Rikka with Lowbit (树状数组)
链接:https://ac.nowcoder.com/acm/contest/148/A 来源:牛客网 Rikka with Lowbit 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C ...
- 2018牛客网暑期ACM多校训练营(第十场)J Rikka with Nickname(二分,字符串)
链接:https://ac.nowcoder.com/acm/contest/148/J?&headNav=acm 来源:牛客网 Rikka with Nickname 时间限制:C/C++ ...
最新文章
- linux 测试vim编译器_推荐几个好用的在线编译器
- 10 种机器学习算法的要点(附 Python 和 R 代码)(转载)
- Vim和Vi的常用命令
- Linux中查看负载
- CUDA学习(九十八)
- 【李宏毅机器学习】Brief Introduction of Deep Learning 深度学习简介(p12) 学习笔记
- adapter中的数据错误原因和解决方案
- 《GAMES104-现代游戏引擎:从入门到实践》-05 学习笔记
- oem和odm是什么意思?oem与odm区别是什么?
- 1-4 CAD 圆弧(arc)
- 爬取贴吧上的图片到本地
- scrum立会报告+燃尽图(第二周第六次)
- Elasticsearch 查询时 判断不为null或不为空字符串
- windows+php+ffmpeg转换音频格式
- varchar与char有什么区别
- 计算机操作系统——分时系统和实时系统
- 网站建设项目合同撰写
- 全屋网络覆盖方案笔记
- 【4天快速入门Python数据挖掘之第1天】Matplotlib的使用
- html 手机 touch,手机的html上,touchstart、touchmove、touchend同时存在时,touchmove和touchend失效...