UVA10519 - !! Really Strange !!(数论+高精度)

10519 - !! Really Strange !!(数论+高精度)

题目链接

题目大意:给你n个圆,每两个圆都有相交的部分,并且相交的两个点都唯一的,不能再和别的圆交于这点。问这样在一个矩形里的相交的n个圆可以产生多少个新的封闭图形。看图会明白的。

解题思路:规律:f(n) = f(n - 1) + 2
?(n
- 1) 最后推的 f(n) = n
?
(n - 1) + 2; (n >= 1), 0的时候要特判。n本身就是个大数,结果也是个大数。

代码:

import java.util.*;
import java.math.*;
import java.io.*;

public class Main {

    public static void main(String args[]) {

        Scanner cin = new Scanner(System.in);
        BigInteger n;
        while (cin.hasNext()) {

            n = cin.nextBigInteger();
            if (n.equals(BigInteger.ZERO))
                System.out.println(1);
            else
                System.out.println(BigInteger.valueOf(2).add(n.multiply(n.subtract(BigInteger.valueOf(1)))));
        }
    }
}
时间: 2024-10-09 07:49:27

UVA10519 - !! Really Strange !!(数论+高精度)的相关文章

uva 10844 - Bloques(数论+高精度)

题目链接:uva 10844 - Bloques 题目大意:给出一个n,表示有1~n这n个数,问有多少种划分子集的方法. 解题思路:递推+高精度. 1 1 2 2 3 5 5 7 10 15 15 20 27 37 52 dp[i][j]=dp[i?1][j?1]+dp[i][j?1] dp[i][0]=dp[i?1][i?1] ans[i]=dp[i][i] 需要用到高精度,并且缩进. #include <cstdio> #include <cstring> #include &

2007Hanoi双塔问题

题目描述 Description 给定A.B.C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形).现要将这些圆盘移到C柱上,在移动过程中可放在B柱上暂存.要求: (1)每次只能移动一个圆盘: (2)A.B.C三根细柱上的圆盘都要保持上小下大的顺序: 任务:设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An. 输入描述 Input Description 为一个正整数n,表示在

2505 上学路线

2505 上学路线 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 因为是学生,所以显然小A每天都要上学.小A所在的城市的道路构成了一个n*m的网格,每条道路都是可以单向通行的.小A家在点(1,1),学校在点(n,m).在不移出边界的情况下,小A可以从点(x,y)移动到点(x+1,y)或(x,y+1).为了追求新鲜感,小A经常走不同的道路去上学.有一天,小A突发奇想:到底他可以有多少种不同的上学路线呢?

2005循环

题目描述 Description 乐乐是一个聪明而又勤奋好学的孩子.他总喜欢探求事物的规律.一天,他突然对数的正整数次幂产生了兴趣. 众所周知,2的正整数次幂最后一位数总是不断的在重复2,4,8,6,2,4,8,6……我们说2的正整数次幂最后一位的循环长度是4(实际上4的倍数都可以说是循环长度,但我们只考虑最小的循环长度).类似的,其余的数字的正整数次幂最后一位数也有类似的循环现象: 循环循环长度 22.4.8.64 33.9.7.14 44.62 551 661 77.9.3.14 88.4.

数论F - Strange Way to Express Integers(不互素的的中国剩余定理)

F - Strange Way to Express Integers Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I64u Submit Status Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative integers.

Codeforces Round #425 (Div. 2) Problem C (Codeforces 832C) Strange Radiation - 二分答案 - 数论

n people are standing on a coordinate axis in points with positive integer coordinates strictly less than 106. For each person we know in which direction (left or right) he is facing, and his maximum speed. You can put a bomb in some point with non-n

数论 : 高精度 --- UVa 10183 : How Many Fibs ?

How many Fibs? Description Recall the definition of the Fibonacci numbers: f1 := 1 f2 := 2 fn := f n-1 + f n-2 (n>=3) Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a,b]. Input The input contains several test cases.

数论-FFT高精度乘法

NKOJ3071 模板题:求两个整数之积. FFT 函数里 ty = 1 表示 DFT 运算,ty = -1 表示 IDFT 运算. 1 #include <stdio.h> 2 #include <complex> 3 4 using namespace std; 5 6 typedef complex<double> CP; 7 typedef long long LL; 8 9 const int _N = 300005; 10 const double PI =

数论专题---除法表达式之高精度运算,扩展欧几里得算法

[题意描述] 给定这样一个表达式:X1/X2/X3/·····/Xk,其中Xi是正整数.除法表达式应到按照从左到右的顺序求和.但在表达式中嵌入括号可以改变计算顺序.输入表达式,判断是否可以通过加括号使得表达式最后的值为整数. [分析] 表达式可以写成E=(X1·X3·····Xk)/X2:(X1一定在分子位置,X2一定在分母位置,其它任意) 问题变为E是否为整数. 对于大数相乘,我们可以采用两种方法避免数据溢出: 1.采用素数的唯一分解定理:存储可能存在素数的个数(如何存储,用一个数组就行) 2