zoukankan      html  css  js  c++  java
  • P1287 盒子与球

    MIku

    这是一道数学题,可以推式子(我推错了)

    这是一道dp,完全没想到它是。

    所以说我把我的错误式子缝缝补补,加上个dfs

    过了。

    大体思想就是利用插板法求出每个盒子可以装几个球的方案,

    然后因为同一个盒子内部的球是无序的,所以说用一点点排列的知识加上dfs的框架处理一下,然后就过了

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    long long Ariche(int x){
    	int tem=1;
    	for(int li=1;li<=x;++li){
    		tem*=li;
    	}
    	return tem;
    }
    long long n,r;
    long long simex;
    void dfs(int la,int now,int cnt,int ans){
    	if(cnt>r-1)
    	return ;
    	if(now==n){
    	//	cout<<"342342";
    		if(cnt==r-1){
    			simex+=ans;
    			return ;
    		}
    		else{
    			return ;
    		}
    	}
    	dfs(la,now+1,cnt,ans);
    	dfs(now,now+1,cnt+1,ans*=(Ariche(n-la)/Ariche(n-la-(now-la))/Ariche(now-la)));
    }
    int main(){
    	cin>>n>>r;
    	//cout<<Ariche(n-1)/(Ariche(r-1)*Ariche(n-r+1))*Ariche(n);`	
    	dfs(0,1,0,1);
    	cout<<simex<<endl;																																									
    	return 0;
    } 
    
  • 相关阅读:
    hbase过滤器(1)
    公司jar包提交到集群的方法
    hbase Hfile处理原因
    oracle pl/sql远程连接过程
    mapreduce join操作
    HTML不熟悉方法总结
    Ajax详解
    getElementById和querySelector区别
    Session
    ES6模块化
  • 原文地址:https://www.cnblogs.com/For-Miku/p/13849897.html
Copyright © 2011-2022 走看看