• HDU 4475 HDOJ Downward paths


    http://acm.hdu.edu.cn/showproblem.php?pid=4475

    题目意思:

      给定边长为n的正三角形,如图分成单位三角形,然后从顶点出发,到最下层的任一点,问有多少种方案。

      其中,防线可以是水平和向下,但不能走回头路。

    递推:ans[n]=ans[n-1]*n*2

    对于ans[n],考虑ans[n-1]到达第n-1层,第n-1层有n个点,对于每种方案,均可平移至n个点中的任意一个(若为本身,则相当于没动),对于下一步,有左右两种方案。

    可以整理得ans[n]=n! * 2^n,所以n>=mod时,答案为0。

    最近在练java,所以代码是java的

     1 import java.util.*;
     2 public class Main {
     3     public static void main(String[] args){
     4         Scanner cin=new Scanner(System.in);
     5         long[] ans=new long[1000100];
     6         int m=1000003,T=cin.nextInt();
     7         ans[1]=2;
     8         for(int i=2;i<m;i++)ans[i]=ans[i-1]*2*i%m;
     9         while(T--!=0){
    10             long n=cin.nextLong();
    11             if(n<m) System.out.println(ans[(int)n]);
    12             else System.out.println("0");
    13         }
    14         cin.close();
    15     }
    16 }
  • 相关阅读:
    什么是进程
    进程控制
    MMAP文件内存映射
    I/O多路转接模型
    LINUX创建管道文件
    文件描述符复制
    LINUX改变文件大小
    类作用域
    LINUX文件定位
    War of the Corporations CodeForces
  • 原文地址:https://www.cnblogs.com/hundundm/p/2798133.html
Copyright © 2020-2023  润新知