题目

思路

只有2的指数阶和n的阶层所构成
数据范围是101210^{12}1012,恰好在2402^{40}240和15!15!15!以内
总所周知,每一个整数都可以转换为相应的二进制数,
对应这道题,最坏的情况下,我们的答案就应该是二进制1的个数
然后我们来看15内的阶层,意味着我们能够省下多少数就看这个
我们去枚举每一个阶层数取不取即可,这样子即可不重不漏的判断完所有情况
最后时间复杂度即T∗214∗40T * 2 ^ {14} * 40T∗214∗40 不会超时

代码

#include "bits/stdc++.h"
#define int long long
const int N = 2e5 + 111;
using namespace std;
int t;
vector<int> fact;
int func (int x) {int ans = 0;for (int i = 0; i <= 40; ++ i)ans += x >> i & 1;return ans;
}
signed main() {cin >> t;for (int i = 1, j = 1; i <= 15; ++ i) {j *= i;fact.push_back(j);}while (t --) {int n;cin >> n;int k = upper_bound(fact.begin(), fact.end(), n) - fact.begin();int ans = func(n);for (int i = 0; i <= (1 << k) - 1; ++ i) {int f = 0, res = 0, cnt = 0;for (int j = 0; j < k && !f; ++ j) {if (i >> j & 1) res += fact[j], cnt ++;if (res > n) f = 1;}if (!f) ans = min (ans, func(n - res) + cnt);}cout << ans << endl;}return 0;
}

CF 1646C Factorials and Powers of Two相关推荐

  1. Codeforces 1646C Factorials and Powers of Two

    0x10 题目链接 cf 1646c 0x20 题目 0x21 Tag 状态压缩,枚举 0x22 题目描述 0x23 翻译 给出一个数n,是否能将其拆解成多个**(共k个)**2的幂次与阶乘的和,求k ...

  2. CodeForces - 1646C Factorials and Powers of Two

    看了大佬的博客才会写的 传送门 #include<bits/stdc++.h> using namespace std;#define int long longint lowbit(in ...

  3. Codeforces Round #774 (Div. 2) A-D

    A. Square Counting 思路 签到 #include <bits/stdc++.h> using namespace std; int main() {ios::sync_w ...

  4. CodeForce 774 div2 A-C,E题解

    E. Power Board 思路 重复的数是从哪里来的?比如4 = 2 2 2^2 22, 那么 4 2 4^2 42 就会跟 ( 2 2 ) 2 (2^2)^2 (22)2 = 2 4 2^4 2 ...

  5. [CF]Codeforces Round #529 (Div. 3)

    [CF]Codeforces Round #529 (Div. 3) C. Powers Of Two Description A positive integer xx is called a po ...

  6. 【CodeForces - 305C】Ivan and Powers of Two(思维)

    C. Ivan and Powers of Two time limit per test 0.5 seconds memory limit per test 256 megabytes input ...

  7. 『参考』.net CF组件编程(4)——为自定义组件添加工具箱图标!

    前言: 在前三篇的文章中,和大家一起创建了一个用于TCP连接检测的小组件,如果你记不得了,可以通过以下链接去回顾一下: 『参考』.net CF组件编程(1)--基础之后 『参考』.net CF组件编程 ...

  8. UVA 10515 - Powers Et Al.(数论)

    UVA 10515 - Powers Et Al. 题目链接 题意:求出m^n最后一位数 思路:因为m和n都非常大,直接算肯定是不行的,非常easy想到取最后一位来算,然后又非常easy想到最后一位不 ...

  9. OC对象 vs CF对象

    2019独角兽企业重金招聘Python工程师标准>>> OC对象 vs CF对象 在ARC场景下,对象所有权没有转换 使用__bridge关键字即可实现CF对象和OC对象之间的自由转 ...

最新文章

  1. chrome 谷歌浏览器怎么添加Axure扩展
  2. 才27岁,北大博士不幸离世
  3. python对角线图_python对角线图_python – 在Seaborn Jointplot上绘制对角线(相等的线)...
  4. 国外一教授坦言,用这方法能迅速成为python程序员,但都不愿意说
  5. CAN笔记(3) 错误状态
  6. UI素材渐变配色专辑,对比用色轻松驾驭
  7. 百度和腾讯之间就差一个好的投资团队
  8. 全新版本的SoundSource for Mac - 优质的音频控制软件
  9. selenium+testng+reprotng+ant配置
  10. 实践:VB创建Com组件 在Asp以及.Net中调用
  11. Psping四大功能介绍:ICMP Ping/TCP Ping/延迟测试/带宽测试
  12. 视图:定义视图 (建立视图、删除视图格式、查询视图、更新视图、视图的作用)
  13. Android AdMob教程
  14. ffmpeg一些基本用法
  15. 九、JavaScript网页特效 - 章节课后练习题及答案
  16. 六祎-Mybatis高速下载通道
  17. 005. 关于海淘的那些窍门和段子
  18. 港科百创 | 决赛成功举办!2021香港科大商学院-国科京东方人工智能百万奖金国际创业大赛在北京圆满收官!...
  19. ViTAE论文阅读与官方代码讲解
  20. 斯坦福SCI写作公开课目录

热门文章

  1. python预测股票 keras_使用LSTM模型预测股价基于Keras
  2. 四羧基锌酞菁(ZnC4Pc),Zn-taPc 的荧光激发光谱介绍,齐岳生物供应酞菁材料
  3. 一台计算机怎么弄2个登录桌面,一台主机两个显示器,小编教你电脑两个显示器怎么设置...
  4. 图机器学习-图神经网络
  5. alpine是什么 ?
  6. 设计模式—清晰头脑写代码赚金币
  7. ExtCertPathValidatorException: Could not validate certificate
  8. 所谓的我对大学的目标与期望!!!
  9. 中国新冠疫苗首针将于1月15日接种,正确的运输和存储可保证其安全有效
  10. 计算机系统分盘作用,电脑分盘有什么好处,要不要重装系统