zoukankan      html  css  js  c++  java
  • 模拟————找规律

    链接: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
  • 相关阅读:
    SimpleDateFormat解析的时区问题
    linux之cp/scp命令+scp命令详解
    java.net.SocketException: java.security.NoSuchAlgorithmException
    Gradle使用手册(一):为什么要用Gradle?
    js_实用
    exp.validate.js
    MySQL实用技巧
    MongoDB 用户配置
    js 图片处理 Jcrop.js API
    MySQL连接池
  • 原文地址:https://www.cnblogs.com/buerdepepeqi/p/9159672.html
Copyright © 2011-2022 走看看