• 模拟————找规律


    链接:https://www.nowcoder.com/acm/contest/114/A
    来源:牛客网

    走格子
    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 262144K,其他语言524288K
    64bit IO Format: %lld

    题目描述

    在平面上有n*n大小的正方形,定义正方形左下角坐标是(1,1),右下角坐标是(n,1)

    现在A君在左下角,他的初始方向是向右,他要在正方形内走m步

    当A君碰到边界或者已经走过的格子时,他便会逆时针转90°继续走,直到走完m步。
    现在给你两个整数n和m,请算出走完m步后A君的坐标。

    输入描述:

    输入一行两个整数n和m。

    输出描述:

    输出一行两个数表示A君的坐标。
    示例1

    输入

    复制
    3 3

    输出

    复制
    3 2

    备注:

    n<=1000,m<n*n
    直接模拟就行
    走过的路径直接标记
    然后遇到标记过的转弯就行
    数据小直接暴力没毛病
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e6+5;
    const int INF = 0x3f3f3f3f;
    const int mod = 998244353;
    typedef long long ll;
    ll A[2*maxn];
    ll B[maxn];
    ll power_mod(ll a,ll n){
        ll ans=1;
        while(n){
            if(n&1) ans=ans*a%mod;
            a=a*a%mod;
            n>>=1;
        }
        return ans;
    }
    void init(){
        A[0]=1;
        for(int i=1;i<=2e6;i++){
            A[i]=A[i-1]*i%mod;
        }
        for(int i=1;i<=1e6;i++){
            B[i]=power_mod(A[i],mod-2);
        }
    }
    int main(){
        init();
        int n;
        scanf("%d",&n);
        ll ans=0;
        for(int i =1 ;i<=n;i++){
            ll sum=A[2*i];
            sum=sum*B[i]%mod*B[i]%mod;
            ans=(ans+sum)%mod;
        }
        printf("%lld
    ",ans);
        return 0;
    }
    View Code
    每一个不曾刷题的日子 都是对生命的辜负 从弱小到强大,需要一段时间的沉淀,就是现在了 ~buerdepepeqi
  • 相关阅读:
    转载:configure生成的文件(1.5.3)《深入理解Nginx》(陶辉)
    现场管理
    02 表扫描
    01 成本的含义
    16 计划稳定性与控制
    14 事务处理
    13 SELECT 以外的内容
    12 索引
    11 半联结 & 反联结
    08 分析函数
  • 原文地址:https://www.cnblogs.com/buerdepepeqi/p/9159672.html
Copyright © 2020-2023  润新知