传送门

题意:

给出\(x,x\leq 12\),求最大的\(n\),满足\(n!\leq 2^{2^x}\)。

思路:

通过斯特林公式:

\[n!\approx \sqrt{2\pi n}\cdot (\frac{n}{e})^n
\]

我们一般可以认为这两个相等= =

将阶乘转化为一个比较好求的式子,然后二分判断一下即可。

/*
* Author: heyuhhh
* Created Time: 2019/12/10 21:14:22
*/
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <cmath>
#include <set>
#include <map>
#include <queue>
#include <iomanip>
#define MP make_pair
#define fi first
#define se second
#define sz(x) (int)(x).size()
#define all(x) (x).begin(), (x).end()
#define INF 0x3f3f3f3f
#define Local
#ifdef Local
#define dbg(args...) do { cout << #args << " -> "; err(args); } while (0)
void err() { std::cout << '\n'; }
template<typename T, typename...Args>
void err(T a, Args...args) { std::cout << a << ' '; err(args...); }
#else
#define dbg(...)
#endif
void pt() {std::cout << '\n'; }
template<typename T, typename...Args>
void pt(T a, Args...args) {std::cout << a << ' '; pt(args...); }
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
//head
const int N = 1e5 + 5; int n; bool chk(double x) {
return 0.5 * log(2 * 3.1415926 * x) + x * log(x) - x <= pow(2, n) * log(2);
} void run(){
if(n == 0) return;
n = (n - 1940) / 10 * 10 / 10;
double l = 1, r = 1000000000000000, mid;
for(int i = 0; i < 1000; i++) {
mid = (l + r) / 2;
if(chk(mid)) l = mid;
else r = mid;
}
cout << (ll)l << '\n';
} int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cout << fixed << setprecision(20);
while(cin >> n) run();
return 0;
}

最新文章

  1. Vuforia结合Skyshop: Image-Based Lighting Tools &amp; Shaders插件实现真实的光照效果
  2. Highchart.js
  3. JavaScript数组模拟栈和队列
  4. u3d单词学习plane
  5. ubuntu 安装zabbix_agent端
  6. 1.js基础
  7. 常见MFC UI界面库[转]
  8. 【制作镜像Win*】环境准备
  9. 树莓派(jessie)制作服务并开机启动
  10. dedecms由子目录访问修改为根目录访问
  11. Disassembly3:variable
  12. Android获取手机屏幕宽高
  13. ThinkPHP框架的增删改
  14. 用vlc搭建简单流媒体服务器(UDP和TCP方式)
  15. 00_Linux介绍_我的Linux之路
  16. 使用spring-session共享springmvc项目的session
  17. Python 反射机制之hasattr()、getattr()、setattr() 、delattr()函数
  18. CentOS7.4 ISCSI
  19. 对象及变量的并发访问(同步方法、同步代码块、对class进行加锁、线程死锁)&amp;内部类的基本用法
  20. 【easyui】关于easyui Datagrid一些样式记录

热门文章

  1. SAP-BP 创建客商(摘抄)
  2. 解决bcp导出CSV文件没有表头
  3. node、npm、chrome、v8、sandbox是什么?
  4. js-01-基础知识
  5. Solr实现全文搜索
  6. 基于Python和Xtrbackup的自动化备份与还原实现
  7. PWA 学习笔记(三)
  8. maven与gradle的阿里云仓库配置
  9. 六、接上一个博客-ITK例子运行结果
  10. form表单中的button自动刷新页面问题