(Luogu) P1373 小a和uim之大逃离

2024-03-20 17:18
文章标签 luogu 之大 uim 逃离 p1373

本文主要是介绍(Luogu) P1373 小a和uim之大逃离,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

传送门

解题思路:这里dp要开4维,dp[i][j][t][p] 代表在 (i,j) 差值为t,p为角色(0为a,1为uim) 选择的方案数 。这样我们只要把dp[i][j][0][1]加起来就是所求的方案数了,其实条件是 dp[i][j][a[i][j]%(k+1)][0]=1; 因为每个点都可以为起点。如何更新状态的,我们这样规定 (A-B+k+1)%(k+1)=t%(k+1)   (A为小a,B为uim )。

如果当前是A选,意义就是 ((A+a[i][j])-B+k+1)%(k+1)=t%(k+1) ------> (A-B+k+1)%(k+1)=(t-a[i][j]+k+1)%(k+1) 即转移过来坐标的差为(t-a[i][j]+k+1)%(k+1),角色为1 即

dp[i][j][t][0]=( dp[i][j][t][0]+dp[i-1][j][(t-a[i][j]+k+1)%(k+1)][1] )%mod;
dp[i][j][t][0]=( dp[i][j][t][0]+dp[i][j-1][(t-a[i][j]+k+1)%(k+1)][1] )%mod;

如果当前是B选,意义就是 (A-(B+a[i][j])+k+1)%(k+1)=t %(k+1)------>(A-B+k+1)%(k+1)=(t+a[i][j])%(k+1) 即转移过来坐标的差为(t+a[i][j])%(k+1) ,角色为0 即 (代码写的时候复制粘贴上面的所以就没改)

dp[i][j][t][1]=( dp[i][j][t][1]+dp[i-1][j][(t+a[i][j]+k+1)%(k+1)][0] )%mod;
dp[i][j][t][1]=( dp[i][j][t][1]+dp[i][j-1][(t+a[i][j]+k+1)%(k+1)][0] )%mod;

代码如下: 

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<cmath>
#include<sstream>
using namespace std;
typedef long long ll;
const ll inf=0x3f3f3f3f;
const ll mod=1e9+7;
int dp[805][805][20][2];//dp[i][j][t][p] 在(i,j)差值为t,p为角色 0为a,1为uim 的方案数 
int a[805][805];
int n,m,k;
int main(){std::ios::sync_with_stdio(0);cin>>n>>m>>k;for(int i=1;i<=n;++i){for(int j=1;j<=m;++j){cin>>a[i][j];dp[i][j][a[i][j]%(k+1)][0]=1; }}ll ans=0;for(int i=1;i<=n;++i){for(int j=1;j<=m;++j){ for(int t=0;t<=k;++t){dp[i][j][t][0]=( dp[i][j][t][0]+dp[i-1][j][(t-a[i][j]+k+1)%(k+1)][1] )%mod;dp[i][j][t][0]=( dp[i][j][t][0]+dp[i][j-1][(t-a[i][j]+k+1)%(k+1)][1] )%mod;dp[i][j][t][1]=( dp[i][j][t][1]+dp[i-1][j][(t+a[i][j]+k+1)%(k+1)][0] )%mod;dp[i][j][t][1]=( dp[i][j][t][1]+dp[i][j-1][(t+a[i][j]+k+1)%(k+1)][0] )%mod;if(t==0)	ans=(ans+dp[i][j][t][1])%mod;}}}cout<<ans<<endl;return 0;
}

 

这篇关于(Luogu) P1373 小a和uim之大逃离的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/830184

相关文章

逃离北京回家创业--生存篇

创业的路上,并不总是激情和乐趣。当激情过了,就需要面对赤裸裸的现实。 首先要考虑团队的开销问题,虽然大家拿的工资并不高,但是四个人的工资加上房租水电,对于一个穷苦出身的程序员来说也是个不小的压力。为了给团队找个能够发展下去的持续动力,我想了挺多的办法。 我们在大学城里面创业,大学生是很好的资源。我首先想到的是办培训,我反复思考,我觉得想到了一个非常理想的运作模式。我们创业缺少的是两

逃离北京回家创业--团队组建篇

筹划好了自己的创业项目,然后就开始着手组建团队了。考虑到自己没有太多的资金支持,不能可能去社会上招经验丰富的员工,于是决定自己培养团队。 好在我技术选择的是nodejs和mongodb,前后端都用js开发起来学习成本相对较低。我选择办公地点在大学城,一方面是考虑到这里的房租相对便宜,另一方面这里周边有十几所大学,组建团队也比较方便。大学生虽然不像社会上招的熟练技术人员效率那么高,但是我坚信大学生

短剧APP小程序开发之大数据分析:短剧内容优化与运营策略

在当今数字化时代,大数据分析已成为各行各业不可或缺的一部分,特别是在短剧APP小程序开发中。通过深入分析用户行为和偏好,我们可以为短剧内容的制作、选购和运营策略提供有力的指导。 一、大数据分析在短剧内容制作中的应用 用户观看偏好分析:通过分析用户观看时长、观看频次、点赞和评论等数据,了解用户对不同类型、风格和题材的短剧偏好,为内容创作提供方向。 热门话题与趋势分析:利用大数据挖掘技术,

hdu 1728 逃离迷宫(搜索:BFS+优先队列)

问在给定转弯次数内能不能到达终点 因为限制了转弯次数,所以要想到每次取转弯次数最小的情况 看了网上好多人都是BFS+DFS,找到某一方向后沿着方向一直走 但我是用优先队列解决,每次取出转弯次数最小的情况,当然这样会慢一些 解决第一次转弯不计次数的方法是判断四个方向是否能加入队列,能的话加入即可 代码如下: #include <queue>#include <cstdio>#in

luogu-P10570 [JRKSJ R8] 网球

题目传送门: [JRKSJ R8] 网球 - 洛谷https://www.luogu.com.cn/problem/P10570 解题思路         数学问题,暴力这个范围会超时。         首先,找出这两个数的最大公因数,将这两个数分别除以最大公因数,则这两个数互质,判断如果有一方<=c,求出他们翻倍的倍数(ceil(c*1.0/min(a,b))),那么将他们分别乘ceil

成本高昂 硅谷创业公司逃离公共云

from:http://www.chinacloud.cn/show.aspx?id=13244&cid=11 在硅谷,科技创业公司往往通过云服务来发展自己的业务。这种云服务允许企业通过互联网即时获得所需计算能力,弗兰基尔在旧金山创建的MemSQL也不例外,租借的是云计算鼻祖亚马逊的云服务。 但今年5月,即MemSQL创建约两年后,弗兰基尔放弃了亚马逊云服务,将公司的运营转移到自己的还

B站内核隔离技术的应用与实践之大数据混部篇

背景 随着B站大数据业务的高速发展,各类业务资源需求也随之快速增长。与此同时,大数据集群有效的资源利用率低于预期,究其原因主要有以下两点, 业务出于性能、稳定性考量会向平台申请过量的系统资源,导致平台不会调度更多任务上来运行。 对于高低优任务资源隔离能力不足导致有竞争时,高优任务受影响甚至被误杀。 为了解决业务资源过量,大数据团队在hadoop架构中加入了自研超配组件Amiya。A

hdu1728逃离迷宫 (利用最短路径思想+优先队列(BFS))

Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位置,只能走到与它相邻的4个位置中,当然在行走过程中,gloria不能走到迷宫外面去。令人头痛的是,gloria是个没什么方向感的人,因此,她在行走过程中,

c++题目_守望者的逃离

题目描述 恶魔猎手尤迫安野心勃勃.他背叛了暗夜精灵,率深藏在海底的那加企图叛变:守望者在与尤迪安的交锋中遭遇了围杀.被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去,到那时,岛上的所有人都会遇难:守望者的跑步速度,为17m/s, 以这样的速度是无法逃离荒岛的。庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。守望者的魔

HDU4524郑厂长系列故事——逃离迷宫(2013腾讯编程初赛5)(AC)

郑厂长系列故事——逃离迷宫 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1725    Accepted Submission(s): 796 Problem Description 郑厂长没变   还是那个假厂