首页 > [NOIP2002]过河卒
头像 savage
发表于 2019-08-20 16:38:31
题目描述 如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 C 点上的马可以控制 9 个点(图中的P1,P2 … 展开全文
头像 cheeserish
发表于 2020-06-19 20:09:04
比较坑的,注意数据范围,开long longdp[i][j]表示到达(i,j)点的路径数 #include<bits/stdc++.h> using namespace std; #define int long long int mp[30][30],dp[30][30]; signe 展开全文
头像 m0moo
发表于 2020-07-15 22:16:25
链接:https://ac.nowcoder.com/acm/problem/16708来源:牛客网 题目描述 如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为 展开全文
头像 在刷题的单身狗很开心
发表于 2023-10-04 23:26:19
每一个点都有左边或者上边的点变化而来,所以递推式为:dp[i][j] = dp[i-1][j]+dp[i][j-1];。 再有就是如果是障碍点那么就需要直接将该点的方案数变成0,马走日的规律就是横坐标差1纵坐标差2或者横坐标差2纵坐标差1。 #include <bits/s 展开全文
头像 亦枫忆水依
发表于 2022-10-15 20:56:25
过河卒 分析: 由题目可知每一步我们只能向下或者向右进行移动,故对任意一个可以非控制点,我们都有两种方式到达: 由其上方的点向下移动; 由其左边的点向右移动。 所以到任意点的方式为 到点(x,y)的方式=到点(x−1,y)的方式+到点(x,y−1)的方式到点(x,y)的方式=到点(x-1,y)的 展开全文
头像 SSuryxin
发表于 2021-03-09 18:58:57
过河卒 题意: 对于n * m的棋盘,棋盘中有九个点不能走,问你一个大头兵从左上角走到右下角的路径有多少条 思路: 使出秘技dp 状态转移方程是:tr[i] [j] = tr[i - 1] [j] + tr[i] [j - 1] 有一些细节: 🐎走的八个点的坐标得找对,同时得判这八个点是否符合题 展开全文
头像 瑜画
发表于 2020-06-11 16:43:37
首先不考虑马的情况。那么每一个位置,都可以从他的上方走来,和从他的左边走来。那么很容易想到状态转移方程dp[i][j]=dp[i-1][j]+dp[i][j-1]由于多了一个马,那么记录这个马控制的九个点,在对应的vis数组进行标记如果vis[i][j]==1,那么就让dp[i][j]=0,else 展开全文
头像 MoXq
发表于 2022-05-21 11:37:10
是入门级动规呀 把马的位置置0即可,注意边界(窝是直接++,弄堵“墙”保护数组) xdm记得开long long !(其余没啥大事儿了)润~ ">using namespace std; int n,m,x,y; long long f[50][50]; int dx[]={0,2,1,-1,-2, 展开全文
头像 微澜尛雨
发表于 2021-05-07 19:10:43
注意开long long !!!题目考点:dp题目大意:从起点到终点的路径数(多啰嗦一句,分析是dp还是bfs的点就是看求的是最短路径还是路径条数,两种算法解决的问题不同)题目分析:dp[ i ] [ j ] 表示走到(i,j)的路径数,正常情况下dp[i][j]等于上面走下来和左边走过来的路径条数 展开全文
头像 Violeking
发表于 2022-10-17 23:59:00
``` #include<iostream> using namespace std; const int N=25; int dx[8]={1,1,-1,-1,2,2,-2,-2}; int dy[8]={2,-2,2,-2,1,-1,1,-1}; int map[N][N]; 展开全文