zoukankan      html  css  js  c++  java
  • 组合数

    一个类似杨辉三角的东西,暴力写杨辉三角大概可以得到90分。但是这道题的优化却十分的诡异

    #define 巧妙 诡异
    

    巧妙取模 pts:95分.
    维护前缀和+递推打表 pts:100分.

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<queue>
    using namespace std;
    inline int read() {
    	int x=0,f=1;
    	char ch=getchar();
    	while(ch<'0'||ch>'9') {
    		if(ch=='-') f=-1;
    		ch=getchar();
    	}
    	while(ch>='0'&&ch<='9') {
    		x=(x<<1)+(x<<3)+(ch^48);
    		ch=getchar();
    	}
    	return x*f;
    }
    int t,k;
    int f[2005][2005];
    int c[2005][2005];
    int main() {
    	t=read(),k=read();
    	for(int i=0; i<=2000; i++) f[i][0]=f[i][i]=1;
    	for(int i=1; i<=2000; i++) {
    		for(int j=1; j<=i; j++) {
    			f[i][j]=((f[i-1][j-1]%k)+(f[i-1][j]%k))%k;
    		}
    	}
    	for(int i=1; i<=2000; i++) {
    		for(int j=1; j<=2000; j++) {
    			c[i][j]=c[i-1][j]+c[i][j-1]-c[i-1][j-1];
    			if(!f[i][j]&&i>=j)c[i][j]++;
    		}
    	}
    	for(int i=1; i<=t; i++) {
    		int n,m;
    		n=read(),m=read();
    		printf("%d
    ",c[n][m]);
    	}
    }
    
  • 相关阅读:
    ASP.NET Core 微信支付(一)【统一下单 APIV3】
    ASP.NET Core 跨域
    快速排序
    希尔排序(插入式与位移式优化)
    选择排序和插入排序
    冒泡排序
    八皇后问题
    递归与迷宫回溯问题
    逆波兰计算器
    栈实现综合计算器
  • 原文地址:https://www.cnblogs.com/scy-fisheep/p/13840617.html
Copyright © 2011-2022 走看看