当前位置: 首页 > news >正文

博弈dp,CF 731E - Funny Game

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

731E - Funny Game


二、解题报告

1、思路分析

游戏规则其实就是交替取前缀和

考虑 f(i) 为 某人先手取前 i 个,最终能得到的最大分差

由于每人都是最佳发挥,所以有如下状态转移:

f(i) = acc[i] - max(f(j)),i + 1 <= j < n

为什么呢?

假如A得分为sumA,B得分为sumB

计算f(i) 时候 f(i) = sumA - sumB

那么转移的时候 f(j) = sumB’ - sumA‘

要f(i) - f(j) = sumA'' - sumB''

2、复杂度

时间复杂度: O(N)空间复杂度:O(N)

3、代码详解

 ​
#include <bits/stdc++.h>
// #include <ranges>
// #define DEBUG
using i64 = long long;
using u32 = unsigned;
using u64 = unsigned long long;
constexpr int inf32 = 1E9 + 7;
constexpr i64 inf64 = 1E18 + 7;
constexpr double eps = 1E-9;void solve() {int n;std::cin >> n;std::vector<int> acc(n);for (int i = 0; i < n; ++ i) {std::cin >> acc[i];;if (i)acc[i] += acc[i - 1];}for (int i = n - 2; i; -- i) {acc[i] = std::max(acc[i + 1], acc[i] - acc[i + 1]);}std::cout << acc[1];
}auto FIO = []{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);return 0;
} ();int main() {#ifdef DEBUGfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);#endif     int t = 1;// std::cin >> t;while (t --)solve();return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux安全与高级应用(三)深入探索MySQL数据库:安装、管理与安全实践
  • 在MySQL中,处理层次结构数据(如树状或组织结构图)的查询
  • 国家网络安全战略
  • 新160个crackme - 027-MexeliteCRK1
  • 深度学习:记一次由model.train() 引发的模型训练效果变差事故
  • 纯手工在内网部署一个Docker私有仓库
  • 【RISC-V设计-09】- RISC-V处理器设计K0A之CIC
  • android10 系统定制:增加应用锁功能
  • DS1302实时时钟(51单片机)
  • Flink cdc正确打开方式(flink on yarn)
  • Kotlin 和 Java区别
  • Netty学习笔记01--出入站处理器顺序
  • 学习记录702@计算机组成原理之计算机硬件组成细化
  • FFmpeg源码:av_packet_move_ref、av_packet_make_refcounted函数分析
  • C语言典型例题32
  • 【mysql】环境安装、服务启动、密码设置
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CSS中外联样式表代表的含义
  • C语言笔记(第一章:C语言编程)
  • ES6简单总结(搭配简单的讲解和小案例)
  • JS+CSS实现数字滚动
  • Redis字符串类型内部编码剖析
  • 闭包--闭包之tab栏切换(四)
  • 对超线程几个不同角度的解释
  • 工程优化暨babel升级小记
  • 计算机常识 - 收藏集 - 掘金
  • 记一次和乔布斯合作最难忘的经历
  • 三分钟教你同步 Visual Studio Code 设置
  • 推荐一个React的管理后台框架
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 移动端 h5开发相关内容总结(三)
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #FPGA(基础知识)
  • #pragma once
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (70min)字节暑假实习二面(已挂)
  • (C11) 泛型表达式
  • (PADS学习)第二章:原理图绘制 第一部分
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (四)鸿鹄云架构一服务注册中心
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .net core 管理用户机密
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .Net 代码性能 - (1)
  • .net 流——流的类型体系简单介绍
  • .net 设置默认首页
  • .NET6实现破解Modbus poll点表配置文件
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net开发引用程序集提示没有强名称的解决办法
  • @hook扩展分析
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @软考考生,这份软考高分攻略你须知道
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)