首页 > 其他分享 >2024牛客多校第二场 - C. Red Walking on Grid

2024牛客多校第二场 - C. Red Walking on Grid

时间:2024-10-05 18:59:59浏览次数:1  
标签:Walking right 格子 int 向左走 多校 2024 grid aligned

题目大意: \(2 \times n\) 大小的方格矩阵,某些格子不能走,走过的格子不能走。从任意点出发,一次最多走多少


首先有一个贪心的思想,每次从最左走到最右,只能向上下右走,不能向左走(因为向左走一定不会让步数更多)。

动态规划,设 \(f_{i,j}\) 表示从每个连通块走到 \((i,j)\) 的最大格子数,其中 \(i \in \{1,2\}\),则有:

\[f_{0,i}=\max \left\{\begin{aligned} &f_{0,i-1}\\ &f_{1,i} \end{aligned}\right. \]

\[f_{1,i}=\max \left\{\begin{aligned} &f_{1,i-1}\\ &f_{0,i} \end{aligned}\right. \]

注意后面那一项需要同时计算,即不能用 \(f_{1,i}\) 更新 \(f_{0,i}\) 后又用 \(f_{0,i}\) 更新 \(f_{1,i}\)。

具体见代码:

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

const int N=1e6+5;
int n,f[2][N],ans;
char grid[2][N];
bool g[2][N];

int main()
{
	scanf("%d",&n);
	scanf("%s%s",grid[0]+1,grid[1]+1);
	for(int i=0;i<=1;i++)
		for(int j=1;j<=n;j++)
			g[i][j] = grid[i][j]=='R'; //1能走,0不能走
	for(int i=1;i<=n;i++)
	{
		if(g[0][i]) f[0][i]=max(f[0][i],f[0][i-1]+1);
		if(g[1][i]) f[1][i]=max(f[1][i],f[1][i-1]+1);
		int f0i=f[0][i],f1i=f[1][i];
		if(g[0][i]) f[0][i]=max(f[0][i],f1i+1);
		if(g[1][i]) f[1][i]=max(f[1][i],f0i+1);
		ans=max(ans,max(f[0][i],f[1][i]));
	}
	printf("%d\n",ans ? ans-1 : 0);
	return 0;
}

标签:Walking,right,格子,int,向左走,多校,2024,grid,aligned
From: https://www.cnblogs.com/jerrycyx/p/18448302

相关文章

  • 2024牛客多校第一场 - Mirror Maze
    题目大意:一个由四种镜面(|-/\)组成的矩阵,根据镜面的方向反射光线。问坐标\((x,y)\)处向某方向射入一束光线后(此光线会直接穿过此位置\((x,y)\)的镜面),一共会反射(直接穿过的不算)到多少个不同(一个坐标算一个镜面)的镜面。总体思路为预处理出每一个坐标向每一个位置发射光线的答......
  • 2024.10.5 LGJ Round
    A给定\(n\)个区间,你要选出最多区间对数,使得每一对的区间都不交。\(n\le4e5\)。反悔贪心,我们将所有区间按\(l_i\)从小到大排序,一个一个加入,加入的时候有两种情况。1.之前的区间中存在未匹配的区间,且可以跟当前区间匹配。我们随便选择一个区间跟当前区间匹配即可。2.找不到......
  • 2024-2025 20242307
    我的作业1,以上内容没有掌握没有我掌握的......
  • 2024年——博士延期第8年有感
    刚和期刊编辑社沟通邮件,被告知已接收录用的期刊排期为明年(2025年)5月份出版发表,然后我接到邮件后马上去翻找大连理工大学的博士毕业的要求,然后又赶紧去查了一下这个期刊的中科院SCI分区排名,最后得出一个结论,那就是学校要求论文得分6分才允许答辩,但是必须有一篇论文是已发表,而我现在......
  • [DMY]2024 CSP-S 模拟赛 Day 10
    赛时对于T1,看懂题面以后感觉很可做。首先明确正解复杂度应该是基于\(N\)额度线性做法。把输入按照开始时间排序,然后依次处理。赛时考虑到一个元素在覆盖过程中遇到其他元素时无法确定时间先后,确定后想要找到该元素的当前位置和重新覆盖有些困难,写了1h以后先放弃了。舍远......
  • 蓝桥杯2024年第十五届省赛A组-有奖问答
    题目描述小蓝正在参与一个现场问答的节目。活动中一共有30道题目,每题只有答对和答错两种情况,每答对一题得10分,答错一题分数归零。小蓝可以在任意时刻结束答题并获得目前分数对应的奖项,之后不能再答任何题目。最高奖项需要100分,所以到达100分时小蓝会直接停止答题。......
  • R3CTF2024 WP
    一、PWN1.Nullullullllu在直接给libc_base的情况下,一次任意地址写\x00。直接修改 IO_2_1_stdin 的_IO_buf_base末尾为\x00,那么_IO_buf_base就会指向 IO_2_1_stdin 的_IO_write_base,接下来就是利用getchar函数触发写操作修改 IO_buf_base 为 IO_2_1_stdout ,再......
  • [赛记] 多校A层冲刺NOIP2024模拟赛01【衡中】
    构造字符串50pts错解50pts;考虑正解,对于题目中的要求,我们可以转换成若干个相等与不等的操作,若相等则用并查集合并一下,不等则连边,若同块连边则无解,否则从前往后遍历赋值,每次找所连边其它块值的$\operatorname{mex}$即可;时间复杂度:$\Theta(nm\alpha(n))$;点击查看代码#i......
  • WMCTF 2024 wp
    WEBPasswdStealer前言本来题目叫PasswdStealer的:)考点就是CVE-2024-21733在SpringBoot场景下的利用。漏洞基本原理参考 https://mp.weixin.qq.com/s?__biz=Mzg2MDY2ODc5MA==&mid=2247484002&idx=1&sn=7936818b93f2d9a656d8ed48843272c0不再赘述。SpringBoot场景下的利用前文的分析......
  • 2024.10.4(周五)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>工资核算信息</title><style>/*整体页面布局和样式*/......