CodeVs 3150 (大数 + 递推)

时间:2023-01-02 19:11:38
#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 (大数 + 递推)的更多相关文章

  1. HDU-1041-Computer Transformation&comma;大数递推,水过~~

                                                                                  Computer Transformatio ...

  2. POJ 1737 Connected Graph &lpar;大数&plus;递推&rpar;

    题目链接: http://poj.org/problem?id=1737 题意: 求 \(n\) 个点的无向简单(无重边无自环)连通图的个数.\((n<=50)\) 题解: 这题你甚至能OEIS ...

  3. UVa 10328 Coin Toss(Java大数&plus;递推)

    https://vjudge.net/problem/UVA-10328 题意: 有H和T两个字符,现在要排成n位的字符串,求至少有k个字符连续的方案数. 思路:这道题目和ZOJ3747是差不多的,具 ...

  4. 1sting 大数 递推

    You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ‘2’, or lea ...

  5. hdu 1133 Buy the Ticket &lpar;大数&plus;递推&rpar;

    Buy the Ticket Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  6. Tiling(递推&plus;大数)

    Description In how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles? Here is a sample tili ...

  7. Children’s Queue HDU 1297 递推&plus;大数

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1297 题目大意: 有n个同学, 站成一排, 要求 女生最少是两个站在一起, 问有多少种排列方式. 题 ...

  8. 递推,大数存储E - Order Count

    Description If we connect 3 numbers with "<" and "=", there are 13 cases: 1) ...

  9. HOJ 2148&POJ 2680(DP递推,加大数运算)

    Computer Transformation Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4561 Accepted: 17 ...

随机推荐

  1. 01&period;Bootstrap入门

    Bootstrap介绍: Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加 ...

  2. 一个按钮,如果5分钟内点击再次点击给予提示操作频繁,在JS里可以这样写

    很简单. 但是,如果你要离开这个页面再进来, 就没办法限制了. 除非用cookie 储存状态 给个示例 var isLock = flase; //定义全局变量 按钮点击事件: if(isLock){ ...

  3. document&period;documentElement 和document&period;body 以及其属性

    js中document.documentElement 和document.body 以及其属性 (原来HTML里是document.body  --XHTML里是document.documentE ...

  4. &lbrack;原创&rsqb;&period;NET 分布式架构开发实战五 Framework改进篇

    原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章 ...

  5. Linux下的tar压缩解压缩命令详解(转)

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...

  6. WIN7以上系统安装VB6的解决办法,附上个批处理。

    一.安装时显示oledb32r.dll不能在系统注册数据库中注册在C盘查找oledb32r.dll,改名为oledb32r-2.dll即可,dll冲突了. 二.WIN7安装VB6提示VB98ENT.S ...

  7. iOS----------关于UDID和UUID的一些理解

    一.UDID(Unique Device Identifier)  UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识. 在很多需要限制一台设备一个账号的应用中经 ...

  8. socketv 验证客户端链接的合法性

    一 .socketv 验证客户端链接的合法性 send()与sendall() 验证客户端 加密验证 如果你想在分布式系统中实现一个简单的客户端链接认证功能,又不像SSL那么复杂,那么利用hmac+加 ...

  9. &lbrack;日志&rsqb; spring boot &plus; logback 日志输出配置

    一.输出日志到控制台 springboot有很多starter(参考starter)方便快速构建项目依赖组件,logback是springboot默认的日志组件,启动即可看到打印在控制台输出的info ...

  10. Django笔记 —— 入门简介

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...