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

At dp综合

感觉整体比较板,但还是挺有质量的)

A Frog 1(直接dp)
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],f[100005];
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",a+i),f[i]=1e9;f[1]=0;f[0]=1e9;for(int i=2;i<=n;i++) f[i]=min(f[i-1]+abs(a[i-1]-a[i]),f[i-2]+abs(a[i]-a[i-2]));cout<<f[n];return 0;
}
B Frog 2(直接dp)

        数据范围完全可以直接nk做

#include<bits/stdc++.h>
using namespace std;
int n,m,a[100005],f[100005];
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",a+i),f[i]=1e9;f[1]=0;for(int i=1;i<=n;i++)for(int j=1;j<=min(i-1,m);j++)f[i]=min(f[i],f[i-j]+abs(a[i]-a[i-j]));cout<<f[n];return 0;
}
C Vacation(直接dp)

        简单分类讨论一下即可

#include<bits/stdc++.h>
#define N 100005
using namespace std;
int n,a[N],b[N],c[N],f[N][4];
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d%d%d",a+i,b+i,c+i);for(int i=1;i<=n;i++)f[i][1]=max(f[i-1][2],f[i-1][3])+a[i],f[i][2]=max(f[i-1][1],f[i-1][3])+b[i],f[i][3]=max(f[i-1][1],f[i-1][2])+c[i];cout<<max(max(f[n][1],f[n][2]),f[n][3]);return 0;
}
D Knapsack 1(01背包)

        纯板子     f[i]=max(f[i],f[i-w]+v)

#include<bits/stdc++.h>
using namespace std;
long long n,W,w,u,ans,f[100005];
int main()
{scanf("%lld%lld",&n,&W);for(int i=1;i<=n;i++){scanf("%lld%lld",&w,&u);for(int j=W;j>=w;j--) f[j]=m

http://www.mrgr.cn/news/62273.html

相关文章:

  • qt 滚动条 美化
  • 实时数据处理:技术支持和优势
  • VMware USB服务导致主机USB设备加载驱动异常
  • excel自定义导出实现(使用反射)
  • 软考系统分析师知识点二六:错题集31-40
  • python代码实现了一个基于知识图谱和文档向量检索的问答系统,并通过Gradio构建了一个简单的Web交互界面
  • 算法训练(leetcode)二刷第十三天 | 110. 平衡二叉树、*257. 二叉树的所有路径、404. 左叶子之和、*222. 完全二叉树的节点个数
  • #渗透测试#SRC漏洞挖掘# 信息收集-Shodan之网页版
  • 面试简历技巧分享
  • threejs开源实例-粒子地球
  • SSH免密钥登录
  • 分布式架构搭建博客网站
  • https加密过程详解
  • CountDownLatch与CyclicBarrier的比较应用
  • 头歌网络安全爬虫
  • Redis 发布订阅 总结
  • 图像篡改研究
  • 未来生活中的AI电脑是怎样的
  • 【Python单元测试】pytest框架单元测试常用用例
  • Go性能基础
  • 【股东权益与市值:概念、计算与差异分析】
  • 关于防止布局底部有弹簧而导致的QWidget闪烁问题
  • 12-Docker发布微服务
  • STM32的隐藏定时器---DWT
  • 为什么大模型都是Decoder-only结构?
  • Python入门——iter迭代器—__iter__()方法__next__()方法