首页 > 其他分享 >洛谷 P1002 [NOIP2002 普及组] 过河卒

洛谷 P1002 [NOIP2002 普及组] 过河卒

时间:2023-01-19 19:23:03浏览次数:67  
标签:horse 洛谷 methods NOIP2002 int destination P1002 jump board

P1002 [NOIP2002 普及组] 过河卒

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    int Horse_y[8] = { 2, 1, -1, -2, -2, -1, 1, 2 };
    int Horse_x[8] = { 1, 2, 2, 1, -1, -2, -2, -1 };
    int x_destination, y_destination, x_horse, y_horse;
    scanf("%d %d %d %d", &x_destination, &y_destination, &x_horse, &y_horse);
    int board[x_destination + 1][y_destination + 1];
    memset(board, 0, sizeof(board));
    long long methods[x_destination + 1][y_destination + 1];
    memset(methods, 0, sizeof(methods));

    board[x_horse][y_horse] = 1;
    for (int i = 0; i < 8; i++) {
        int x_jump = x_horse + Horse_x[i];
        int y_jump = y_horse + Horse_y[i];
        if (x_jump < 0 || x_jump > x_destination || y_jump < 0 || y_jump > y_destination)
            continue;
        board[x_jump][y_jump] = 1;
    }

    methods[0][0] = 1;
    for (int i = 0; i <= x_destination && board[i][0] == 0; i++)
        methods[i][0] = 1;
    for (int j = 0; j <= y_destination && board[0][j] == 0; j++)
        methods[0][j] = 1;
    for (int i = 1; i <= x_destination; i++)
        for (int j = 1; j <= y_destination; j++) {
            if (board[i][j] == 1)
                continue;
            methods[i][j] = methods[i - 1][j] + methods[i][j - 1];
        }
    printf("%lld", methods[x_destination][y_destination]);
    system("pause");
    return 0;
}

标签:horse,洛谷,methods,NOIP2002,int,destination,P1002,jump,board
From: https://www.cnblogs.com/fjnhyzCYL/p/17061995.html

相关文章

  • 洛谷P4983 忘情 题解报告
    题目地址题意:把正整数序列分隔为m个区间,若单个区间的元素之和为X,则其贡献为\((X+1)^2\)。求所有区间的贡献之和的最小值。分析:wqs二分+斜率优化dp。用单调队列发可......
  • 约瑟夫问题(洛谷P1996)
    问题描述:有n个人,编号为1~n,按顺序围成一圈,从第一个人开始报数,到第m个人出列,再由下一个人重新从1开始报数,数到m再出列,直到所有人都出列,依次输出所有出列的人的编号。输入:两......
  • 我的洛谷成就
    我的成就AC之神成就一战成名成就红题收割者橙题收割者黄题收割者绿蓝收割者紫黑收割者强人之友领奖之王贡献标兵全勤标兵......
  • 洛谷普及组模拟赛 题解报告
    洛谷普及组模拟赛题解报告\[\bf{Prepared\by\InoueTakina.}\]前言:祝大家身体健康。本场比赛较为良心,经过了多次难度平衡,应该严格低于NOIP2018提高组,相信大家......
  • 洛谷 P2241 统计方形
    原题链接题解记住遍历时求i*j乘积的和就是该区域内矩形的个数遍历时求i,j最小值的和就是该区域内正方形的个数所以所有矩形的个数减去正方形的个数就是长方形个数#i......
  • 洛谷 P3392 涂国旗
    原题链接题解首先用一个二维数组记录每行中WBR的数量,用来提高查找速度其次就是用两层for循环进行区域划分,如下图所示然后对区域内的所需更改颜色进行统计,这里要注意......
  • 洛谷P3195 玩具装箱 题解报告
    题目地址题意:如题所述。分析:斜率优化dp模板题。题目没看清就下手,自以为题面所述中i>j;原始dp式子也没设计准确。中途在错误方向上头铁时,甚至没注意到横坐标是沿......
  • 洛谷P3628 特别行动队 题解报告
    题目地址题意:把正整数序列分隔为若干区间,若单个区间的元素之和为X,则其贡献为\(aX^2+bX+c\)。求所有区间的贡献之和的最大值。分析:斜率优化dp模板题。这篇博客描述得......
  • 洛谷 P1098 [NOIP2007 提高组] 字符串的展开
    洛谷链接牛客链接两个平台都过了题目:题解:本题是一道比较硬核的模拟题,思路方面其实问题不大,但是难在模拟情况上面而且测试数据里还包含了一些题目中没有提到的情况,所......
  • 洛谷P1496 火烧赤壁【题解】
    事先声明本题解文字比较多,较为详细,算法为离散化和差分,如会的大佬可以移步去别处看这道题的思路(因为作者比较懒,不想新开两个专题)。题目简要给定每个起火部分的起点和终点......