
ACM
up_XCY
越努力,越幸运。
展开
-
阶乘之和
阶乘之和时间限制:3000 ms | 内存限制:65535 KB难度:3描述给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No;输入第一行有一个整数0每组测试数据有一个正整数n输出如果符合条件,输出Yes,否则输出No;样例输入2910样例输出YesNo原创 2016-04-12 19:47:12 · 327 阅读 · 0 评论 -
水池问题
//水池问题:// 有一个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连在一起的,求园子里总共有多少水洼?//输入N,M。int n,m;char field[maxn][maxm+1];//园子//现在的位子为x,y。void dfs(int x,int y){ field[x][y]='.';for(int原创 2016-09-25 16:45:39 · 815 阅读 · 0 评论 -
硬币问题
硬币问题:有n中硬币,面值分辨为 v1,v2,v3...vn.每种都有无限多个。给定非负整数S,可以选用多少个硬币使得面值之和为S?输出硬币数目的最大值和最小值。问题分析:固定终点的最长路问题。用图来建模,如果s大于vi,则s到vi有一条边。 初步代码: d(i)表示从结点i到0的最长路int dp(int s){int & ans=d[s];if(ans>=0)原创 2016-08-30 16:03:28 · 615 阅读 · 0 评论 -
DAG模型—嵌套矩形问题
嵌套矩形问题:有n个矩形,每个矩形可以用两个整数a,b描述,表示它的长和宽。嵌套矩形X(a,b)可以嵌套在矩形Y(c,d)中,当且仅当a 你的任务是选择尽量多的矩形排成一排,使得除了最后一个矩形外,每个矩形都嵌套在下一个矩形中。如果有多解,矩形标号的字典序应尽量小。分析:矩形之间可嵌套关系可以用图来建模。如果x可以嵌套在y中,这x到y有一原创 2016-08-30 15:35:48 · 908 阅读 · 0 评论 -
数字三角形问题
数字三角形问题原创 2016-08-30 15:32:17 · 389 阅读 · 0 评论 -
数的长度
数的长度时间限制:3000 ms | 内存限制:65535 KB难度:1描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)?输入首行输入n,表示有多少组测试数据(n随后n行每行输入一组测试数据 N( 0 输出对于每个数N,输出N!的(十进制转载 2016-04-19 23:14:41 · 297 阅读 · 0 评论 -
阶乘因式分解(—)
阶乘因式分解(一)时间限制:3000 ms | 内存限制:65535 KB难度:2描述给定两个数m,n,其中m是一个素数。将n(0输入第一行是一个整数s(0随后的s行, 每行有两个整数n,m。输出输出m的个数。样例输入2100 516 2样例输出2415/*给定两原创 2016-04-19 21:32:49 · 401 阅读 · 0 评论 -
最少乘法次数
题目描述:给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次。 211:2*2=22(第一次乘),22*22=24(第二次乘)24*24=28(第三次乘)28*22=210(第四次乘)210*21=211(第五次乘)所以最少共5次。 输入原创 2016-04-19 20:09:06 · 1540 阅读 · 0 评论 -
次方求模
//a^b mod c=(a mod c)^b mod c很容易设计出一个基于二分的递归算法。 2 #include 3 #include 4 //快速幂算法,数论二分 5 long long powermod(int a,int b, int c) //不用longlong就报错,题目中那个取值范围不就在2的31次方内 6 { 7 long long t; 8 i转载 2016-04-19 19:21:11 · 643 阅读 · 0 评论 -
康托展开
X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0!。这就是康托展开。康托展开可用代码实现。把一个整数X展开成如下形式:X=a[n]*(n-1)!+a[n-1]*(n-2)!+原创 2016-04-18 21:35:38 · 439 阅读 · 0 评论 -
筛法求素数
基本思想用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有:1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 30原创 2016-04-18 20:49:38 · 580 阅读 · 0 评论 -
欧几里德算法--最大公约数(最小公倍数)
欧几里德算法也就是辗转相除法,有着2000年的历史了。欧几里德算法依据的算法理论是一个定理:gcd(a,b) = gcd(b,a mod b)。实现源码为://递归实现int gcd(int m,int n){ if (m { int tmp = m; m = n;转载 2016-04-18 20:22:57 · 818 阅读 · 0 评论 -
寻找最大数
寻找最大数时间限制:1000 ms | 内存限制:65535 KB难度:2描述请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,比如当n=92081346718538,m=10时,则新的最大数是9888 输入第一行输入一个正整数T,表示有T组测试数据每组测试数据占一行,每行有两个数n,m(n可能是一个很原创 2016-04-13 22:20:38 · 445 阅读 · 0 评论 -
心急的C小加
心急的C小加时间限制:1000 ms | 内存限制:65535 KB难度:4描述C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。因为急着去约会,C小加想在最短的时间内把木棒处理完,你能告诉原创 2016-04-12 22:33:49 · 326 阅读 · 0 评论 -
独木舟上的旅行
独木舟上的旅行时间限制:3000 ms | 内存限制:65535 KB难度:2描述进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别。一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量。我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数。现在请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。根据给出的原创 2016-04-12 19:51:28 · 628 阅读 · 0 评论 -
过河问题
过河问题递归与非递归实现思路与代码详情转载 2016-04-12 19:35:53 · 333 阅读 · 0 评论 -
迷宫的最短路径
// 迷宫的最短路径:// 给定一个大小为N*M的迷宫。迷宫由通道和墙壁组成,每一步可以向邻接的上下左右的通道移动。//请求出从起点到终点所需的最小步数。注意,本题假设从起点一定可以到达终点。 const INF=10000000;typedef pair P; //状态 //输入cahr maze[maxn][maxm+1];int N,M原创 2016-09-25 16:46:29 · 327 阅读 · 0 评论