ABS AtCoder - arc085_b(博弈论)

2024-04-17 03:32
文章标签 atcoder 博弈论 abs arc085

本文主要是介绍ABS AtCoder - arc085_b(博弈论),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://atcoder.jp/contests/arc085/tasks/arc085_b?lang=en
在这里插入图片描述
题意:1.初始状态,有N张牌,同时甲乙手中各一张牌,每张牌上有数字。
2.每个回合,先丢掉手中的牌,然后查看牌堆后选择N张牌中的任意前K张牌(1<=K<=N),同时只保留第K张牌,丢掉其他的牌。
3.甲先手
4.甲要让最终甲乙差的绝对值越大越好,乙要让最终甲乙差的绝对值越小越好。在双方采取最优策略下,求最终的分差绝对值。
思路:显然最后一个肯定选,然后用反证法证明,首先,甲不可能选绝对值最小的数,因为如果选了,乙方会直接选最后的数,乙方同理。按照这个策略,每一轮先手放都会制衡对手,让对手无法选择最后一个数,除了第一轮,甲可以选,最后一轮,玩家被迫选最后一个数。因此N>1时,倒数第二个数必然被选择。因此最终的局面只有两种情况:甲直接选择最后一个数,或者两人一人最后一个数,一人倒数第二个数。因为甲有先手权,所以甲可以选择这两种情况中的更优的那个。
简单总结一下,对甲来说比这两种情况更大的你拿不到,更小的你看不上。

#include <iostream>
typedef long long ll;
using namespace std;
ll a[3000];int main()
{//cout << "Hello world!" << endl;ll N,Z,W;cin>>N>>Z>>W;for(int i=0;i<N;i++){cin>>a[i];}if(N==1){cout<<abs(a[0]-W);return 0;}ll p=a[N-1],q=a[N-2];cout<<max(abs(p-q),abs(p-W))<<endl;return 0;
}

这篇关于ABS AtCoder - arc085_b(博弈论)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910681

相关文章

AtCoder Beginner Contest 370 Solution

A void solve() {int a, b;qr(a, b);if(a + b != 1) cout << "Invalid\n";else Yes(a);} B 模拟 void solve() {qr(n);int x = 1;FOR(i, n) FOR(j, i) qr(a[i][j]);FOR(i, n) x = x >= i ? a[x][i]: a[i][x];pr2(

AtCoder Beginner Contest 369 D - Bonus EXP 动态规划

原题链接: https://atcoder.jp/contests/abc369/tasks/abc369_d 思路:   这道题为什么要用动态规划呢,其实,对于第i个怪物,我们有打与不打两种处理方式,而对于打,我们是获得两倍的经验值,还是一倍的经验值,与我们打了奇数只怪物还是打了偶数只怪物有关了,因此我们定义dp[i][0] 为前i只怪物总共打了偶数次,dp[i][1] 为前i只怪物总

轻量级异步屏障快照(ABS)算法解析

大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 在很久之前,笔者曾简单介绍了Chandy-Lamport分布式快照算法。而Flink的检查点过程正是依赖于Chandy-Lamport算法的“本地化”版本——异步屏障快照(asynchronous barrier snapshotting, ABS)算法。该算法由五位大佬(其中也包含Dat

【每日一题】【博弈论】【思维】会赢的! 牛客周赛 Round 58 C题 C++

牛客周赛 Round 58 C题 会赢的! 题目背景 牛客周赛 Round 58 题目描述 样例 #1 样例输入 #1 31 11 0-1 -1 样例输出 #1 NOYESPING 做题思路 首先考虑到开始位置为 ( 0 , 0 ) (0,0) (0,0)并且只能使横纵坐标递增。所以如果终点的横纵坐标为负数的情况是不可能到达的。所以平局。 第一个点: x

Python常用函数:获取当前项目路径【abs_path=pathlib.Path(__file__).absolute()】-->【sys.path.append(str(abs_path))】

当我们导入某个模块文件时, Python 解释器去哪里找这个文件呢?只有找到这个文件才能读取、装载运行该模块文件。 它一般按照如下路径寻找模块文件(按照顺序寻找,找到即停不继续往下寻找): 内置模块当前目录程序的主目录pythonpath 目录(如果已经设置了pythonpath 环境变量)标准链接库目录第三方库目录(site-packages 目录).pth 文件的内容(如果存在的话)sys.

题解AtCoder ABC 358 F Easiest Maze

一道模拟题。 思路 最短的路线是直接竖着走下来,经过 n n n 个格子,所以 k k k 最小是 n n n。如果想要延长路线,可以采用九转大肠的形状,就像这样: 可以发现,每次向左走之后都必须走回来,所以每次新经过的格子数是偶数,得到 k − n k-n k−n 是偶数才有可行的方案。 首先,把整张图表的初始状态设为如下形式(即每个格点都是独立的): +++++S++o|o|o

耶鲁大学《博弈论》公开课笔记

关于本文 该文章基于本人于当天白天看完耶鲁大学《博弈论》公开课后,于当晚记录下依然记得的白天所听内容。该文章为汇总,时间为记录一年后。 目录 关于本文2023.3.18 P103.19 P113.20 P123.21 P133.22 P143.23 P153.24 P163.25 P173.26 P183.27 P193.28 P203.29 P213.30 P223.31 P234.1

AtCoder Beginner Contest 369 ABCDE

背景 无 A题:369  思路 假设A<=B 分类讨论,有如下两种情况         1.A==B,情况唯一,另外一个数只能取A         2.A<B,首先我们可以以B-A为公差d构造,另外一个数可以取A-d或者B+d。(然后接着考虑放在A和B中间的情况,样例中给了,只要B-A为偶数即可) 代码 inline void solve() {int a, b; cin >>

AtCoder Beginner Contest 369 A~E

封面原图 画师かにょこ AtCoder Beginner Contest 369 我愿称之为等差数列场 A - 369 题意 给两个数,问能和他们构成等差数列的数有多少个 代码 #include <bits/stdc++.h>#define mod 998244353using namespace std;typedef long long ll;typed

【PyTorch常用库函数】一文教你快速上手torch.abs()函数:获取张量的绝对值

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 在深度学习领域,PyTorch是一个非常受欢迎的框架,它提供了丰富的库函数来支持各种复杂的计算任务。今天,我们将深入探讨PyTorch中的一个基础但非常重要的函数:torch.abs()。这个函数用于计算张量(Tensor)中每