标签:system data- 状态 copyright toc one bcd -- tool
输入为两行,第一行为序列长度n ( 1 ≤ n ≤ 50) 第二行为序列中的n个整数item[i] (1 ≤ iteam[i] ≤ 1000),以空格分隔。
输出一个数,表示最少需要的转换次数
4 1 1 1 3
2
解题思路:
将该序列左右两端同时开始向中间合并。无论怎么样最终会变成一个数字,也只是最坏的一种情况。
解题思路:
说白了就是求一个数能否写成另外两个数平方和? 一共有几组呢?
输入为一行,有两个整数N,M,以空格隔开。 (4 ≤ N ≤ 100000) (N ≤ M ≤ 100000)
输出小易最少需要跳跃的步数,如果不能到达输出-1
4 24
5
解题思路:
基础的动态规划问题
dp[i] 表示走到 i 位置需要的最短步数
在计算的时候,由于我们知道i位置的可以向前走的距离
当 i 位置可以走的时候,计算走到 i + x 位置时候的 最小步数
输入一个整数n,表示字符串长度(1 ≤ n ≤ 30)
输出一个整数表示有多少个暗黑字符串
2 3
9 21
解题思路:
我们只需要考虑当前字符串最后两个字母的两种状态: 相同,例如:AA等 不相同,例如:AB等
动态规划,dp[i][0] 第i个字母以两相同字母结尾的暗黑字符串,dp[i][1] 第i个字母以两个不同字母结尾的暗黑字符串
状态转移方程式: dp[i][0] = dp[i-1][0] + dp[i-1][1] dp[i][1] = 2 * dp[i-1][0] + dp[i-1][1];
解题思路:
5分钟调试完,没什么难度。
输入一个整数N (1 ≤ N ≤ 1000000000)
输出一个整数,即为f(1) + f(2) + f(3).......f(N)
7
21
解题思路:
很明显,f(n) 当n为奇数时,f(n) == n。
当n为偶数时,n不断除以2,直到n为奇数记作n‘,即 f(n) == n‘ 。
推导状态转移方程式:
f(n)为奇数时, f(n) = f(n-1) + n;
f(n)为偶数时, f(n) = f(n/2) + 1 + 3 + 5 + ... + (n-1) ——> f(n) = f(n/2) + n*n/4 (一张纸,一支笔很快就可以写出方程式。)
解题思路:
水题 ![1,100]的数据量暴力一下就好!
输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。 范围均在-30到30之间(闭区间)。
输出为一行,如果存在满足的整数A,B,C则按顺序输出A,B,C,用空格隔开,行末无空格。 如果不存在这样的整数A,B,C,则输出No
1 -2 3 4
2 1 3
解题思路:
3个未知数,仅需3个一元一次方程就可以解答。这里多了一个就是一个限制条件而已了。 注意A,B,C都是整数!
标签:system data- 状态 copyright toc one bcd -- tool
原文地址:http://www.cnblogs.com/D-DZDD/p/7350025.html