4/13 cf构造题

Posted 钟钟终

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4/13 cf构造题相关的知识,希望对你有一定的参考价值。

C. Factorials and Powers of Two
难度:1500
暴力枚举二进制的方法。任何一个数都可以由二进制表示出来,暴力枚举出需要最少的阶乘和二进制数。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+5;
const int inf=0x3f3f3f3f;
int a[N],n,k,idx;
int get(int n)

    int ans=0;
    while(n)
    
        if(n&1) ans++;
        n>>=1;
    
    return ans;

void init()

    a[idx++]=1;
    for(int i=1;i<=15;i++)
    
        a[idx++]=i*a[i-1];;
    

signed main()

    init();
    int t;cin>>t;
    while(t--)
    
        cin>>n;
        k=inf;
        for(int i=0;i<(1<<15);i++)
        
            int m=n,cnt=0;
            for(int j=0;j<15;j++)
            
                if((i>>j)&1)
                
                    m-=a[j];cnt++;
                
            
            if(m>=0)
                k=min(k,cnt+get(m));
        
        cout<<k<<endl;
    
	return 0;



以上是关于4/13 cf构造题的主要内容,如果未能解决你的问题,请参考以下文章

CF1103C Johnny Solving(构造题)

构造题 贪心cf1041E. Tree Reconstruction

CF277B Set of Points——构造题

CF989C A Mist of Florescence (构造)

CF1028E Restore Array 构造

[ 9.28 ]CF每日一题系列—— 940A规律构造