高精度
文章平均质量分 77
acmdream
我是福建某高校2013级在校生,学业之余喜欢研究算法。
展开
-
HDU 1002(大数相加)
题意:输入两个数,求两个数的和。#include #include #include #include #include #include #include #include #include using namespace std;#define MAXN 300 // 可以表示4*MAXN长的十进制数字class Number{p原创 2014-01-11 12:56:10 · 543 阅读 · 0 评论 -
HDU 1316(大数比较+二分)
大数比较+二分:#include#include#include#include#include#include#includeusing namespace std;#define M 105 char a[M+2],b[M+2]; char book[1000][M+2]; int cmp(char *s1,char *s2){原创 2014-01-16 22:11:19 · 627 阅读 · 0 评论 -
HDU 1250(大数相加)
题意:如题。 #include #include #include char* plus(char a[], char b[], char c[]);const int F = 4;const int N = 7037; // 7037 刚好, 7038 超过const int digits = 2005;char Fibonacci[N][digit原创 2014-01-16 11:07:44 · 657 阅读 · 0 评论 -
HDU 1261(全排列,大数乘除)
全排列知识:考虑n个元素组成的多重集,其中a1重复了n1次,a2 重复了n2次,…,ak重复了nk次,n=n1+n2+…+nk。 考虑n个元素的全排列,则不同的排列数为:n!/(n1!*n2!*n3!……nk!);题意:一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA".给定若干字母和它们相应的个数,计算一共可以原创 2014-01-16 18:58:22 · 761 阅读 · 0 评论 -
HDU 1226(bfs,大数求余)
题意:如题。。这道题注意如何求余,如何剪枝。 #include #include #include #include using namespace std;int num[20],vis[5005];int n,c,m;struct node{ int s[505];//将每一位的字符压入此数组 int len;};原创 2014-01-15 20:42:32 · 564 阅读 · 0 评论 -
HDU 1212(大数求余)
题意:给大数a和b,求a%b #include #include #include #include #include #include #include #include #include using namespace std;#define MAXN 300 // 可以表示4*MAXN长的十进制数字class Number{原创 2014-01-15 20:25:26 · 649 阅读 · 0 评论 -
HDU 1133(卡特兰数;动态规划)
题意:M+N个人排队买票,票的单价是50¥,每个人只能买一张。 M个人拿50的去买,N个人拿100的去买,然后悲剧的是售票处开始的时候没有钱,所以如果拿100块买票人前面的拿50块买票的人小于或者等于用100块买票的人,这种排队方式就不合法,也就是不能顺利全部都买到票(因为没零钱找了)!题目分析:这是一个Catalan数的非常经典的应用,买票问题,首先我们用"0"表示用50块买票的人,用“原创 2014-01-14 16:59:15 · 953 阅读 · 0 评论 -
HDU1023(卡特兰数)
题意:给你一个数n,表示有n辆火车,编号从1到n,从远方驶过来,问你有多少种出站的可能。解题思路:模拟栈的问题而已。这道题其实也是组合数学卡特兰数的一个典型应用而已。下面就介绍一下卡特兰数。=======================================================================卡特兰数卡特兰数又称卡塔兰数,是组合数学原创 2014-01-11 16:19:53 · 1089 阅读 · 0 评论 -
HDU 1130(卡特兰数,大数)
题意:如题。 import java.util.*;import java.math.*;public class Main{ public static void main(String[] args) { int n; Scanner in=new Scanner(System.in); BigInte原创 2014-01-14 14:40:19 · 744 阅读 · 0 评论 -
HDU 1042(大数)
题意:如题。 #include#includeusing namespace std;int main(){ int factorial(int n); int n,w; while(cin>>n) { factorial(n); printf("\n"); } return 0原创 2014-01-12 11:27:41 · 455 阅读 · 0 评论 -
HDU 1041(递推+大数)
题意:如题。 import java.util.Scanner;import java.math.BigInteger;public class Main{ public static void main(String args[]) { Scanner cin = new Scanner(System.in);原创 2014-01-12 11:18:18 · 573 阅读 · 2 评论 -
HDU 1297(大数+规律)
思路如下:一个长度n的队列可以看成一个n - 1的队列再追加的1个小孩,这个小孩只可能是:a.男孩,任何n - 1的合法队列追加1个男孩必然是合法的,情况数为f[n - 1];b.女孩,在前n - 1的以女孩为末尾的队列后追加1位女孩也是合法的,我们可以转化为n - 2的队列中追加2位女孩;一种情况是在n - 2的合法队列中追加2位女孩,情况数为f[n - 2];但我们注意原创 2014-01-16 20:34:20 · 676 阅读 · 0 评论