首页 > 其他分享 >做题记录整理dp810 P2254 [NOI2005] 瑰丽华尔兹(2022/9/23)

做题记录整理dp810 P2254 [NOI2005] 瑰丽华尔兹(2022/9/23)

时间:2022-09-23 20:44:53浏览次数:80  
标签:cl 23 dp810 d% len NOI2005 ans for1 dp

P2254 [NOI2005] 瑰丽华尔兹
题解
这题的难点在与dp的递推方程的书写
如果写对了递推方程,想到单调队列优化是很自然的(然而我想到了不会打)
还有递推方程的具体代码实现也挺难的(似乎直接记忆化搜索比较简单)

#include<bits/stdc++.h>
#define for1(i,a,b) for(int i = a;i<=b;i++)
#define ll long long
#define mp(a,b) make_pair(a,b)
using namespace std;
struct node{
    int dp, pos;
}q[505]; 
int n,m,sx,sy,kk,ans,dp[505][505];
int dx[5] = {0,-1,1,0,0};
int dy[5] = {0,0,0,-1,1}; 
char ma[505][505];
void cl(int x,int y,int len,int d) 
{
	int hd = 1, tl = 0;
	for(int i = 1;;i++)
	{
		if(!(x>=1&&x<=n&&y>=1&&y<=m)) break;
		if(ma[x][y]=='x') hd=1,tl=0;
		else
		{
			while(hd<=tl&&q[tl].dp+i-q[tl].pos<dp[x][y]) tl--;
			q[++tl]=node{dp[x][y],i};
			
			
			if(q[tl].pos-q[hd].pos>len) hd++;
			dp[x][y]=q[hd].dp+i-q[hd].pos; 
			
			
			ans=max(ans,dp[x][y]);
		}
	    x+=dx[d],y+=dy[d];
	}	
}
int main()
{
	scanf("%d%d%d%d%d",&n,&m,&sx,&sy,&kk);
	for1(i,1,n)
	 scanf("%s",ma[i]+1);
	memset(dp,0xf3,sizeof(dp));
	dp[sx][sy]=0;
	int s,t,d,len;
	for1(k,1,kk)
	{
		scanf("%d%d%d",&s,&t,&d);
		len=t-s+1;
		if(d==1) 
		    for1(i,1,m) 
			    cl(n,i,len,d);
		if(d==2) 
		    for1(i,1,m) 
			    cl(1,i,len,d);
		if(d==3) 
		    for1(i,1,n) 
			    cl(i,m,len,d);
		if(d==4) 
		    for1(i,1,n) 
			    cl(i,1,len,d);
	}
	printf("%d", ans);
	return 0;
}

标签:cl,23,dp810,d%,len,NOI2005,ans,for1,dp
From: https://www.cnblogs.com/yyx525jia/p/16724171.html

相关文章

  • 做题记录整理dp8 P5665 [CSP-S2019] 划分(2022/9/23)
    P5665[CSP-S2019]划分这题其实并不是题单的第八题,但我现在一做完题目马上就想来(测出题人的码)整理题目因为这题是真的恶心首先朴素的n三次方dp,枚举上一个端点,以及上上......
  • 9.23
    今日内容详细pycharm下载与安装PyCharm是一种PythonIDE(IntegratedDevelopmentEnvironment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工......
  • 【2022-09-23】DRF入门到入土(一)
    drf入门规范一、web应用模式web应用模式分为两种,一种是前后端不分离,一种是前后端分离前后端不分离前后端分离二、API接口为了在团队内部形成共识、防止......
  • 9.23 DAY 02
    读论文:2020_ECCV_Object-ContextualRepresentationsforsemanticsegmentation首先,在gt指导下分割学习目标区域(粗分割);其次,通过聚合位于目标区域内像素的表示来计算目标......
  • 【行列式】交易(省选模拟Day3)(2022.9.23)
    交易Orzcyr【问题描述】给定n点m边有向无环图,其中没有入度的点被视为源点,没有出度的点被视为汇点。保证源点和汇点数目相同。考虑所有把源汇点两两配对,用两两点不......
  • 详细解析11月前能影响加息的数据 点阵图带来的情绪开始缓解 — 2022.9.23
    详细解析11月前能影响加息的数据点阵图带来的情绪开始缓解—2022.9.23九月份的加息结束,以及点阵图带来的终端利率走势,风险市场的情绪持续反而出现了乐观的局面,随着凌晨......
  • 今日热门表情包精选2022-09-23-985
    今日热门表情包精选款鸡涌,把心都给你我什么都看见了不行我受不了这委屈(橘猫)不说了要去搬砖了孤寡之王七夕蛤蟆之寡王点我叫到你朋友自闭表情包沙雕熊猫头哎!我.哎.呵呵......
  • 2022-09-23 Avoid mutating a prop directly since the value will be overwritten w
    父组件给子组件传值,提示子组件不能直接修改父组件传递过来的值,完整报错: Avoidmutatingapropdirectlysincethevaluewillbeoverwrittenwhenevertheparentcom......
  • LeetCode1235 规划兼职工作
    LeetCode1235规划兼职工作按照结束时间进行排序\(f[i]\)表示前\(i\)个工作的最大报酬,第\(i\)个工作可选可不选第\(i\)个不拿:\(f[i]=max(f[i],f[i-1])\)第\(......
  • Boy or Girl CodeForces - 236A
    BoyorGirlCodeForces-236A如果一个人的用户名中不同的字符数是奇数,那么他就是一个男性,否则她就是一个女性(鬼知道为什么)。给你一个表示用户名的字符串,请帮助小A确定这......