2025年大一训练-DP1

news2025/5/16 12:31:56

2025年大一训练-DP1

  • Problem A:在这里插入图片描述

动态规划算法,从上往下一层层找到到达对应位置的最大值,最底下一行maxl的最大值即为答案

#include<bits/stdc++.h>
using namespace std;
int lst[101][101];
int maxl[101][101];

int main()
{
	int n,i,j;
	while(cin>>n)
	{
		memset(lst,0,sizeof(lst));
		memset(maxl,0,sizeof(maxl));
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=i;j++)
			{
				cin>>lst[i][j];
				if(i==1) maxl[i][j]=lst[i][j];
				else
				{
					maxl[i][j]=lst[i][j]+max(maxl[i-1][j],maxl[i-1][j-1]);
				}
			}
		}
		int maxn=0;
		for(j=1;j<=n;j++)
		{
			if(maxl[n][j]>maxn) maxn=maxl[n][j];
		}
		cout<<maxn<<endl;
	}
	return 0;
}
  • Problem B:
    在这里插入图片描述

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int maxn = 20;
int dp[maxn][maxn];

int main()
{
    int n,i,j;
    for(i=0;i<maxn;i++)
    {
    	dp[0][i]=1;
    	dp[i][0]=1;
	}
    for(i=1;i<maxn;i++)
    {
        for(j=1;j<maxn;j++)
        {
            dp[i][j]=dp[i][j-1]+dp[i-1][j];
        }
    }
    while(scanf("%d",&n)!=EOF&&n!=0)
    {
        cout<<dp[n][n]<<endl;
    }
    return 0;
}
  • Problem C:
    在这里插入图片描述

肯定不能每输入一次就递归,一定有测试点过不去,所以预处理202020的结果数组,然后输入查表就行了

#include<bits/stdc++.h>
using namespace std;
int f[25][25][25];
void w(int a, int b, int c)
{
	if (a==0 || b==0 || c==0) f[a][b][c] = 1;
	else if(a<b && b<c)
	{
		f[a][b][c]=f[a][b][c-1]+f[a][b-1][c-1]-f[a][b-1][c];
	}
	else
	{
		f[a][b][c]=f[a-1][b][c]+f[a-1][b-1][c]+f[a-1][b][c-1]-f[a-1][b-1][c-1];
	}

}

int main()
{
	int a,b,c;
	int i,j,k;
	for (i=0;i<21;i++)
	{
		for (j=0;j<21;j++)
		{
			for (k=0;k<21;k++)
			{
				w(i,j,k);
			}
		}
	}
	while (cin>>a>>b>>c)
	{
		if (a==-1 && b==-1 && c==-1)
		{
			break;
		}
		if (a<=0 || b<=0 || c<=0)
		{
			cout<<"w("<<a<<", "<<b<<", "<<c<<") = "<<1<<endl;
		}
		else if (a>20 || b>20 || c>20)
		{
			cout<<"w("<<a<<", "<<b<<", "<<c<<") = "<<f[20][20][20]<<endl;
		}
		else
		{
			cout<<"w("<<a<<", "<<b<<", "<<c<<") = "<<f[a][b][c]<<endl;
		}
	}
	return 0;
}

  • Problem D:
    在这里插入图片描述

和前一题类似,需要预处理数组,但判断条件“and not already in the sequence”就需要用hash表去重了

#include<bits/stdc++.h>
using namespace std;
int a[500005]={0};
bool hash[100000000]={false};
 
int main()
{
    int i,n;
    for(i=1;i<=500000;i++)
    {
        if(a[i-1]-i>0 && !hash[a[i-1]-i]) a[i]=a[i-1]-i;
        else a[i]=a[i-1]+i;
        hash[a[i]]=true;
    }
    while(cin>>n && n!=-1) cout<<a[n]<<endl;
    return 0;
}

但是题目内存受限,hash占用内存过大,可以用std::set(std::unordered_set更好),但是hash在一些版本里关键字冲突了,不建议用这个作为变量名(不然就会像我一样Compile Error四次才发现)

#include<bits/stdc++.h>
using namespace std;
int a[500001] = {0};
set<int> hashlst;

int main()
{
    int i,n;
    for (i=1;i<=500000;i++)
    {
        if (a[i-1]-i>0 && hashlst.find(a[i-1]-i)==hashlst.end()) 
            a[i]=a[i-1]-i;
        else 
            a[i]=a[i-1]+i;
        hashlst.insert(a[i]);
    }
    while (cin>>n && n!=-1) cout<<a[n]<<endl;
    return 0;
}
  • Problem E:
    在这里插入图片描述

在这里插入图片描述
下面是我为人人的具体代码实现

#include<bits/stdc++.h> 
using namespace std;
typedef struct
{
    int a;
    int x,y;
}Node;
Node node[10010];
int n,m;
int lst[110][110];
int len[110][110];
int dirx[4] = {1,0,-1,0};
int diry[4] = {0,1,0,-1};
bool cmp(const Node& n,const Node& m)
{
    return n.a<m.a;
}

int main()
{
    cin>>n>>m;
    int p=0,i,j;
    for(i=1;i<=n;++i)
	{
        for(j=1;j<=m;++j)
		{
            cin>>lst[i][j];
            len[i][j]=0;
            node[p].a=lst[i][j];
            node[p].x=i;
            node[p++].y=j;
        }
    }
    sort(node,node+p,cmp);
    for(i=0;i<p;i++)
	{
        int l=1;
        for(j=0;j<4;j++)
		{
            int dx = node[i].x+dirx[j];
            int dy = node[i].y+diry[j];
            if(dx>0 && dy>0 && dx<=n && dy<=m && lst[dx][dy]<node[i].a)
                l=max(l,len[dx][dy]+1);
        }
        len[node[i].x][node[i].y]=max(l,len[node[i].x][node[i].y]);
    }
    int Max=-1;
    for(i=1;i<=n;i++)
	{
        for(j=1;j<=m;j++)
            Max=max(Max,len[i][j]);
    }
    cout<<Max<<endl;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2338014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

架构图--架构师的行军地图

架构图是架构师最重要的沟通和规划工具之一&#xff0c;它如同行军地图般指导着整个软件系统的构建与演进。本文系统性地探讨了软件架构图设计的全面方法论&#xff0c;提出横向与纵向双维度的设计框架。横向设计关注模块间的业务、数据与重要性关系&#xff0c;纵向设计则采用…

OpenHarmony-Risc-V上运行openBLAS中的benchmark

OpenHarmony-Risc-V上运行openBLAS中的benchmark 文章目录 OpenHarmony-Risc-V上运行openBLAS中的benchmark前言一、编译openBLAS1.源码下载2.工具链下载3.编译并安装openBLAS 二、编译open BLAS中的benchmark三、上设备运行总结 前言 参考https://zhuanlan.zhihu.com/p/18825…

HAL库通过FATFS和SDIO+DMA写入SD卡数据错误

HAL库F4版本 1.28.1 最近在使用HAL库配置SDIODMA并通过FATFS向SD卡写入数据&#xff0c;但是发现写入的数据经常有错误&#xff0c;不是少了一部分就是多了一部分&#xff0c;写入的数据为csv格式&#xff0c;通过循环向缓冲区写入"100100,12.345678\r\n"数据来观察问…

python-图片分割

图片分割是图像处理中的一个重要任务&#xff0c;它的目标是将图像划分为多个区域或者对象&#xff0c;例如分割出物体、前景背景或特定的部分。在 Python 中&#xff0c;常用的图片分割方法包括传统的图像处理技术&#xff08;例如阈值分割、区域生长等&#xff09;和深度学习…

江湖路远,唯PUT可稳:Express 路由更新招式全解

前言 江湖传闻,后端开发如同修炼绝世武功:有人精通 POST 掌,横扫千军;有人修习 GET 指法,探查万象。而真正踏入高阶境界的高手,常常默默修炼一门冷门却威力极强的秘技,PUT 神功。 今日时机正好,你我相逢于码海江湖,不如来一场技术切磋,也许能悟出更新之道,功力再上…

MySQL:Join连接的原理

连接查询的执行过程&#xff1a; 确定第一个需要查询的表【驱动表】 选取代价最小的访问方法去执行单表查询语句 从驱动表每获取到一条记录&#xff0c;都需要到t2表中查找匹配的记录 两表连接查询需要查询一次t1表&#xff0c;两次t2表&#xff0c;在两表的连接查询中&…

2025.04.14【Table】| 生信数据表图技巧

Custom title A set of examples showing how to customize the titles of a table made with GT Custom footer How to customize the footer and the references section of a gt table 文章目录 Custom titleCustom footer 生信数据可视化&#xff1a;Table图表详解1. R语…

使用Trae CN分析项目架构

架构分析后的截图 A区是打开的项目、B区是源码区、C区是AI给出当前项目的架构分析结果。 如何用 Trae CN 快速学习 STM32 嵌入式项目架构 在嵌入式开发领域&#xff0c;快速理解现有项目的架构是一项关键技能。Trae CN 作为一款强大的分析工具&#xff0c;能帮助开发者高效剖…

浏览器缩放后 element ui组件偏移

一、需求&#xff1a;当body的有了zoom值之后&#xff0c;element ui相关的popper弹框&#xff08;下拉框、日期选择框、分页组件&#xff09;位置都会出现偏移问题 二、问题来源 popper弹框都会需要根据屏幕x,y的坐标来设置位置&#xff0c;但是有了zoom值之后&#xff0c;x,y…

FPGA学习——DE2-115开发板上设计波形发生器

1. 实验目的 掌握直接数字频率合成&#xff08;DDS&#xff09;技术的基本原理和应用。使用DE2-115开发板实现正弦波和方波的生成。使用SignalTap II嵌入式逻辑分析仪测试输出波形的离散数据。 2. 实验原理 DDS技术&#xff1a;通过相位累加器生成相位信息&#xff0c;结合波…

【springsecurity oauth2授权中心】简单案例跑通流程

项目被拆分开&#xff0c;需要一个授权中心使得每个项目都去授权中心登录获取用户权限。而单一项目里权限使用的是spring-security来控制的&#xff0c;每个controller方法上都有 PreAuthorize("hasAuthority(hello)") 注解来控制权限&#xff0c;想以最小的改动来实…

2025TGCTF Web WP复现

AAA 偷渡阴平 <?php$tgctf2025$_GET[tgctf2025];if(!preg_match("/0|1|[3-9]|\~|\|\|\#|\\$|\%|\^|\&|\*|\&#xff08;|\&#xff09;|\-|\|\|\{|\[|\]|\}|\:|\|\"|\,|\<|\.|\>|\/|\?|\\\\/i", $tgctf2025)){//hint&#xff1a;你可以对着键盘…

「GitHub热榜」AIGC系统源码:AI问答+绘画+PPT+音乐生成一站式

—零门槛搭建私有化AI内容工厂&#xff0c;源码开放商业落地指南 为什么全栈AIGC系统成为企业刚需&#xff1f; 1. 传统方案的致命缺陷 痛点 使用ChatGPTMidjourneyCanva 本全栈方案 工具割裂 需切换5平台 一个系统全搞定 成本 年费50万 一次部署永久免费 数据安全 …

【C++】 —— 笔试刷题day_19

一、小易的升级之路 题目解析 小易现在要打游戏&#xff0c;现在游戏角色的初始能力值为a&#xff0c;我们会遇到n个怪&#xff0c;这些怪物的防御值为b1、b2、b3...&#xff0c;如果我们的能力值要高于或者等于怪物的防御值&#xff0c;那我们的能力值就会加bi&#xff1b;如…

Kubernetes》》K8S》》Pod的健康检查

K8s概念总结 》》》Pod的生命周期阶段 Pod的生命周期可以简单描述&#xff1a;首先Pod被创建&#xff0c;紧接着Pod被调度到Node节点进行部署。 Pod是非常忠诚的&#xff0c;一旦被分配到Node节点后&#xff0c;就不会离开这个Node节点&#xff0c;直到它被删除&#xff0c;删除…

计算机视觉——基于使用 OpenCV 与 Python 实现相机标定畸变校正

概述 相机标定是一种旨在通过确定相机的内参&#xff08;焦距、光学中心、畸变系数&#xff09;和外参&#xff08;相机的位置和方向&#xff09;&#xff0c;提高图像在现实世界中的几何精度的过程。该过程可以纠正相机拍摄的图像中的畸变&#xff0c;使相机能够准确感知现实…

Python作业4 文本词云统计,生成词云

编写程序&#xff0c;统计两会政府工作报告热词频率&#xff0c;并生成词云。 2025两会政府工作报告 import jieba import wordcloud from collections import Counter import re# 读取文件 with open("gov.txt", "r", encoding"gbk") as f:t …

Jenkins 2.492.2 LTS 重置管理员密码

文章目录 1. Jenkins 关闭用户认证2. jenkins 修改密码 如果忘记了 Jenkins 的管理员密码的话&#xff0c;也不用担心&#xff0c;只要你有权限访问 Jenkins 的根目录&#xff0c;就可以轻松地重置密码。 1. Jenkins 关闭用户认证 // 查看 jenkins 家目录&#xff08;使用 doc…

【裁判文书网DES3数据解密】逆向分析

点击翻页&#xff0c;出现请求&#xff0c;可以看到请求参数有个ciphertext密文&#xff0c;响应数据也是密文 打上断点&#xff0c;点击翻页&#xff0c;断住 可以看到postData里面的ciphertext已经生成 往前跟栈&#xff0c;可以发现是var ciphertext cipher(); funct…

花园灌溉问题

#include <bits/stdc.h> using namespace std;// 设置最大行列数&#xff08;题目限制 n, m ≤ 100&#xff09; const int N 104;// 标记某个格子是否已经被水浇灌 bool used[N][N];// 队列&#xff0c;用于 BFS&#xff0c;存储当前水源的位置 queue<pair<int,i…