update
This commit is contained in:
		
							parent
							
								
									09afebc7df
								
							
						
					
					
						commit
						4195226207
					
				@ -1,24 +1,29 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <map>
 | 
			
		||||
 | 
			
		||||
using ull = unsigned long long;
 | 
			
		||||
#define NV(v)#v<<" : "<<(v)
 | 
			
		||||
 | 
			
		||||
static constexpr ull fact(const ull n)noexcept{
 | 
			
		||||
static ull t, k, n, m, ans;
 | 
			
		||||
static std::map<ull,ull> fact_map;
 | 
			
		||||
 | 
			
		||||
static ull fact(const ull n)noexcept{
 | 
			
		||||
    if(n==0)return 1;
 | 
			
		||||
    const auto it = fact_map.find(n);
 | 
			
		||||
    if(it !=  fact_map.end())return (*it).second;
 | 
			
		||||
    ull ret {1};
 | 
			
		||||
    for(ull i{2};i<=n;i++){
 | 
			
		||||
        ret*=i;
 | 
			
		||||
        ret=(ret*i)%k;
 | 
			
		||||
    }
 | 
			
		||||
    fact_map.insert({n,ret});
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static constexpr ull C(const ull n, const ull m)noexcept{
 | 
			
		||||
    return fact(n)/(fact(m)*fact(n-m));
 | 
			
		||||
static ull C(const ull n, const ull m)noexcept{
 | 
			
		||||
    return fact(n)/(fact(m)*fact(n-m)%k);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static ull t, k, n, m, ans;
 | 
			
		||||
 | 
			
		||||
int main(){
 | 
			
		||||
    // std::cout<<NV(fact(0))<<'\n'<<NV(fact(3))<<'\n';
 | 
			
		||||
    std::iostream::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user