给N个升序的数字,要求找出一个子串,每相邻两个数字不互质,求最长串的长度
提示
1)dp[i]表示到第i个数字的最长串
2)dp[i]用前i-1项中与第i项不互质的最大项更新
3)寻找与第i项不互质,即找与第i项有公公因数,所以建立数组dig[i]表示该因数出现的次数
#include
#include
#define maxn 100005
int dp[maxn];
int di...
分类:
其他好文 时间:
2014-08-17 18:38:52
阅读次数:
197
题目描述:统计一个数字在排序数组中出现的次数。
输入:
每个测试案例包括两行:
第一行有1个整数n,表示数组的大小。1
第二行有n个整数,表示数组元素,每个元素均为int。
第三行有1个整数m,表示接下来有m次查询。1
下面有m行,每行有一个整数k,表示要查询的数。
输出:
对应每个测试案例,有m行输出,每行1整数,表示数组中该数字出现的次数。
样例输入:
...
分类:
其他好文 时间:
2014-08-17 18:36:12
阅读次数:
169
题目描述:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
输入:
输入可能包含多个测试样例。
对于每个测试案例,输入为两个整数m和n(1
输出:
对应每个测试案例,输出m+n的值。
样例输入:
3 4
7 9
样例输出:
7
16
代码:
思路:
1.先将两个数字异或得到...
分类:
其他好文 时间:
2014-08-17 14:22:22
阅读次数:
164
题目大意:
在一串数字中取出除了两端的两个数字,求出最小的代价,代价就是每取出一个数,都要加上它与它相邻的两个数的积。
思路分析:
状态方程 :dp [i] [j] 是区间 [i , j] 已经全部取完,只剩下 i j所剩的最小代价。
状态转移 :dp [i][j] = min (dp [i][j], dp[i][k] + dp[k] [j] + a[i]*a[k]*a[j]) ....
分类:
其他好文 时间:
2014-08-16 17:11:00
阅读次数:
230
Codeforces Round #261 (Div. 2)
题目链接
A:给定两点找正方形其他两点。
分在一条线和对角线的情况判断即可
B:一个序列选出最大和最小的数字,问差值很有几种选法。
有不同数字的情况就是两数个数相乘,只有一个数字就是C2n
C:n个学生,k辆车,d天,要求学生两两之间不能在同一辆车一起d天,问怎么一个安排的方案
对于每个学生而言,在d天的坐...
分类:
其他好文 时间:
2014-08-16 15:10:00
阅读次数:
268
HDU 4945 2048
题目链接
题意:给定一个序列,求有多少个子序列能合成2048
思路:把2,4,8..2048这些数字拿出来考虑就可以了,其他数字无论如何都不能参与组成,那么在这些数字基础上,dp[i][j]表示到第i个数字,和为j的情况数,然后对于每个数枚举取多少个,就可以利用组合数取进行状态转移,这里有一个剪枝,就是如果加超过2048了,那么后面数字的组合数的和全部...
分类:
其他好文 时间:
2014-08-15 12:53:08
阅读次数:
196
~~~~
题意:给出两行数字序列,求上下匹配的最多组数是多少.
匹配规则:
1.匹配对的数字必须相同。
2.每个匹配必须有且只能有一个匹配与之相交叉,且相交叉的两组匹配数字必须不同。
3.一个数最多只能匹配一次。
最长公共子序列的改编,令f[i][j]表示第一个序列的前i个数字和第二个序列的前j个数字的匹配的最优值。
状态转移:f[i][j]=max(f[p-1][q-1]+2,...
分类:
其他好文 时间:
2014-08-15 09:31:17
阅读次数:
205
在一些时候,需要用给一个数字找到适合的区间,Arrays.binarySearch可达到这个目的.staticintbinarySearch(int[]a, intkey)Searches the specified array of ints for the specified value usi...
分类:
编程语言 时间:
2014-08-14 23:40:46
阅读次数:
223
61.找出数组中两个只出现一次的数字(数组)题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是 O(n),空间复杂度是 O(1)。思路:瞄到了一眼提示,说是位运算。根据异或的运算性质:a ⊕ b ⊕ a = b把所有的数字都异或一遍得到...
分类:
其他好文 时间:
2014-08-14 19:23:49
阅读次数:
188
这题 题意别搞错就是了 它给你的数据 很容易让你种错觉 是求第N位素数 但其实不是这样的而是第一个数如果给了你一个2 那么后面的4 6 8 10 ......都应该被pass 然后接下去就是3了 再后面的 9 15 21..同样被pass就是说在一个 2~inf的数字串中距离选出的那个数字是 K*I...
分类:
其他好文 时间:
2014-08-14 16:00:38
阅读次数:
158