codeforces 737 D. Financiers Game 博弈 动态规划 记忆化搜索

深度强化学习研究笔记(1)——入门(马尔科夫决策过程,贝尔曼方程,价值迭代和策略迭代) 1. 强化学习(Reinforcement learning)概述 强化学习(Reinforcement learning)的基本内涵是将问题用代理和环境进行建模。其中代理能够对环境执行一些特定的动作a∈Aa \in Aa∈A,从而到达某个状态s∈Ss \in Ss∈S,然后我们就可以根据该状态为代理赋予特定的奖励rrr。强化学习的基本思想如下图所示: 代理的目标是最大化未来的奖励总和,它通过将... 阅读详情

codeforces 737  D

题意: A和B两个人玩游戏,有一个数组a,两个人轮流取数,A先,A只能从左往右取,B只能从右往左取,并且如果前一个人取了k个数,那么接下来的那个人就得取k或者k+1个数,如果剩下的数不足k个,那么游戏结束,输出  “A取出的值的和”  减去 “B取出的数的和” 的差。A想让这个差尽可能的大,B想让这个差尽可能的小,两个人都采取最优解,问最后的差是多少。

在一篇博客上看到一句话:

这种两人博弈一般都可以用两个dp写, 一个dp描述第一个人的最优态, 第二个dp描述第二个人的最优态,难点在于优化空间。

思路:参考下面这篇博客,我也是看这个看懂的。

http://www.itdaan.com/blog/2017/05/31/e51a6afa17ed501cd1e1a7d84fc98101.html

AC code:

#include<bits/stdc++.h>
#define mem(a,b) memset((a),b,sizeof(a))
typedef long long ll;
const int N=100010;
using namespace std;
int n,a[4002];
int dp[4002][100][100][2];
bool vis[4002][100][100][2];
int sum[4002];
int solve(int l,int cnt,int pre,int cur)    
{
    /*
    l表示A已经拿走了l个数
    cnt表示B比A多拿了cnt个数
    pre表示上一个人上次拿了pre个数
    如果cur==0表示这次该A拿了,cur==1表示这次该B拿了
    */
    if(vis[l][cnt][pre][cur])
        return dp[l][cnt][pre][cur];
    vis[l][cnt][pre][cur]=true;
    int r=l+cnt;
    if(n-l-r<pre)
        return dp[l][cnt][pre][cur]=sum[l]-(sum[n]-sum[n-r]);
    int ret=0;
    if(cur==0)
    {
        ret=solve(l+pre,cnt-pre,pre,1);
        if(n-l-r>pre)
            ret=max(ret,solve(l+pre+1,cnt-pre-1,pre+1,1));
    }
    else
    {
        ret=solve(l,cnt+pre,pre,0);
        if(n-l-r>pre)
            ret=min(ret,solve(l,cnt+pre+1,pre+1,0));
    }
    return dp[l][cnt][pre][cur]=ret;
}
int main()
{
    scanf("%d",&n);
    sum[0]=0;
    for(int i=1;i<=n;i++)
        {scanf("%d",&a[i]);sum[i]=sum[i-1]+a[i];}
    mem(vis,false);
    int ans=solve(0,0,1,0);
    printf("%d",ans);
    return 0;
}

 

CAB单片机开发指南 CAB单片机开发使用指南,IDE安装及烧录注意事项 阅读详情

相关推荐

告别爆显存!手把手教你为ComfyUI+华为Atlas 300I Duo配置wan2.1视频生成工作流(含CPU-VAE参数)

本文详细介绍了华为Atlas 300I Duo与ComfyUI的深度适配实战,重点优化wan2.1视频生成工作流。从硬件散热改造到软件栈配置,再到ComfyUI专项优化,提供完整的解决方案,显著提升视频生成效率与稳定性,特别适合需要高效文生视频的应用场景。

weixin_26812607的博客 461

Codeforces Round #737 (Div. 2)

A. Ezzat and Two Subsequences 题意:把一个序列分成两个非空的子序列使两个序列的平均值最大。 题解:把最大的值单独提出来作为一个子序列,其他的分为一个子序列,此时两个子序列的平均值最大。 代码: #include<bits/stdc++.h> using namespace std; long long a[100010]; int main(){ int T;cin>>T; while(T--){ int n;cin>>n;

m0_53616696的博客 423

如何构建高质量的 QA 问答知识库

NLP 技术落地最普遍的场景就是智能客服,如阿里的”小蜜“,京东的“JIMI”等等。NLP 技术也广泛应用于搜索系统。无论是“智能客服”,还是“搜索系统”,构建的前提是拥有“高质量的QA知识库”。今天聊聊“如何构建高质量QA知识库。”。 历史对话数据分布分析 基于公司现有系统积累的大规模对话文本数据,需要对文本数据进行归类处理,分析每个部分数据的占比,挖掘出有价值的文本通过 NLP 相关技术进行商业价值转化。下文以医疗领域来举例说明,通过输入对象,可以将文本分为客服输入和用户输入两部分。挖掘相关问题,主要从

Jiassheng的博客 2151

Codeforces Round #737 (Div. 2)题解

Problem - A - Codeforces 题目大意:给定你一个长度为n的序列,你可以将该序列划分为两个子序列,请求出两个子序列,使得两个子序列的平均值之和最大. 思路:思维题,如果一个数组内最大的数和其他较大的数分为一组,那么该组的平均值一定会小于最大的的数,我们目前只有两个序列,应该保证其中一个拥有最大平均值,那就是最大的数本身,所以该题只需要把最大的数作为一组,其他数作为一组即可. #include<bits/stdc++.h> using namespace std; #d

qq_53629286的博客 262

【LangChain编程:从入门到实践】实现多模态代理

【LangChain编程:从入门到实践】实现多模态代理 关键词:LangChain, 多模态代理, 自然语言处理, 机器学习, 知识图谱, 对话系统, 代码生成, AI代理 1. 背景介绍 随着人工智

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 581

SAP 中租赁资产的实现需区分经营租赁与融资租赁,核心围绕资产主数据配置、折旧与利息设置、科目分配及业务操作展开

摘要:SAP系统租赁资产管理需区分经营租赁与融资租赁,通过SPRO配置资产主数据、折旧范围、利息计算及科目分配。关键步骤包括:激活折旧范围利息计算(OABZ)、设置租赁资产类别(OAYZ)、维护总账科目(AO90)及创建租赁资产主数据(AS01)。业务操作涵盖资产资本化(ABZON)、折旧利息过账(AFAB)、租金支付(F-53)及终止处理(ABUMN)。核心配置要点在于准确设置租赁类型、利率参数和科目联动,确保系统自动计算折旧与利息并生成正确凭证。

金牌架构师 1072

Codeforces 737D

从博弈的角度来考虑,如果状态全部开下的话, 需要4000*4000*2*100左右的数组,空间不够。 但是可以发现状态数并没有那么多,如果Igor取了两千张paper的话,Zhenya能取得paper数量范围应该在1900-2100之间 如果动态分配空间的话应该没有问题。 然而赛上十分蠢的选择了3200W的map。果断MLE CASE 1,因为每个map天生需要几十字节的空间 而且map

lchi1997的博客 463

当SLAM遇上FPGA:打造一个会“硬件加速”的激光雷达SLAM系统

点云数据的运动畸变校正特征点提取与匹配、以及ICP迭代最近点配准。在传统方案中,我们通常用ARM核完成所有计算。但点云配准中的最近邻搜索(KD-Tree)需要大量分支判断,CPU处理起来效率很低;而ICP中的矩阵分解(SVD)虽然计算量大,但非常适合并行化。ZYNQ的特殊之处在于它把ARM(PS端)和FPGA(PL端)集成在同一颗芯片上。ARM擅长跑操作系统、处理复杂逻辑和调度,FPGA擅长做高吞吐量的并行计算。两者之间通过AXI总线高速互联,数据交换延迟只有几十个时钟周期。

QQ_778132974的博客 375

Financiers Game CodeForces - 737D (博弈论,区间dp)

大意: 给定$n$元素序列, 两个人从两端轮流拿数, 每一步假设对手上次取k, 那么只能取k或k+1, 先手第一步取1或2, 直到不能拿时停止. 先手要最大化两人数字和的差, 后手要最小化, 求最后差是多少. 显然状态数是$O(n^2)$的, 直接暴力DP #include <iostream> #include <sstream> #inclu...

weixin_30919919的博客 194

Power domain 划分该如何下手

假如PD1比PD3更always on的话,我们只需要插入普通buffer即可,因为PD3 on,PD1也肯定是ON,PD1 off,PD3肯定时off,PD1能cover PD3的电源情况,因此使用普通buffer也可,但是处于省电角度,我们还是使用AO buffer;在我们做多power domain时,在切分power domain时,需要谨慎,稍有不慎,就会出现congestion以及timing问题,那问题来了,我们在切分power domain时有什么考究么,今天小编就和大家一起讨论讨论。

芯冰乐 207

逆向分析-SeparationPreview.aip-分色预览-结构分析(一)-x64dbg条件日志打印-命令表达式-PS脚本

从功能上分析,仅显示使用的专色这个功能,并没有触发插件接口。使用X64dbg加载illustrator进程,切换到句柄窗口,在窗口过程中,右键刷新获取界面。在x64dbg中,在UI中可以输入一些条件表达式,能够计算出对应的值,并打印在日志中。常用的,如果非暂停,输出第一个参数。参数二是utf16的指针,utf16@字符串地址,这里的字符串地址为[[ebp-108]]参数一是utf8的,utf8@字符串地址,这里的字符串地址为[ebp-28]从界面上分析,一个颜色列表,及仅显示专色的多选框组成。

插件开发 644

codeforces #737(div.2)

A. Ezzat and Two Subsequences 思路 先排序,让最大数自己组一组,剩下求平均数 代码 #include<bits/stdc++.h> using namespace std; int main() { int t,n,a[100005]; cin>>t; while(t--) { cin>>n; double sum=0; for(int i=1;i&l

weixin_49300296的博客 216

华为OD机考双机位A卷 - 开心消消乐(Java & Python& JS & C/C++ & GO )

华为OD机考双机位A卷 - 开心消消乐(OD上机考试双机位A卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1268

Codeforces Round #737 (Div. 2)2021.08.09

Codeforces Round #737 (Div. 2) A. Ezzat and Two Subsequences 题意 分成两组让平均数和最大 题解 最大的单独一组其他的一组即可。 code #define ll long long #define db double #define ldb long double #define IOS std::ios::sync_with_stdio(false),std::cin.tie(0),std::cout.tie(0); #define SYP s

violet-apricity的博客 427

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

codeforces 721D. Maxim and Array(贪心)

D. Maxim and Array time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Recently Maxim has found an array of n i

小小西北风 1125

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Codeforces Round #737 (Div. 2)部分题解

A 点击此处查看对应的题目.   这题要求将一个序列分为a与b两个序列,求出 (f(a)+f(b))max(f(a)+f(b))_{max}(f(a)+f(b))max​,所以我们只要分出一个最大值成为序列f(a)f(a)f(a),再写出f(b)f(b)f(b)的表示相加就是答案,最后记得保留九位小数。 时间复杂度 O(n)O(n)O(n) #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N

山中一扶苏的博客 227

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Subordinates CodeForces - 737C (树,构造)

大意: 求构造一棵树, 每个节点回答它的祖先个数, 求最少打错次数. 挺简单的一个构造, 祖先个数等价于节点深度, 所以只需要确定一个最大深度然后贪心即可. 需要特判一下根的深度, 再特判一下只有一个结点的情况 #include <iostream> #include <algorithm> #include <cstdio> #...

weixin_30555125的博客 163

【Codeforces 738F】 Financiers Game【记忆化DP】

题意:有一个数列,两个人分别从两端开始取数字,左边的先取,第一次能取1个或2个,然后轮流取得时候,如果第一个取了k个,后一个人只能取k或k+1个,如果剩下的不够了则游戏终止,I想要最大化两个人取得数字之和的差距,Z想要最小化,两个人都选择最优操作题解:CF官方题解写的非常好完全是按照那个写的,也写得很清楚这个我当时完全没看出来dp(没做过类似的题目但看了之后,这个状态转移方程还是很好理解的主要还有...

sjtsjt709的博客 1022

codeforces 915 E 896 C 珂朵莉树

珂朵莉树(Chtholly Tree),一种基于std::set的暴力数据结构,是由某毒瘤在2017年的一场CF比赛中提出的数据结构,原名老司机树(Old Driver Tree,ODT)。由于第一个以珂朵莉树为正解的题目的背景以《末日时在做什么?有没有空?可以来拯救吗?》中的角色——珂朵莉为主角,所以这个数据结构又被称为珂朵莉树(Chtholly Tree)她主要处理区间修改、查询问题,在数据随...

flyzer的博客 668

网络流 最小费用最大流

网络流裸题 HDU 3549 Sample  input: 2 3 2 1 2 1 2 3 1 3 3 1 2 1 2 3 1 1 3 1 Sample output: Case 1: 1 Case 2: 2 #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;alg...

flyzer的博客 647

Gym - 101652 部分题解

题目链接1题目链接2 又是一场和库里布莱恩特的菜鸡互啄,这次还是三星gym,还是两个人一起做,比上次还惨,才6个题。 这场的题感觉很简单,就是有点坑,第二题是多组输入但题里并没有说,骰子那题也是大水题,就是题意难懂,机器人那题也是题目简单,但题意难懂。分块除法,新知识点。BR那题,转化,然后求最大子段和,没想到。还有就是二分,二分真的太好用了。 Gym - 101652ZForbid...

flyzer的博客 627

Codeforces Round #598 (Div. 3) codeforces 1256

题目链接 昨天晚上的cf,和程磊开黑打的,听说div3好上分,本来还指望这场上130分直接把颜色改了,没想到翻车了......就过了俩题,A和D过了,B题是个贪心,没写好。 A水题。 B: 题意:给你一个n的全排列,你可以操作n-1次(或者少于n-1次),问操作完后使字典序最小,输出这个字典序最小的排列。对于每种操作,你可以选一个数i(1<i<=n-1),然后交换a[i]和a[...

flyzer的博客 448

codeforces 912 D. Fishes

题目链接 题意:有一个n×m的鱼塘,有一张r×r的渔网,现在往池塘里面放k条鱼(每个格子只能放一条鱼), 现在撒网的地方是随机的(必须在池塘内),问能捕的鱼的期望值最大是多少? 思路:BFS+优先队列 感觉很多题都是这么搞得,bfs加优先队列,然后队列里面存的都是结构体,需要重载运算符。 这题也是,只要挑选出前k个贡献最大的点就行了,判断每个点是否计算过,需要用map和pair,不能用vi...

flyzer的博客 404

Codeforces 877 Round #442 (Div. 2) E. Danil and a Part-time Job

题目链接 拖了这么多天,终于把这个题过了。 题意:一棵有根树, 每个节点可以是1或者0, 两种操作: 1. pow v: 将v节点的子树中所有节点的值反置(1变0, 0变1, 相当于异或1) 2. get v: 输出v节点的字数中1的个数 DFS序+线段树 #include<iostream> #include<iomanip&...

flyzer的博客 398

POJ 2341 优先队列

题意:汽车要行驶L单位的距离。最开始,汽车上有P单位的汽油,汽车走一单位路程要消耗一单位1汽油,如果汽车在形式途中汽油耗尽,那么将无法继续前行。途中有n个加油站,第i个加油站距离起点有a[i]单位的距离,且能加b[i]单位的油。问到达终点所需的最少加油次数。 Solution:这题可以理解为,在到达加油站时,就获得了一次在之后的任何时候都可以加b[i]单位汽油的权利,而在之后需要加油的时候,就认...

flyzer的博客 384

SPFA算法 最短路

spfa求最短路 有一篇讲解spfa的博客,讲的不错:最快最好用的——spfa算法 POJ 2387  Til the Cows Come Home 最短路裸题 input: 5 5 1 2 20 2 3 30 3 4 20 4 5 20 1 5 100 output: 90 直接模拟spfa算法过程: #include &lt;iostream&gt; #include &...

flyzer的博客 379
上一篇: 后缀数组 模板 HDU 1403 HDU 6194
下一篇: HDU 6199 gems gems gems DP动态规划 滚动数组
flyzer
博客等级 码龄9年 27粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值