首页 > 其他分享 >DP

DP

时间:2024-02-03 16:45:17浏览次数:16  
标签:题意 int max rep 方格 通行费 DP

number triangles

感觉都与方格密切相关,比较好懂,重点在于对信息的分析(手玩)

1. AcWing 1018. 最低通行费

题意:一个\(n*n\)的方格,每个格子由一定的通行费,一个格子花费1个时间,要求在\(2*n-1\)的时间内从左上走到右下,求完成时的最低通行费。

分析:显然,必须走最短路,即\(→\)或\(↓\),其它与模板无异。

\(code:\)


int main(){
    scanf("%d",&n);
    memset(f,0x3f,sizeof f);
    for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d",&f[i][j]);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(i==j and i==1) continue;
            f[i][j]=min(f[i-1][j],f[i][j-1])+f[i][j];
        }
    }
    printf("%d\n",f[n][n]);
    return 0;
}

注意边界,必须从\((1,1)\)点出发,所以有一点不同。

2.P1004 [NOIP2000 提高组] 方格取数

题意:设有 \(N \times N\) 的方格图 \((N \le 9)\),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 \(0\)。如下图所示(见样例):

某人从图的左上角的 \(A\) 点出发,可以向下行走,也可以向右走,直到到达右下角的 \(B\) 点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字 \(0\))。
此人从 \(A\) 点到 \(B\) 点共走两次,试找出 \(2\) 条这样的路径,使得取得的数之和为最大。

分析:状态新加2个维度,表示第二次所走的列和行,状态转移相同,但是如果第二次和第一次不同则再加一遍。

\(code:\)


rep(i,1,n){
    rep(j,1,n){
        rep(p,1,n){
            rep(q,1,n){
                int t1=max(f[i][j-1][p-1][q],f[i][j-1][p][q-1]);
                int t2=max(f[i-1][j][p-1][q],f[i-1][j][p][q-1]);
                f[i][j][p][q]=max(t1,t2)+g[i][j];
                if(i!=p and j!=q) f[i][j][p][q]+=g[p][q];
            }
        }
    }
}
printf("%d\n",f[n][n][n][n]);
return 0;

标签:题意,int,max,rep,方格,通行费,DP
From: https://www.cnblogs.com/jxkzkal/p/18004906

相关文章

  • 使用到UDP协议的情况下该如何防护
    一、UDP协议概述UDP(UserDatagramProtocol,用户数据报协议)是TCP/IP协议栈中的一种无连接的传输协议,能够提供面向事务的简单不可靠数据传输服务。1.UDP的应用场景由于缺乏可靠性且属于非连接导向协议,基于UDP协议的应用一般必须允许一定量的丢包、出错和复制粘贴。与TCP协议不同,UDP协......
  • 20240130-DP以及优化随记
    状态转移方程递归关系(从已知求得未知的表达式)背包dp0-1背包,多重,完全,混合模版套用//多重背包#include<bits/stdc++.h>usingnamespacestd;constintN=507,M=1e5+7;intp,n,x,y,z,dp[10005];intmain(){ cin>>p>>n; for(inti=1;i<=n;i++){ scanf("%d%d......
  • 运输层的TCP与UDP协议(学习笔记)
    一、运输层1.逻辑通信结构2.端口号、复用与分用二、TCP与UDP的区别1.概览图2.用户数据报协议UDP(UserDatagramProtocol)UDP面向应用层报文,可以在任何时候发起传输(无连接),向上层提供不可靠传输服务,即如果传输过程中出现误码,也不会触发重传。可以支持一对一、......
  • 如何优雅的处理特殊的子集 dp 问题
    sosdp&高维前缀和求\[g_i=\sum_{j\&i>0}f_j(i\leq2^n-1)\]我们将\(i,j\)进行二进制拆分,拆成\(n\)个维度。类似于:\[g_{a_1,a_2,a_3,a_4,a_5...a_n}=\sum_{a_k\leqb_k}f_{b_1,b_2,b_3,b_4,b_5...b_n}(a_i,b_i\subseteq\{0,1\}......
  • AT_dp 26 题
    AT_dp26题A.Frog1直接dp。设\(f_i\)表示调到石头\(i\)的最小费用,则有\[f_i=\min(f_{i-1}+\left|a_i-a_{i-1}\right|,f_{i-2}+\left|a_i-a_{i-2}\right|)\]B.Frog2上一题的升级版,同样设\(f_i\)表示调到石头\(i\)的最小费用,则有\[f_i=\min_{j=i-k}^{i-1}f_j+\lef......
  • WordPress 技巧:解决 3.6 版本的 "wpdb::escape is deprecated" 错误提示
    来源:http://www.shanhubei.com/archives/13621.html升级到WordPress3.6之后,发现在debuglog中有很多以下的错误信息:Notice:wpdb::escapeisdeprecatedsinceversion3.6!Usewpdb::prepare()oresc_sql()instead.这个错误信息的意思是WordPress3.6将$wpdp类......
  • SpringBoot利用ThreadPoolTaskExecutor批量插入百万级数据实测!
    开发目的: 提高百万级数据插入效率。采取方案: 利用ThreadPoolTaskExecutor多线程批量插入。采用技术: springboot2.1.1+mybatisPlus3.0.6+swagger2.5.0+Lombok1.18.4+postgresql+ThreadPoolTaskExecutor等。application-dev.properties添加线程池配置信息#异步线程配置#配置核......
  • ajax与action,WordPress主题开发之wp_ajax_{$action}和wp_ajax_nopriv_{$action}的区
    wp_ajax_{$action}和wp_ajax_nopriv_{$action}是WordPress主题开发常用的函数,这两个函数经常用在ajax交互功能上。例如ajax表单登录,ajax提交表单等。本篇文章主要讲述了wp_ajax_{$action}和wp_ajax_nopriv_{$action}之间的区别。WordPress中AJAX请求方式在说wp_ajax_{$action}......
  • csharp 远程桌面登录 mstsc rdp文件
    RemoteDesktopConnection\src\LogInfo.csnamespaceRDP{classLogInfo{publicstringIpaddress{get;set;}publicstringUsername{get;set;}publicstringPassword{get;set;}}}RemoteDesktopConnection\src......
  • LLM面面观之RLHF平替算法DPO
    1.背景最近本qiang~老看到一些关于大语言模型的DPO、RLHF算法,但都有些云里雾里,因此静下心来收集资料、研读论文,并执行了下开源代码,以便加深印象。此文是本qiang~针对大语言模型的DPO算法的整理,包括原理、流程及部分源码。2.DPOvsRLHF  上图左边是RLHF算法,右边为DPO算......