poj-3186-区间dp

STM32F103ZET6驱动57闭环步进电机(连线+代码) 一、设备: 1. STM32F103开发板 (普中F103的板子) 2. 57闭环电机带驱动 3. 24V/3A的直流电源,用于给电机驱动供电 简单说明:使用Keil5编程,主要使用了PWM波,外部中断和时间中断,按键控制电机使能和脱机并且控制PWM的周期,调节周期即调节电机的转速。 二、STM32开发板与电机驱动的连线: 1.PUL-、ENA-、DIR-与STM32的连接方法: 可以参考CSND的这个链接中的说明,使用共阴极接法:STM32F407-用TB6600驱动器驱动57步进电机(代码 阅读详情

这个题确实没想到QAQ。

一开始根据样例判断出一个规律:每次从两边取的时候先取小的,所以就爆了一发,wa了。

然后想区间dp,顺着题意往下想的...就是dp[i][j]由dp[i-1][j]和dp[i][j+1]转化而来,这样做咋都做不出来,然后我也没转换一下思想...QAQ

所以说正解就是dp[i][j]由dp[i+1][j]和dp[i][j-1]转换而来,倒推,依次选择每个点为终点,倒着加点,加一个点加一个值,这样和实际做的方法反过来。

这个题还学到一个问题就是递推方向很重要,一开始没想好,在那挨个试....也是蠢透了QAQ

#include <cstring>
#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>

#define INF 0x3f3f3f3f

using namespace std;

const int maxn=2000;
int n;
long long int arr[maxn+5];
long long int dp[maxn+5][maxn+5];

int main()
{
    scanf("%d",&n);
    for(int i=1; i<=n; i++) scanf("%lld",&arr[i]);
    memset(dp,0,sizeof(dp));
    for(int i=n;i>=1;i--)//既然是找点向外拓展,那么肯定从i=j开始
        for(int j=i;j<=n;j++)
            dp[i][j]=max(dp[i+1][j]+arr[i]*(n+i-j),dp[i][j-1]+arr[j]*(n+i-j));
    printf("%lld\n",dp[1][n]);
    return 0;
}

【八股】JUC并发编程篇 👉抽象队列同步器,就是一种锁,内部维护的是一个先进先出的双向队列,队列中存储的是排队的线程,用state来标识是否有线程获得锁【0是无锁状态】👉流程:当一个线程拿到锁后会修改state = 1,这时如果有其他线程访问则会进入队列进行排序,直到state变成0后,队头线程才会拿到锁。在对state进行修改时,用的是CAS操作,所以可以保证原子性。👉它可以实现公平锁或非公平锁【默认】,上述是一个公平锁。如果新线程和队头线程抢锁资源就是非公平锁。 阅读详情

相关推荐

ADS2019学习笔记:三、SPICE model导入

以BZX84-C33 SPICE model为例,学习如何在ADS2019中导入SPICE model。

qq_42945911的博客 6494

(POJ - 3186)Treats for the Cows(区间DP)

题目链接:3186 -- Treats for the Cows 题意:给你n个已经排列好的数字,每次你可以取出最左端的数字或取出最右端的数字,一共n次取完。假设你第i次取的数字是x,你可以获得i*x的价值。你需要规划取数顺序,使获得的总价值之和最大。 分析:这道题容易错看成贪心题,每次选取当前可选择的最小值,这样的贪心思路是错误的。 下面进行正确思路的分析: 我们设dp[i][j]表示从左边取出i个从右边取出j个的所有情况中结果最大值,这个状态可以由两种状态转移过来,一种是dp[i-1][j],也

AC__dream的博客 461

基于单片机控制双向可控硅灯光强度设计

*单片机设计介绍,基于单片机控制双向可控硅灯光强度设计。

QQ2193276455的博客 2457

POJ - 3186(Treats for the Cows)

题目大意 给定右N个数字的序列,v1v2…vn,每次可以取出最左端或者最右端的数字,序列所有数字取出。假设第 i 次取得数字为 vi ,则可获得 i*vi 的价值,问如何规划取数顺序,才能使价值和最大,输出最大价值和。 提示翻译: 按照这种下标顺序取数: 1, 5, 2, 3, 4 取出的数按顺序为:1, 2, 3, 1, 5 最大总价值和:1x1 + 2x2 + 3x3 + 4x1 + 5x5...

i_meteor_shower的博客 279

jetson agx orin开箱及接口介绍

jetson agx orin开箱及接口介绍

qq_58728069的博客 1万+

知识推理——TransE(知识表示、知识嵌入)

知识图谱嵌入/表示方法 TransE

missyoudaisy的博客 1831

POJ3186(区间DP)

题目链接 题意:有一个双向队列,可以从中取数,取出的第k个数乘以k就是这个数的价值,然后求所有数的最大价值。 题解: 容易得到dp[i][j]=max(dp[i+1][j]+v[i]∗(n−j+i),dp[i][j−1]+v[j]∗(n−j+i))dp[i][j]=max(dp[i+1][j]+v[i]∗(n−j+i),dp[i][j−1]+v[j]∗(n−j+i))dp[i][j] = m...

开心铁匠铺 599

深入解析线性反馈移位寄存器(LFSR)的工作原理与实现

本文深入解析了线性反馈移位寄存器(LFSR)的核心原理与实现方法。通过生动的比喻和详细的步骤拆解,阐述了LFSR如何通过反馈多项式和移位操作生成伪随机序列,并对比了斐波那契型与伽罗瓦型两种硬件结构。文章还涵盖了LFSR在数字电路测试、通信扰码及快速伪随机数生成等关键应用场景,同时指出了其在密码学中的局限性,并提供了Python和C语言的高效实现代码示例。

weixin_29007243的博客 545

POJ - 3186

题目来源:http://poj.org/problem?id=3186 一个双向队列,可以从头出,也可以从尾出,第i次出a[i]的话,价值为i*a[i],问最大的价值。 两种做法。 1.由外向里递推,每一次只能取左边或者右边,dp[i][j]为左边取了i个 右边取了j个即可推出状态转移公式。 dp[i][j]=max(dp[i][j],max(dp[i-1][j]+(i+j)*a[i],d...

weixin_43958964的博客 334

出现 has been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ header is present on the 解决方法

Access to XMLHttpRequest at 'http://127.0.0.1:5000/api/data' from origin 'http://10.197.0.79:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

码农研究僧的博客 1万+

从零开始学习CANoe(六)—— CAPL 测试节点

创建CAPL Test Module的两种方式

蚂蚁小兵 1万+

poj3186解题报告

题目大意:给定n个数 每次可以从头或者尾取出数据 于是按取出来得顺序,就可以排成一个数列,假设这个数列为 a1,a2,a3,a4.......an 现在我们假设按照取出来的顺序有一个权值 w=a1*1+a2*2+a3*3+....an*n 现在需要编程求出,如何控制取数的顺序,让w的值最大。 解题思路:先枚举从大到小区间长度,然后在枚举起点从前到后。 状态变量:dp[i][j]表示

h123120的专栏 1041

YOLOv8改进-bifpn

跨尺度连接通过添加一个跳跃连接和双向路径来实现,自此实现了加权融合和双向跨尺度连接。该结构是加权且双向连接的,即自顶向下和自底向上结构,通过构造双向通道实现跨尺度连接,将特征提取网络中的特征直接与自下而上路径中的相对大小特征融合,保留了更浅的语义信息,而不会丢失太多的深层语义信息。传统的特征融合时将尺度不同的特征图以相同权重进行加权,但是当输入的特征图分辨率不同时,以相同的权重进行加权对输出的特征图不平等。所以BiFPN根据不同输入特征的重要性设置不同的权重,同时反复采用这种结构来加强特征融合。

weixin_45303602的博客 8139

POJ 3186 动态规划 区间DP

POJ 3186 区间DP,这道题告诉我们,分界点不一定是必须在区间所有点中枚举,也有可能是两端点。不要将简单的问题复杂化了:定义状态转移方程:dp[i][j]:=从ij的最大可以达到的价值,dp[i][i]初始化为arr[i] * N,因为一个物体只有在最晚出队才会得到最大价值。状态转移:更...

chuizhuanrun0253的博客 196

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

POJ 3186 Treats+for+the+Cows 简单dp或者区间dp

题目链接:POJ - 3186 FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving vast amounts of milk. FJ sells one treat per day and wants to maximize the money he recei...

weixin_43824564的博客 194

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

poj3186(区间DP)

题目链接:http://poj.org/problem?id=3186 思路: 区间DP,给treat编号为1..n,状态很明显是上界i和下界j,dp[i][j]表示从下标i到下标j之间数据的最大价值。可以正向转移,从dp[1][0]开始,也可以逆向转移,从dp[i][i]开始。我这里是正向转移,状态转移方程如下:    if(i>1&&j<n) ...

weixin_33672109的博客 175

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

POJ 3186(区间DP)

题目链接:http://poj.org/problem?id=3186   题目大意:一个数列,可以从两端取数,取出后乘以自己是第几个被取的加和求最大值   题目思路:一共两种情况,要么从左边取要么从右边取,定义dp[i][j]是左边取i个右边取j个的最大值,那么dp[i][j]=max(dp[i-1][j]+(i+j)*a[i],dp[i][j-1]+(i+j)*a[n-j+1]   ...

smilestruggler_Fly To Higher 304

POJ3186【区间DP】

题意: 每次只能取两端,然后第 i 次取要val[ i ]*i,求一个最大值 先将错觉吧 这道题目一开始想的就是记忆化搜索,然后太天真了?好像是,一开始用一维dp[ i ]直接代表一个点的最大。。。额。。现在想想好撒比,怎么可能一维就可以代表一个点的最大啊。。。因为并不能代表他那一步最大。所以开二维数组dp[ s ] [ e ]代表一个区间上的最大,然后深搜一下就好了。。。 还是菜吧。。

ONE MORE TRY 545

POJ 3186 Treats for the Cows 区间dp

http://poj.org/problem?id=3186 类似的区间dp:https://blog.youkuaiyun.com/qq_32259423/article/details/89221957 题意: 给你n个数字v(1),v(2),...,v(n-1),v(n),每次你可以取出最左端的数字或者取出最右端的数字,一共取n次取完。假设你第i次取的数字是x,你可以获得i*x的价值。你需要规划...

swqeaaa的博客 178

POJ3186:Treats for the Cows 区间DP

题目链接:http://poj.org/problem?id=3186 一:题意: 给定一个序列,序列中有N个元素,我们每次都可以从序列最前面或者最后面取出一个数, 假设按照上面的方法取完所有原序列的数,形成新的序列为a1,a2,,,an,我们为这个 序列定义一个权值:W=a1 * 1 + a2 * 2 + ,,,,,+an*n。题目要求,求出最大的权值。 二,解析: dp[i][j]

漩涡梦幻 537

[区间DP] POJ 3186

题意 n个数在一个双端队列中,每次从队首或队尾出。出的第n个数乘以n,最后加起来,求最大和。

Aria461863631的博客 287

Treats for the Cows 区间DP POJ 3186

题目来源:http://poj.org/problem?id=3186 (http://www.fjutacm.com/Problem.jsp?pid=1389) /**  题目意思: 约翰经常给产奶量高的奶牛发特殊津贴,于是很快奶牛们拥有了大笔不知该怎么花的钱. 为此,约翰购置了N(1≤N≤2000)份美味的零食来卖给奶牛们.每天约翰售出一份零食. ...

211

poj 3186区间dp

区间dp

zxf654073270的专栏 787

POJ 3186 Treats for the Cows 区间dp

题目中要求我们从中间往两边选,我们可以换一种思考方式,改为从中间往两边选,比如第a次我们选择了第b个,那我们的收入就增加了(n - len) * value[b],len为已经选取的区间长度。 我们用dp[i][j]表示选取i~j区间获得的最大价值,它可以由dp[i+1][j]或者dp[i][j-1]转化而来(就是最后一个选i还是选j),转移方程如下 dp[i][j] = max(dp[i+1][...

qq_19275839的博客 168

POJ 3186Treats for the Cows(区间DP)

题目链接:http://poj.org/problem?id=3186 题目大意:给出的一系列的数字,可以看成一个双向队列,每次只能从队首或者队尾出队,第n个出队就拿这个数乘以n,最后将和加起来,求最大和。 解题思路:有两种写法:      ①这是我一开始想的,从外推到内,设立数组dp[i][j]表示剩下i~j时的最优解,则有状态转移方程:      dp[i][j]=dp[i]...

weixin_30894583的博客 79

Treats for the Cows POJ - 3186 (区间dp)

Treats for the Cows POJ - 3186 Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 7360 Accepted: 3897DescriptionFJ has purchased N...

codeswarrior的博客 528
上一篇: hdu-1074-状态压缩dp
下一篇: bzoj-1248-二维数组前缀和
alusang
博客等级 码龄10年 6粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值