Tyvj 1076 数字三角形2 要求走到最后mod 100最大

数字三角形2!!! 嘿呐,今天的第二道题,虽然和第一道题的类型相似,虽然CODEVS炸了,现在还没测评,但是大概也许是对了。题目来源:CODEVS2189题目:题目描述 Description数字三角形要求走到最后mod 100最大输入描述 Input Description第1行n,表示n行第2到n+1行为每个的权值输出描述 Output Descriptionmod 100最大值这个题的难点就是mod100,唔,... 阅读详情

题目:

数字三角形2

从三角形顶端走到最下面一行所经过数字的和sum mod 100要最大

 

个人感想

最近做了一个特别新颖的DP问题,数字三角形2,网址为:http://www.joyoi.cn/problem/tyvj-1076

大家都知道,数字三角形1,是个特别适合DP入门的DP问题,就是从三角形顶端走到最下面一行所经过数字的和 sum 最大,这个就是普通的DP算法就可以解决。

当做的时候,我原本以为就是加一下取模就行,还不行,就对所有DP数组进行扫描,每一个进行扫描,扫描到最大的就输出,当这也只能过部分样例,后面去网上查一查才发现,这是一个存在性DP问题。

原来这是类似于存在性验证的一类DP,即求出0...99哪个结果可能出现,然后取其中的最大值就是结果。

于是就按照题解的思路,把代码写完了,还是蛮有启发性质的。

 

解题思路:

设状态 f[i][j][k] 表示到(i,j)的时候能否达到k值,如果可以就==true。从上到下扫过去,对于每个(i,j)只可能从上一行的左边或右边下来,当  f[i][j][k] == true 的时候 ,从上往下 然后  f[i+1][j][(k+a[i+1][j])%100] = true,f[i+1][j+1][(k+a[i+1][j+1]%100)%100]=true. 到最后 进行扫描的时候,肯定是 f[n][][] 在100中选出最大的就行了。

 

#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

int a[30][30];
bool f[30][30][100];
int main()
{
	int n;
	while (~scanf("%d", &n)) {
		memset(a, 0, sizeof(a));
		memset(f, 0, sizeof(f));
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= i; j++) {
				scanf("%d", &a[i][j]);
			 }
		}
		//变成存在性DP问题,原来这是类似于存在性验证的一类DP,即求出0...99哪个结果可能出现,然后取其中的最大值就是结果。
		f[1][1][a[1][1] % 100] = true;
		int ans = 0;
		for (int i = 1; i <n; i++) {  //没有对 i=n的情况 取最大值
			for (int j = 1; j <=i; j++) {
				for (int k = 0; k < 100; k++) {
					if (f[i][j][k]) {
						ans = max(ans, k);
						f[i + 1][j][(k + a[i+1][j]%100)%100] = true;
						f[i + 1][j + 1][(k + a[i + 1][j + 1]%100)%100] = true;
						}
					}
			}
		}
	
		for (int j = 1; j <= n; j++) {  //对i=n的情况 取最大值
			for (int k = 0; k <100; k++) {
				if (f[n][j][k]) ans = max(ans, k);
			}

		}
		cout << ans << endl;
	}
	return 0;
}

 

普冉PY32F003定时器实战:从HSE时钟配置到500ms精准闪烁LED(附完整代码) 本文详细解析了普冉PY32F003单片机定时器的实战应用,从HSE时钟配置到实现500ms精准LED闪烁。通过完整的代码示例和深入的技术分析,帮助开发者掌握定时器参数计算、中断优先级管理及调试技巧,适用于各类嵌入式开发项目。 阅读详情

相关推荐

修改串口服务器,串口虚拟化 | 串口服务器Nport 5630 设置

原标题:串口虚拟化 | 串口服务器Nport 5630 设置JZGKCHINA项目改造,客户需要对IFix4.5进行升级,并优化通讯,在不改变原来配置的基础上逐步进行替换。需要将IFix升级到IFix5.9,数据库升级为SQL Server 2016,客户现场使用的智能仪表都是支持Modbus RTU协议的,因原来的手拉手的通讯方式的,当一台仪表掉线后,会影响到其他仪表的通讯,所以此次在不改变原有...

weixin_31688465的博客 2408

Tyvj 1076 数字三角形2(DP)

题目链接 数字三角形的加强版,寻找到顶部对100取模最大的,想一想如果枚举的话2^24复杂度肯定会挂,转念一想,肯定都是小于100的数,100个数枚举一下就好。。。 开始写了一个不靠谱的程序居然过了9组,也太假了,那个程序只会输出99,后9组数据全是99。。。改了改错,水过了。。。 1 #include <stdio.h> 2 #include <string.h...

weixin_30951389的博客 166

从CentOS迁移到openEuler 24.03 LTS:手把手教你部署Java+MySQL+Redis+Nginx全栈环境

本文详细指导如何从CentOS迁移到openEuler 24.03 LTS,并部署Java+MySQL+Redis+Nginx全栈环境。涵盖系统配置、软件安装、性能优化及环境验证,助力企业级用户高效完成服务器迁移与部署。

weixin_26938645的博客 388

数字三角形W(codevs)

数字三角形W( codevs 上的): 要求走到最后和mod 100 最大。 在mod 100 这个条件下,刚刚的状态就没有了最优子结构。 不能用简单的数字三角形求法来做,这很显然。 所以我们可以加一维来完成这个问题。 定义f (i,j,k)表示走到(i,j)位置时,能否达到(i,j)使其%100=k 状态转移方程就是f(i,j,k)=f(i+1,j,(k-a(i,j)+100)%...

蒟蒻hsz 606

无监督低照度增强实战:用ZeroDCE和SCI拯救你的夜间照片(附PyTorch代码)

本文深入探讨了无监督低照度图像增强技术,重点解析了ZeroDCE和SCI两大代表性模型的核心原理与实战应用。通过对比分析两者的技术路径、网络结构及性能特点,并附上详细的PyTorch代码实现,旨在帮助读者掌握无需配对数据即可有效提升夜间照片画质的深度学习解决方案。

git9versioner的博客 489

详细介绍pytorch重要的API

Tensor 是 PyTorch 中最基本的数据结构,提供了多种创建和操作张量的函数。Autograd 提供了自动求导功能,可以跟踪 Tensor 上的操作并计算梯度。损失函数用于衡量模型预测值与真实值之间的差异,提供了多种损失函数。是构建神经网络的基础类,提供了定义网络层和前向传播的方法。提供了 GPU 计算的支持,包括设备管理、内存管理等。提供了一些常用的函数式操作,如激活函数、损失函数等。提供了常用的数据集、模型架构和图像转换工具。提供了数据加载和预处理的工具,包括。

hello! 1223

数字三角形II

题目描述 数字三角形 要求走到最后mod  100最大 输入 第1行n,表示n行   输出 mod  100最大值 样例输入 2 1 99 98 样例输出 99 注意I和II的区别,不能单纯由1的结果更改,需要重新进行规划 #include int a[30][30]={0}; int f[30][30][110]={0}; int main()

u013240812的专栏 832

K210开发板学习笔记(三)——STM32+K210+SD卡实现人脸识别(完整K210代码)

更新日记:2022年4月26日 更新了串口通信部分的内容,本文写的略为粗糙,恐有不当之处,希望大家不吝赐教。 人脸识别 一、MaixPy IDE开发 参考博主晨少hc的博文(https://blog.youkuaiyun.com/HuangChen666/article/details/113995079)来实现人脸识别功能,我用的硬件是亚博智能的K210开发板,在配置工程中有几步和这个博主的不一样,需要注意。 所需要的文件有:模型文件),脚本文件,ide需要的bin文件...

Embedded learner的博客 4万+

Tyvj 1076 数字三角形 要求走到最后mod 100最大

将mod 100的值加入到状态中,

Skywalker 2148

计算机毕业设计springboot基于微信平台的二次元手办商场小程序【附源码】

选题背景: 随着二次元文化的兴起和普及,越来越多的人开始对二次元角色产生了浓厚的兴趣和喜爱。手办作为二次元文化的重要载体之一,成为了许多二次元爱好者收藏和展示的对象。然而,在传统的线下手办商场中,消费者往往面临着时间、空间和选择的限制。因此,基于微信平台的二次元手办商场小程序应运而生。 选题意义: 首先,基于微信平台的二次元手办商场小程序能够打破地域限制,使得用户可以随时随地通过手机进行购物。无论是在家中、上班途中还是旅行中,用户都能够方便地浏览和购买自己喜欢的手办,极大地提高了购物的便利性和灵活性。

拉期程序 452

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式如何计算IC电源管脚电感操作指导

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式可以计算电容到IC电源管脚的电感,用于评估电容位置对于IC电源管脚的效果,如何分析,以下图为例进行说明。Capacitors:选择层面,这里选择top layer(IC在top层),下方可以选择电容的size,这里选择All Size。IC devices,输入U*, A*, B*, Q*, P*,将所有这些字母开头的器件都识别为IC。模式如何计算IC电源管脚电感操作指导。

weixin_54787054的博客 409

数字三角形W

题目描述Description 数字三角形 要求走到最后mod 100最大 输入描述Input Description 第1行n,表示n行 第2到n+1行为每个的权值 输出描述Output Description mod 100最大值 #include<iostream> #include<cstdio&g...

weixin_30773135的博客 161

Open3D (C++) 计算点云坐标最值及其索引

使用C++版本的Open3D计算点云最值点及其对应的下标索引

点云侠的博客 728

TYVJ 1076 数字三角形2 解题报告

  刚接手真的好难,因为是MOD100啊,本来可能很大了,结果MOD一下就变成0了,一个很小的值就是最佳答案了。   对此,解决方法是用f[a][b][i]来代表第a行第b列能否产生出值为i的路径,如果能则为1,不能则为0。网上有一个人给它取名我挺喜欢,叫做布尔染色。然后方程就是f[a][b][i] = max(f[a + 1][b + 1][(100 + i - num[a][b])...

aiechu6301的博客 202

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

数字三角形系列(Tyvj 1044 && 1076 && 1079 && 1084)

数字三角形1: #include #include int a[30][30]; int dp[30][30]; int main (void) { int n; while(scanf("%d", &n) != EOF) { memset(dp, 0,sizeof(dp)); int i, j, k = 1;

23333333 668

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

BUCT-OJ 2052 数字三角形2

【题目来源】:TYVJ 1076 【题目链接】:点击打开链接   【解题思路】: 刚开始没想到思路,想到暴力穷举会超时,就乖乖的使用动态规划,但怎么使用想的一团,晕了, 真正独立做起题目来感觉动态规划还没入门的样子,就又重新从最基础的一点点向上想,首先动态规划最起码得有状态吧, 那对应与每一个权值的状态是什么?感觉有很多种情况,没办法了,我穷举所有状态还不行吗,突然发现是mod100的

初岁的专栏 794

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【动态规划】数字三角形2

【题目描述】 数字三角形要求走到最后mod100最大 【输入格式】 第1行n,表示n行<=25第2到n+1行为每个的权值 【输出格式】 mod100最大值 【分析】 设置状态f[i][j][k]表示(i,j)各自内是否mod 100可以为k。 状态转移方程: f[i][j][k]=f[i+1][j][k+a[i+1][j]mod 100] || f[i+1][j+1...

weixin_30484739的博客 337

动态规划(入门):各种数字三角形

一、一般的数字三角形:         给一个由数字形成的三角形,要求从三角形的顶端开始走,走到最后一行,要求走的路径之和最大。对于一般的数字三角行,可以正着走,也可以反着走。建议最好正走,不然加强版的数字三角形倒着走走不出来。 例题: 描述 示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。   每一步可沿左斜线向下或右斜线向

二营长的意大利炮友 1377

p1044 p1076 p1079 p1084 数字三角形系列 小结

FIRST 一、本例: 示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大。  每一步可沿左斜线向下或右斜线向下走;  1  三角形中的数字为整数 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 二、分析: 不解释,最基本动归。f[i][j]=f[i][j]+max(

林下的码路 1144

AD7124高精度ADC实战:RTD测温系统的稳定性与精度优化全攻略

本文深入探讨AD7124高精度ADC在RTD测温系统中的实战应用,重点解析硬件设计、寄存器配置和系统优化策略。通过SPI接口调试和寄存器优化,提升ADC性能,解决工业级RTD测温中的稳定性与精度挑战,为工程师提供全面的优化方案。

weixin_30448603的博客 273

数字三角形2

题目描述 数字三角形 要求走到最后mod 100最大 输入 第1行n,表示n行 < =25 第2到n+1行为每个的权值 输出 mod 100最大值 样例输入 2 1 99 98 样例输出 99 #include <bits/stdc++.h> #include <iostream> #i...

weixin_30882895的博客 179

[动态规划]数字三角形2

数字三角形2 From Admin 描述 Description 数字三角形 要求走到最后mod 100最大 输入格式 InputFormat 第1行n,表示n行 第2到n+1行为每个的权值 输出格式 OutputFormat mod 100最大值 样例输入 SampleInput [复制数据] 样例输出 SampleOutput [复制数据] 时间限制 Time

UtralK的专栏 767

C++ 算法 OJ-43题: 数字三角形,求路径和的最大值

OJ-43题: 数字三角形 题目描述: 有一个由数字组成的三角形数塔,站在上一层的某个点,只能到达其下方左右的两个点。现在请找到一条从上到下的路径,使得路径上所有数字相加之和最大 输入 第一行输入一个数字 n(1≤n≤1000)代表数塔层数 接下来n行,按数塔图形,每行有一个或多个的整数,表示该层节点的值(节点值≤100000) 输出一个整数,代表从上到下路径上所有数字相加和的最大值。 样例输入: 6 3 9 5 4 2 1 3 4 9 6 3 5 3 7 3 2 1 3 9 3 2

qq_34970171的博客 1039

Tyvj 1044-数字三角形

描述 Description 示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。   每一步可沿左斜线向下或右斜线向下走;   1   三角形中的数字为整数 输入格式 InputFormat 第一行为N,表示有N行 后面N行表示三角形每条路的

Billy's 796
上一篇: 困惑度PPL
下一篇: memset为什么只能赋值为0
木禾DING
博客等级 码龄8年 191粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值