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 ...
随机推荐
- 049、准备overlay网络实验环境(2019-03-14 周四)
参考https://www.cnblogs.com/CloudMan6/p/7270551.html 为了支持容器跨主机通信,Docker提供了overlay driver,使用户可以创建基于Vx ...
- MongoDB统计文档(Document)的数组(Array)中的各个元素出现的次数
一,问题描述 [使用 unwind 操作符 “解包” Document 里面的Array中的每个元素,然后使用 group 分组统计,最后使用 sort 对分组结果排序] 从 images.json ...
- 中间人攻击(MITM)之数据截获原理
中间人攻击(MITM)之数据截获原理 - The data interception principle of the man in the middle attack (MITM) 交换式局域网中截 ...
- Python之线程 3 - 信号量、事件、线程队列与concurrent.futures模块
一 信号量 二 事件 三 条件Condition 四 定时器(了解) 五 线程队列 六 标准模块-concurrent.futures 基本方法 ThreadPoolExecutor的简单使用 Pro ...
- struct详解
正常定义一个数据结构都是这样用 typedef struct{ int a; int b; }M; 在使用时 M a; 其实 struct是这样的 struct M{ int a; int b; }; ...
- linux时间戳和时间格式的转化
1.将时间戳转化为yyyy-MM-dd HH:mm:ss时间格式 date -d @时间戳(秒) 2.设置服务器时间---特别注意使用 date -s 时间
- linux 共享内存的理解
1. 共享内存是在shmget时创建出来的, 在 shmget(USER_SHARE_MEM_KEY, sizeof(ADDR_NODE) , IPC_CREAT|0666)) ==-1) 的 s ...
- 【Git】Git常用命令
git remote -v : 查看远程仓库地址
- 人人中的 shiro权限管理 简单说明
maven shiro包的引用路径 :C:\Users\yanfazhongxin\.m2\repository\org\apache\shiro\shiro-core\1.3.2\shiro-co ...
- linux 权限管理