Game Of Sum(区间dp)

uva 10891 Game of Sum(区间dp) 题目连接:10891 - Game of Sum 题目大意:有n个数字排成一条直线,然后有两个小伙伴来玩游戏, 每个小伙伴每次可以从两端(左或右)中的任意一端取走一个或若干个数(获得价值为取走数之和), 但是他取走的方式一定要让他在游戏结束时价值尽量的高,最头疼的是两个小伙伴都很聪明,所以每一轮两人都将按照对自己最有利的方法去取数字,请你算一下在游戏结束时,先取数的人价值与后取数人价值只 阅读详情

原题: https://vjudge.net/problem/UVA-10891

大致题意: 有一个游戏,A和B两个玩家,还有一串数字,每个玩家每次可以从这串数的左边或者右边取一个或者几个连续的数,规定A先取,然后轮到B,依次交替,直到所有的数都取完,计算A和B各自拿到的数的和,计算得出结果A-B。这个取的过程规定 A和B都十分聪明, 每次都保证使自己拿到的数的和尽量最大!

没想出来,很失望,要加油了!

#include<stdio.h>
#include<memory.h>
int arr[101];//题目给的数组 
int sum[101][101];//记录i 到 j之间的和
int dp[101][101];//dp[i][j]表示从i到j可以取到的最大值 
int flag[101][101];//标志区间i到j求过了没有 
int min(int a,int b)
{
	if(a<b)return a;
	return b;
}
int dfs(int i,int j)
{
	if(flag[i][j]==1)
	{
		return dp[i][j];
	}
	int re = sum[i][j];//区间I到j的数全部取了 
	for(int k=1;i+k<=j;k++)//取左边起的第k个 或者 取右边起的第k个; 
	{
		int tmp = sum[i][j]-min(dfs(i+k,j),dfs(i,j-k));
		if(re<tmp)
		{
			re=tmp;
		}
	}
	dp[i][j]=re;//记录 
	flag[i][j]=1;
	return re;
}
int main()
{
	int n;
	scanf("%d",&n);
	while(n)
	{
		memset(sum,0,sizeof(sum));
		memset(flag,0,sizeof(flag));
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&arr[i]);//输入数组 
			flag[i][i]=1;
			dp[i][i]=arr[i];
			for(int j=1;j<=i;j++)//记录区间i到区间j的和 
			{
				sum[j][i]=sum[j][i-1]+arr[i];
			}
		}
		int tmp1 = dfs(1,n); //第一个人可以取到的最大分数 
		int tmp2 = sum[1][n]-tmp1;//相应第二个人的分数 
		printf("%d\n",tmp1-tmp2);
		scanf("%d",&n);
	}	
	return 0;
} 



RK3588+TRL8367s 四网口千兆交换机配置与优化实战 本文详细介绍了基于RK3588高性能SoC与TRL8367s千兆交换芯片构建四网口交换机的完整实战流程。内容涵盖硬件连接、设备树配置、内核驱动加载、性能优化及常见问题排查,重点解析了RGMII时序调试、DSA架构配置等关键步骤,为嵌入式网络设备开发提供实用指南。 阅读详情

相关推荐

PyFluent进阶实战:自动化密闭几何(Watertight)网格生成

本文深入探讨了如何利用PyFluent实现自动化密闭几何(Watertight)网格生成。通过Python脚本控制Fluent Meshing工作流,工程师可以高效、一致地完成从几何导入、局部尺寸定义、面网格生成到边界层设置和体网格输出的全过程,从而将复杂的CFD前处理工作转化为可重复、可集成的自动化流程,极大提升仿真效率和知识复用性。

t8u9v0w1x的博客 578

Uva 10891

Uva 10891 Game of Sum 题目地址:Uva 10891 题目大意,有一个包含n(n<=100)个整数的数列,两个人轮流从中取数,每次只能从数列的某一端(左或是右)取,每次可以去出一个或多个,但不能不取,每次所取得的数的和为每人的总得分,问在两人均采取最优策略时先手能够比后手多得多少分。 题目分析:看到“最优”,以及数据范围应该能想到是n^3 DP,而本题的难点在于状态的表示...

lycccccccc的博客 263

C# 调用halcon中visualize_object_model_3d显示点云

3.1 判断线程是否为空,如果为空,则新创建,如果不为空,则中断线程,清空窗口后再次执行创建操作3.2 创建:调用show()方法实例化显示类的对象,传入显示参数,将线程testvisual 绑定 在 类对象的action方法上(此处action方法内部,只调用了visualize_object_model_3d算子)3.3 启动线程。

weixin_42362219的博客 1403

Game of Sum

题意:有一组数,A和B轮流取,一次性可以取1个或所有数(只能从左/右边第一个数开始往右/左取,不能中间取),A先手,问最后A取到的数之和比B大多少。 我们先考虑当只有两个数的时候A的第一次的取法, 1->1或1->2或2->1或2->2,那么显然易知,A每一次的取法,必然使B下一次能取的最少,同时自己取的最多 使两者各取一次后A与B的差值最大, 即max(sum(1-&g...

qq_43469254的博客 286

标准工时精益化管理:理论、方法与技巧

ECRS工时分析软件是一款综合性软件,包含了IE软件、IE改善软件、工业工程软件、作业改善/业务改善软件、动作分析软件、作业分析软件、ECRS分析法、ECRS改善手法、时间测量软件、工时测量软件、标准工时计算软件等功能。理论上,标准工时是指在标准的工作环境下,完成一道加工工序所需要花费的人工时间。不同企业、不同工序需要的辅助作业时间和损耗时间各不相同,因此企业需要灵活运用标准工时公式进行计算。总之,标准工时的制定需要综合考虑多种因素,企业可以灵活运用本文介绍的方法和技巧来优化制定流程。

VIOOVI_ECRS的博客 847

2023-2024深度学习框架之争——选pytorch还是tensorflow?

深度学习是人工智能领域的一个重要分支,它利用多层神经网络来模拟人类的学习和推理能力,解决各种复杂的问题,如图像识别、自然语言处理、语音识别、推荐系统等。深度学习框架是一种软件工具,它提供了构建、训练、测试和部署深度学习模型的便利,使得开发者和研究者可以更高效地进行深度学习的开发和应用。目前,市场上有许多不同的深度学习框架,如PyTorch、TensorFlow、Keras、MXNet、Caffe2等,它们各有优劣,适用于不同的场景和需求。

flchen_nchu的博客 6756

Game of Sum(动态规划)

题目: 给出一串数组,两人博弈,统计两人拿到的总数,求先手赢对手的最大值. 这道题小白上也有,做的时候觉得有做过类似的跑回去找找看,后来发现是一样的.不过第一次做的时候没理解透,觉得样例输出不是最优解,今天才真的明白. #include #include #include #include #include using namespace std; const int MAXN

deepquiet的博客 466

Synopsys工具链实战:如何用VCS、DC、ICC和Calibre跑通你的第一个数字IC设计项目?

本文详细介绍了如何使用Synopsys工具链(VCS、Design Compiler、ICC和Calibre)完成数字IC设计项目,从RTL代码到GDSII版图的全流程。涵盖环境配置、RTL设计验证、逻辑综合、物理实现及签核验证等关键步骤,帮助工程师掌握高效的数字IC设计流程。

weixin_42525005的博客 197

Game of Sum(博弈dp)

题目链接:https://cn.vjudge.net/problem/UVA-10891  This is a two player game. Initially there are n integer numbers in an array and players A and B get chance to take them alternatively. Each player can t...

永夜莫明的博客 356

从solidworks导出URDF模型

一、下载sw_urdf_exporter插件 ROS目前提供了SolidWorks转URDF的插件,叫做sw_urdf_exporter,从http://wiki.ros.org/sw_urdf_exporter下载sw2urdfSetup.exe文件,下载后点击安装,安装完成后就能在solidworks中导出URDF模型了。 二、创建solidworks模型 下面以较为简单的四轮小车为例进行说...

weixin_45168199的博客 4万+

DDPM代码详细解读(2):Unet结构、正向和逆向过程、IS和FID测试、EMA优化

Diffusion Models专栏文章汇总:入门与实战 前言:大部分DDPM相关的论文代码都是基于《Denoising Diffusion Probabilistic Models》和《Diffusion Models Beat GANs on Image Synthesis》贡献代码基础上小改动的。官方的DDPM是tensorflow TPU版本,暂时没有GPU的版本。上一篇文章介绍了数据集加载,超参数的含义、关键参数的计算方法等,这一篇重点解读一下网络结构。 目录 EMA优化 训练目标.

沉迷单车的追风少年 1万+

Game of Sum (区间dp)

This is a two player game. Initially there are n integer numbers in an array and players A and B getchance to take them alternatively. Each player can take one or more numbers from the left or right e...

a1046765624的博客 338

使用epiDisplay包中的logistic

其中的logistic.display函数可以用于获取逻辑回归模型的汇总统计信息,包括自变量的优势比和置信区间,以及回归系数的Wald检验的p值。最后,我们使用print函数打印出汇总统计信息。使用epiDisplay包中的logistic.display函数获取逻辑回归模型的汇总统计信息(包括自变量的初始和调整后的优势比及置信区间,回归系数的Wald检验的p值)- R语言。通过使用logistic.display函数,我们可以方便地获取逻辑回归模型的重要统计信息,并对自变量的影响进行解释和推断。

CyberJolt的博客 608

【UVA-10891】Game of Sum【区间DP】

题意: 一个序列,选手 AAA、BBB 轮流从序列中从左端或者右端选一段区间,然后区间和加到自己的权值中。两个选手都会按照最优的方式进行选取,问先手 AAA 最多可以比 BBB 多拿多少。 (1≤n≤100)(1\leq n\leq 100)(1≤n≤100) 思路: 很明显这是一道 DPDPDP 问题,又因为只能从左端点或右端点拿,因此不难想到用区间 DPDPDP 的方法来解决此题。 既然是区...

lucius-liu.cn 483

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Game of Sum UVA - 10891 Sum游戏 区间dp

题目链接 This is a two player game. Initially there are n integer numbers in an array and players A and B get chance to take them alternatively. Each player can take one or more numbers from the le...

Nicolas的博客 441

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

UVA 10891 - Game of Sum (博弈+区间DP+记忆化搜索)

Root     10891 - Game of Sum Time limit: 3.000 seconds This is a two player game. Initially there are n integer numbers in an array and players A and B get chance to take them alt

Ever_glow的博客 789

UVA-10891 Game of Sum 博弈 区间Dp Python

一、题意 This is a two player game. Initially there are n integer numbers in an array and players A and B get chance to take them alternatively. Each player can take one or more numbers from the left or ...

zhaominyiz的博客 348

UVA10891 Game of Sum(区间DP+思路)

题目链接:UVA10891 Game of Sum 题意:有A和B两个人,n个数,A先选,每次只能从两边选1~n个数,求A-B的最大差值,A,B都会采取最优策略 题目的关键在于两人都会采取最优策略,此时就不能仅仅是刷新A-B的最大值了 因为i~j这段区间的和是一定的 dp[i][j]表示[i][j]这段区间的最优策略 要求i~j这段区间的当前方最优策略最大,就要让另一方的最优策略

gyr 275

Uva 10891 - Game of Sum ( 区间dp )

题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1832 题目大意: 有n个数字排成一条直线,然后有两个小伙伴来玩游戏, 每个小伙伴每次可以从两端(左或右)中的任意一端取走一个或若干个数(获得价值为取走数之和), 但是他取走的方式一

棺材深處 2816

UVA 10891 Game of Sum 区间dp

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19461 题目意思大致是给你一串数字,A,B两个人轮流从两端取一段数字并得到该串数字的和的点数,每个人都尽可能的多的点数,问A最多能比B多多少点。 区间dp,一开始打算分AB,但是发现太麻烦了,最后用dp(l,r)表示在区间l~r中先手能赢的的最多点数。假设A是区间

xuelanghu407 572

Game of Sum UVa 10891 区间dp

UVa 10891题意就是给定一个长度为n的整数序列,A和B轮流取数,A先取,一次只能从左端或者右端取任意数量个数,所有数取完后求A的得分减去B的得分,A,B都采取最优策略。这题用记忆化搜索很容易理解,设d(i,j)表示在区间[i,j]的最优策略下,先手取得得分的最大值,如果在区间[i,j]的所有子区间中都已经求出来了最优的d(x,y)(i&lt;=x&lt;=y&lt;=j),那么d(i,j)=...

ccsu_cat 364

UVA 10891 - Game of Sum(区间dp)

Problem E Game of Sum Input File: e.in Output: Standard Output   This is a two player game. Initially there are n integer numbers in an array and players A and B get chance to take them alternati

Remilia's 1726

uva10891 Game of Sum 博弈区间dp

// uva10891 Game of Sum // 这是在训练指南上看到的一题,啃了很久很久,到现在有 // 一定的动态规划的基础,然而博弈性的东西依然不会 // // // 一开始想的是dp(i,j)表示在i,j段取得最大值 // dp(i,j) = max(dp(i,i),d(i.i+1),...d(i,j-1),d(j-1,j),d(j-2,j)...d(i+1)(j);,sum(i,j

TIMELIMITE的专栏 634

UVA - 10891——Game of Sum(区间dP)

题目链接:https://vjudge.net/problem/UVA-10891 题意:n个数的序列,A和B两个人比赛,A先取,可以从剩下序列的左边或者右边开始取,每次任取1~n个数字,两人都用最优方案,求A的总和减去B的总和 思路:dp[i][j]表示区间i~j先手能获得的最大值。 dp[i][j]=sum[i][j]-min{dp[i+1][j]......dp[...

creator平 235

UVA 10891 Game of Sum 总和一定的博弈,区间dp

参考:刘汝佳大白书p67-p69 整数的总和是一定的,所以一个人得分越高,另一个人的得分越低。 不管任意时刻游戏的状态都是原始序列的一段连续子序列,(因而可用区间dp) //#pragma warning (disable: 4786) //#pragma comment (linker, "/STACK:16777216") //HEAD #include #include #in

冰 1336

Uva 10891 Game of Sum(区间博弈dp)

Uva 10891 Game of Sum(区间博弈dp) —— black的专栏 —— waShaXiu

black的专栏 758
上一篇: poj2458 Highways(最小生成树模版)
下一篇: poj1014 Dividing(多重背包的二进制优化)
勤勤勤能补拙
博客等级 码龄10年 60粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值