Wannafly挑战赛17 A&B

A 走格子
  1. 暴力模拟

    const int maxn = 1e3+100;
    int vis[maxn][maxn];
    int main(void) {
    
    int n,m;
    cin>>n>>m;
    int i,j;
    i = j = 1;
    vis[1][1] = 1;
    while(m > 0){
     while(i+1 <= n&&!vis[i+1][j]&&m > 0) vis[i][j] = 1,i++,m--;
    //         cout<<i<<" "<<j<<endl; while(j+1 <= n&&!vis[i][j+1]&&m > 0) vis[i][j] = 1,j++,m--;
    //         cout<<i<<" "<<j<<endl; while(i-1 >= 1&&!vis[i-1][j]&&m > 0) vis[i][j] = 1,i--,m--;
     while(j-1 >= 1&&!vis[i][j-1]&&m > 0) vis[i][j] = 1,j--,m--;
    //        cout<<i<<" "<<j<<endl; } cout<<i<<" "<<j<<endl; //cout<<x<<" "<<y<<endl; return 0; }
B 求值2
const int maxn = 2e6+100;
// 线性求逆元
LL inv[maxn];
LL fac[maxn];
LL invfac[maxn];
void init(void) {
    LL p = mod;
    inv[1] = 1;
    int n = 2e6;
    for(int i = 2; i <= n; ++i)
        inv[i] = (p-(p/i)*inv[p%i]%p)%p;
    fac[1] = invfac[1] = 1;
    for(int i = 2;i <= n; ++i)
       fac[i] = fac[i-1]*i%p;
    for(int i = 2;i <= n; ++i)
        invfac[i] = invfac[i-1]*inv[i]%p;
}

int main(void) {
   init();

   LL n;
   cin>>n;
//   cout<<inv[n]<<endl;
//   cout<<fac[n]<<endl;
//   cout<<invfac[n]<<endl;
//   cout<<inv[3*2]<<endl;
   LL ans = 0;
   for(int i = 1;i <= n; ++i)
      {
          ans = ans + (fac[2*i]*invfac[i]%mod)*(invfac[i])%mod;
          ans %= mod;
//          cout<<i<<" "<<fac[2*i]<<" "<<invfac[i]<<endl;
//          cout<<ans<<endl;
      }
   cout<<ans<<endl;
    }
全部评论

相关推荐

AFBUFYGRFHJLP:直接去美帝试试看全奖phd吧
点赞 评论 收藏
分享
沉淀一会:**圣经 1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务