CodeVs 3150 (大数 + 递推)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<queue>
#include<stack>
//#include<bits/std c++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const LL MOD = 1e7 + 7;
const LL maxn = 1e6 + 131;
const LL Bits = 1e10;
const double Pi = acos(-1.0);
struct BigInt
{
vector<LL> val;
void Set(LL n) { val.clear(); val.push_back(n); }
void operator += (const BigInt a)
{
int i;
for(i = 0; i < val.size() && i < a.val.size() ; ++i)
val[i] = val[i] + a.val[i];
if(i < a.val.size()) for(; i < a.val.size(); ++i) val.push_back(a.val[i]);
int len = val.size();
for(i = 0; i < len; ++i)
{
if(val[i] >= Bits)
{
if(i == len-1) val.push_back(val[i]/Bits), val[i] %= Bits;
else {
val[i+1] += (val[i] / Bits);
val[i] %= Bits;
}
}
}
}
void operator *= (const LL k)
{
int i;
for(i = 0; i < val.size(); ++i) val[i] *= k;
i = 0;
while(i != val.size())
{
if(val[i] >= Bits)
{
if(i == val.size() -1)
{
val.push_back(val[i] / Bits);
val[i] %= Bits;
}
else
{
val[i+1] += (val[i] / Bits);
val[i] %= Bits;
}
}
++i;
}
}
void operator /= (const LL k)
{
for(int i = val.size() - 1; i >= 1; --i)
{
val[i-1] += (val[i] % k)*Bits;
val[i] /= k;
}
val[0] /= k;
int i = val.size() - 1;
while(val.size() > 1)
{
if(val[i] == 0) val.erase(--val.end());
else break;
i--;
}
}
void Show()
{
cout << val[val.size() - 1];
for(int i = val.size() - 2; i >= 0 ; --i)
{
LL k = Bits / 10;
while( k > 1 )
{
if(val[i] < k) cout << "0";
k /= 10;
}
cout << val[i];
}
cout << endl;
}
}; int main()
{
BigInt A, B;
LL n;
/*A.Set(1), B.Set(Bits - 1);
A += B;
A.Show();*/
//cout << Pi << endl;
while(cin >> n){
if(n < 4) cout << "1\n";
else {
n -= 4;
A.Set(1), B.Set(1);
LL i = 1, j = (n + Pi), Last;
while(i <= (LL)((n + Pi)/ Pi))
{
Last = j;
j = (n + Pi - i*Pi);
for(LL k = Last - 1; k >= j + 1; k--)
{
B *= (k+1);
B /= (i + k); }
B *= (j + 1);
B /= i;
i ++;
A += B;
}
A.Show();
}
}
return 0;
}
CodeVs 3150 (大数 + 递推)的更多相关文章
- HDU-1041-Computer Transformation,大数递推,水过~~
Computer Transformatio ...
- POJ 1737 Connected Graph (大数+递推)
题目链接: http://poj.org/problem?id=1737 题意: 求 \(n\) 个点的无向简单(无重边无自环)连通图的个数.\((n<=50)\) 题解: 这题你甚至能OEIS ...
- UVa 10328 Coin Toss(Java大数+递推)
https://vjudge.net/problem/UVA-10328 题意: 有H和T两个字符,现在要排成n位的字符串,求至少有k个字符连续的方案数. 思路:这道题目和ZOJ3747是差不多的,具 ...
- 1sting 大数 递推
You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ‘2’, or lea ...
- hdu 1133 Buy the Ticket (大数+递推)
Buy the Ticket Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- Tiling(递推+大数)
Description In how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles? Here is a sample tili ...
- Children’s Queue HDU 1297 递推+大数
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1297 题目大意: 有n个同学, 站成一排, 要求 女生最少是两个站在一起, 问有多少种排列方式. 题 ...
- 递推,大数存储E - Order Count
Description If we connect 3 numbers with "<" and "=", there are 13 cases: 1) ...
- HOJ 2148&POJ 2680(DP递推,加大数运算)
Computer Transformation Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4561 Accepted: 17 ...
随机推荐
- 从零开始搭建高性能高可用Tomcat服务器
目标: Tomcat+Nginx+Memcached Ubuntu 16.04 64位测试通过 动静分类.负载均衡.集群.Javolution序列化.高性能.高可用 配置环境(目前均为最新稳定版): ...
- Mac Office 2016 破解
官方最新版本office 是2016.15.38 此版本主要是修复了Excel内存损害漏洞. 官方下载的版本大小是1.67G,因为其他途径下载的版本,不确保是最新版本且为完整的版本.不知道我说的这个大 ...
- 数据建模工具系列 之 让SQL Power Architect支持Vertica
几款数据建模软件评估 下面是流行几款数据建模软件: 软件 特点 支持Vertica? 免费? ERWin 功能强大, 操作较繁琐 不支持Vertica 商业软件,价格高 Power Designer ...
- js中文编码到C#后台解码
escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编 ...
- 【python小练】0010
第 0010 题:使用 Python 生成类似于下图中的字母验证码图片 思路: 1. 随机生成字符串 2. 创建画布往上头写字符串 3. 干扰画面 code: # codeing: utf-8 fro ...
- 理解PHP中的会话控制
会话控制是一种跟踪用户的通信方式,使用会话控制主要基于以下几点:由于http协议的无状态性,使得不能通过协议来建立两次请求之间的关联:对于通常的页面之间的数据传递方式get和post而言,主要处理参数 ...
- js获取网页面的高度和宽度
网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth ...
- jira迁移数据
jira迁移数据有两种方式 方式一: jira系统自带的备份恢复操作 最简单的,但不一定能成功 从/export/atlassian/application-data/jira/export下载至 ...
- Python 爬虫五 进阶案例-web微信登陆与消息发送
首先回顾下网页微信登陆的一般流程 1.打开浏览器输入网址 2.使用手机微信扫码登陆 3.进入用户界面 1.打开浏览器输入网址 首先打开浏览器输入web微信网址,并进行监控: https://wx.qq ...
- CentOS7 设置主机名及IP映射
1.设置主机名 查看本机的主机名,使用如下三个命令中任意一个即可 # hostname # uname -n # cat /proc/sys/kernel/hostname 使用 vi 编辑器打开 / ...