算法竞赛入门经典
文章平均质量分 64
pi408637535
这个作者很懒,什么都没留下…
展开
-
阶乘的精确值
/*题目要求:输入不超过1000的正整数n,输出n!=1*2*3*...*n的精确结果 样例输入:30 输出:265252859812191058636308480000000 */ #include#includeconst int maxn = 3000;int f[maxn];int main(){ int i, j, n; scanf("%d", &n); me转载 2014-03-02 17:57:46 · 599 阅读 · 0 评论 -
6174问题
6174问题时间限制:1000 ms | 内存限制:65535 KB难度:2描述假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回到了它自己!现在要你写一个程序来判断一个四原创 2014-03-02 18:59:58 · 638 阅读 · 0 评论 -
小球下落
题目:有一颗二叉树,最大深度为d,且所有叶子的深度都相同。所有节点从上到下从左到右编号为1,2,3,...,2^d-1。在节点1处放置一个小球,它会往下落。每个内节点上都有一个开关,初始全都关闭,当每次有小球落到一个开关上时,他的状态都会改变。当小球到达一个内节点时,如果该节点上的开关关闭,则往左走,否则往右走,直到走到叶子节点。如图:现在有一些小球从节点1处一次开原创 2014-03-03 19:44:40 · 1009 阅读 · 0 评论 -
字母重拍
输入一个字典(用*******结尾),然后再输入若干单词,每输入一个单词w,你都需要在字典中找出所有可以用w的字母重拍后得到的单词,并按照字典序从小到大的顺序在一行中输出(如果不存在,输出:(),输入单词之间用空格或空行隔开,且所有输入单词都由不超过6个小写字母组成。样例输入:trap given score refund only trap work earn course pepper p原创 2014-03-03 16:41:35 · 591 阅读 · 0 评论 -
纸牌游戏
桌上有一叠牌,从第一张开始(即位于顶面的牌)开始从上往下依次编号1~n。当至少还剩量占全国牌时进行一下操作:把第一张牌扔掉,然后把新的第一张牌放到整牌的最后。输入n,输出每次扔掉的牌,以及最后剩下的牌。样例输入:7样例输出:1 3 5 7 4 2 6//分析,队列#include //int MAXN = 50;int queue[50];int main(){ int原创 2014-03-03 18:23:24 · 1489 阅读 · 0 评论 -
基础练习 数列排序
import java.util.Arrays;import java.util.Scanner;public class Main { public static long a[] = new long[1000000]; public static void main(String[] args) { int a[] = new int[200]; Scanner原创 2014-03-10 20:06:52 · 572 阅读 · 0 评论 -
二叉树 重构
//这个递归算法我也不是很明白,希望高人能够指点下#include #include char ans[20];void build(int n,char *s1,char *s2,char *s){ int p; if(n <= 0) return ; p = strchr(s2,s1[0]) - s2; // 根节点在中序遍历的位置 build(p,s1+1,s2原创 2014-03-06 19:00:43 · 550 阅读 · 0 评论