当前位置: 首页 > news >正文

P1002 [NOIP 2002 普及组] 过河卒

在这里插入图片描述

思路整体向下向右平均2个单位,这样就不用考虑越界问题了。

最大值20,所以开数组时,下标开到25就行。

由于产生的数可能非常大,dp数组的值要用 long long.

统一坐标。

#include <stdio.h>
#define N 24typedef struct post {int x; //水平int y; //垂直
}post;int arr[N][N] = {0};
post a, b, c;
long long  dp[N][N];   //dp[i][j] 指的是到i j位置时,经过的数量
int main()
{int tmp = scanf("%d%d%d%d", &b.x, &b.y, &c.x, &c.y);// 整体向下,向右平移2个单位a.x = 2;a.y = 2;b.x += 2;b.y += 2;c.x += 2;c.y += 2;//根据马的位置,把相关位置堵死arr[c.x][c.y] = 1;arr[c.x - 2][c.y - 1] = 1;arr[c.x + 2][c.y - 1] = 1;arr[c.x - 2][c.y + 1] = 1;arr[c.x + 2][c.y + 1] = 1;arr[c.x - 1][c.y - 2] = 1;arr[c.x + 1][c.y - 2] = 1;arr[c.x - 1][c.y + 2] = 1;arr[c.x + 1][c.y + 2] = 1;//dp初始化dp[a.x][a.y] = 1;for (int i = 2; i <= b.x; i++) {for (int j = 2; j <= b.y; j++) {if (i == 2 && j == 2) {continue;}if (arr[i][j] == 0) {dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}else {dp[i][j] = 0;}//printf("%lld ", dp[i][j]);}//printf("\n");}printf("%lld", dp[b.x][b.y]);return 0;
}
#include <stdio.h>
#include <string.h>
#define N 24typedef struct post {int x; //水平int y; //垂直
} post;int arr[N][N];
post a, b, c;
long long dp[N][N];   //dp[i][j] 指的是到i j位置时,经过的数量int main() {// 输入数据scanf("%d%d%d%d", &b.x, &b.y, &c.x, &c.y);// 整体向下,向右平移2个单位a.x = 2;a.y = 2;b.x += 2;b.y += 2;c.x += 2;c.y += 2;// 初始化arr和dp数组为0memset(arr, 0, sizeof(arr));memset(dp, 0, sizeof(dp));// 标记马的控制点arr[c.x][c.y] = 1;int dx[] = {-2, -2, -1, -1, 1, 1, 2, 2};int dy[] = {-1, 1, -2, 2, -2, 2, -1, 1};for (int k = 0; k < 8; k++) {int nx = c.x + dx[k];int ny = c.y + dy[k];if (nx >= 0 && nx < N && ny >= 0 && ny < N) {arr[nx][ny] = 1;}}// dp初始化dp[a.x][a.y] = 1;for (int i = a.x; i <= b.x; i++) {for (int j = a.y; j <= b.y; j++) {if (i == a.x && j == a.y) {continue;}if (arr[i][j] == 0) {dp[i][j] = dp[i - 1][j] + dp[i][j - 1];} else {dp[i][j] = 0;}}}printf("%lld\n", dp[b.x][b.y]);return 0;
}
http://www.dtcms.com/a/314814.html

相关文章:

  • RocksDB 核心入口:DB类源码解析
  • 《C++多态详解:从虚函数到运行时动态绑定》
  • 强反射场景识别误差↓78%!陌讯多模态融合算法在水位监测的落地优化
  • Shell操作git,上传更新文档
  • Redshift 渲染器:GPU 加速渲染的高效之选
  • TGD第十一篇:卷积神经网络中的TGD特征
  • MS-DOS 常用指令集
  • OCR 精准识别验讫章:让登记与校验更智能
  • ssh连接VirtualBox中的Ubuntu24.04(win11、putty、NAT 模式)
  • 西门子PLC S7-1200单轴步进控制电动机
  • Exporters | 安装process_exporter
  • C语言:构造类型学习
  • 深入剖析Java Stream API性能优化实践指南
  • 【Django】-11- 后台管理界面定制
  • [机器学习]02-基于贝叶斯决策的鸢尾花数据集分类
  • 云原生攻防6(Kubernetes扩展知识)
  • 并发编程常用工具类(下):CyclicBarrier 与 Phaser 的协同应用
  • 政府财政行业云原生转型之路
  • 关于解决WinRiver项目动态XmlElement的序列化与反序列化的问题
  • 基于Java的AI工具和框架
  • PyTorch生成式人工智能(25)——基于Transformer实现机器翻译
  • spring boot开发中的资源处理等问题
  • RTOS如何保证实时性
  • 深圳南柯电子|电驱动系统EMC测试整改:“诊断-治疗-预防”方案
  • HTML5的新特性
  • 上位机知识篇---令牌
  • 如何选择合适的政务文本检测工具?
  • go 语言常见问题(2)
  • 宝塔面板安装WordPress教程:10分钟一键部署搭建个人博客 (2025)
  • 聊聊web前端的缓存问题