链接:https://www.nowcoder.com/acm/contest/114/A
来源:牛客网
现在A君在左下角,他的初始方向是向右,他要在正方形内走m步
输入一行两个整数n和m。
输出一行两个数表示A君的坐标。
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\n",ans); return 0; }
原文:https://www.cnblogs.com/buerdepepeqi/p/9159672.html