zoukankan      html  css  js  c++  java
  • HDU 4504

    直接DP求组合数即可。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #define LL __int64
    using namespace std;
    
    LL dp[21][70];
    
    void Init(){
    	memset(dp,0,sizeof(dp));
    	dp[0][0]=1ll;
    	for(int i=1;i<21;i++){
    		for(int j=1;j<70;j++){
    			if(j-1>=0) dp[i][j]+=dp[i-1][j-1];
    			if(j-2>=0) dp[i][j]+=dp[i-1][j-2];
    			if(j-3>=0) dp[i][j]+=dp[i-1][j-3];
    		}
    	}
    //	int ans=0;
    //	for(int i=0;i<70;i++)
    //	ans+=dp[20][i];
    //	printf("%d
    ",ans);
    }
    
    int main(){
    	Init();
    	int a,b,t;
    	while(scanf("%d%d%d",&a,&b,&t)!=EOF){
    		t=t/15;
    		b+=(t/2);
    		LL ans=0;
    		if(b<a){
    			t=t-t/2;
    			for(int i=0;i<70;i++)
    			ans+=dp[t][i];
    		}
    		else{
    			int g=b-a;
    		//	cout<<g<<endl;
    			t=t-t/2;
    		//	cout<<t<<endl;
    			for(int i=g+1;i<70;i++)
    			ans+=dp[t][i];
    		}
    		printf("%I64d
    ",ans);
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    企业级应用和互联网应用的区别
    JAVAEE课程目标
    组队项目--投票管理系统
    关于JSON
    Ajax技术学习
    Applet的学习
    Async的相关学习
    Filter分析
    JavaEE-map
    Session
  • 原文地址:https://www.cnblogs.com/jie-dcai/p/4368049.html
Copyright © 2011-2022 走看看