AtCoder Beginner Contest 078 D ABS
2024-10-08 02:38:26
光做C了,做完C,就要结束了,看了看D,没看懂那操作啥意思,就扔了。
刚才看了看,突然懂了。。
就是每个人从那堆牌上边拿牌,最少拿一张,最多可以全拿走,然后手里留下最后一张拿到的,其余的都扔掉。
比如牌的顺序是1,5,8,2。拿了前三张牌,就只留下8,前边的都扔了。
X想要分数最大化,Y想要分数最小化,但是X是先手,所以X可以直接全拿光,或者拿的还剩下一张牌,
然后比较一下这两种策略哪个得分高选取哪个。如果X选取的时候剩下了很多牌的话,Y也会像X那样,拿走全部剩余的
牌或者剩下一张牌,选取两种情况中的较小者,是的X无法使分数变大。如果拿走全部剩余的牌对Y更优,则X不会给他这个机会,
如果剩下一张牌的策略对Y更优,X还是不会给他机会。所以X的策略就是全部拿走或者还剩下一张。
虽说dp可做,但是我不大会dp。。。还是看题解,加上自己想想,以上是我的理解
#include <bits/stdc++.h>
using namespace std;
long long card[2010];
int main()
{
long long n,z,w;
cin >> n >> z >> w;
for(int i = 0; i < n; ++i)
cin >> card[i];
long long res = abs(card[n-1]-w);
if(n > 1) res = max(res,abs(card[n-1]-card[n-2]));
cout << res << endl;
return 0;
}
最新文章
- PHP中抽象类,接口定义
- C# UdpClient使用Receive和BeginReceive接收消息时的不同写法
- 获取 IP 地址
- .NET对象的内存布局
- C++中的RTTI机制解析
- 中文版Windows 7下设置日语格式布局的键盘
- createjs 使用记录
- ACM——Digital Roots
- 获取checkboxlist选中的值以及绑定来自之前选中的来自数据库的值
- CentOS 7安装redis及php扩展
- 关于Android平台的搭建的心得---汪永骏
- go mode
- windows下查找指定端口被哪个程序占用
- ruby 安装 mysql2 命令
- C语言高级应用---操作linux下V4L2摄像头应用程序
- Django学习笔记(1)--第一个项目
- 关于各种工具输入参数中";-";和";--";
- css background-image 自适应宽高——转载
- canvas高级篇(转载)移动元素
- 触发full gc的条件