uva 10479(找规律+递归)】的更多相关文章

题意:有一个初始序列第一个数字是0. 规律是把前一次推出来的每个数字x.先接x个0,然后接x+1. 0 –> 1 –> 02 –> 1003 –> 02110004 那么这个序列就变成0,1,0,2,1,0,0,3,0,2,1,1,0,0,0,4- 问序列里第n个数字是多少,0 < n < 2^63. 题解:首先能够看出这个序列的第2^k个数字一定是k,然后从第2^k个数字往前看一定是紧接着k-1个0,k-2个1 ,k-3个02.k-4个1003-.一直到k-i为1,把…
自己一直在纠结这个串的构造方法 而没有观察串本身的规律-- 2的63次方用 unsigned long long 然后可以发现串是递归构造的. 将串分成1,1,2,4,8,16, 然后会发现s串里面1个s-2串,2个s-3串,3个s-4串最后加上s 如第三个串1003 是由1个1串(1), 2个0串(0)最后加上自己3构成的 因此根据这个性质递归求就好了 #include<cstdio> #include<vector> #include<algorithm> #def…
/** 题目:GCD XOR UVA 12716 链接:https://vjudge.net/problem/UVA-12716 题意:给定一个n,找多少对(a,b)满足1<=b<=a<=n,gcd(a,b)=a^b: 思路: 打表找规律发现:满足条件的结果一定满足,gcd(a,b) = a-b; 即:先确定每一个a以及它的约数c可以获得,b = a-c; 如果a^b=c 那么满足. 时间复杂度nlg(n) */ #include <iostream> #include &l…
紫书上有很明显的笔误, 公式写错了.g(k, i)的那个公式应该加上c(k-1)而不是c(k).如果加上c(k-1)那就是这一次 所有的红气球的数目, 肯定大于最下面i行的红气球数 我用的是f的公式, 我觉得这个稍微比f好理解一点.f(k, i) 表示k小时之后最上面i行红气球的个数. 分两种情况 如图所示 左上角的正方形的上面i行的红气球个数和前一个小时(也就是k-1)的整个正方形的上面i行的红气球个数是一样的, 因为右上角还有一个, 所以要乘2, 也就是f(k - 1, i) = 2 * f…
0\'s Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 计算整数n!(n的阶乘)末尾有多少个0. 输入 第一行输入一个数T代表測试数据个数(T<=20).接下来T行每行1个数代表n(0<=n< 2^31). 输出 对于每一个測试数据输n!末尾有多少个0,每行输出一个结果. 演示样例输入 3 1 5 10 演示样例输出 0 1 2 提示   中国海洋大学第三届"朗讯杯"编程比赛高级组试题  声明…
递归思想的条件:1.函数自己调用自己 2.函数必须有一个固定的返回值(如果没有这个条件会发生死循环) ----规律很重要 简单递归题目一: 设计一个函数计算一个整数的n次方,比如2的3次方,就是8 步骤: 1.定义方法,以及方法中的参数--power( int base ,int n ) 2.根据定义的方法来找规律: 函数终止条件:n==0时,返回1:n<0时,返回-1:红色箭头表示函数的执行过程,蓝色箭头表示函数达到条件后开始一层一层的返回值,具体代码如下: long power(int ba…
原来做过的题再看还是没想出来,看来当时必然没有真正理解.这次回顾感觉理解更透彻了. 网上的题解差不多都是一个版本,而且感觉有点扯.根据n=20猜出来的? 好吧哪能根据一个就猜到那么变态的公式.其实这题稍微找下规律就好.当然可能没有公式法效率高,但理解起来更容易吧. 你用n=20的例子,那么我也用.但我的想法是这样的. sum = 0; 我们考虑 i 是多少时 n/i = 1: 20/1 = 20, 故i <= 20, 又20/2 = 10,  故i > 10, 即 10 < i <…
题目链接:http://acm.swust.edu.cn/problem/0666/ Time limit(ms): 1000 Memory limit(kb): 65535   Description 小李去埃及旅游,但是初来乍到的他不认识罗马数,所以请你将阿拉伯数n ( 0 < n <= 1000)改写为罗马数.   Input N行数据,每行一个满足0 < n <= 1000的数: 结束以EOF判断   Output 每行一个,见输出示例   Sample Input 1 1…
题目传送门 /* 题意:汉诺塔问题变形,多了第四个盘子可以放前k个塔,然后n-k个是经典的汉诺塔问题,问最少操作次数 递推+高精度+找规律:f[k]表示前k放在第四个盘子,g[n-k]表示经典三个盘子,2 ^ (n - k) - 1 所以f[n] = min (f[k] * 2 + g[n-k]),n<=10000,所要要用高精度,另外打表能看出规律 */ /************************************************ * Author :Running_Ti…
我看大多数人的博客只说了一句:找规律得答案为(n + m) / gcd(n, m) 不过神题的题解还须神人写.. We can associate at each cell a base 3-number, the log3(R) most significant digits is the index of the row of the cell and the log3(C) least significant digits is the index of his column. What…