题目连接:uva 766 - Sum of powers
题目大意:将Sk(n)=∑i=1nik化简成Sk(n)=ak+1nk+1+aknk+?+a0M
解题思路:
已知幂k,并且有(n+1)k=C(kk)nk+C(k?1k)nk?1+?+C(0k)n0结论。
所以令 (n+1)k+1?nk+1=C(kk+1)nk+C(k?1k+1)nk?1+?+C(0k+1)n0
nk...
分类:
其他好文 时间:
2014-07-01 09:05:15
阅读次数:
261
题目链接:uva 1425 - Metal
题目大意:现在要用如图机器对一块钢板进行切割,给出切割路线经过的若干个点,问可以切割成多少种不同的形状,注意切割下的为一整块。
解题思路:
由图可以得知,两条切割线是不可以相交的由题目描述可知,所有点的x坐标是不会重复的机器不会回退,也就是说钢板是朝一个方向移动的,这样的切割路线是不会产生的
所以我们定义两条切割线分别为上...
分类:
其他好文 时间:
2014-07-01 08:23:17
阅读次数:
274
题目链接:uva 1425 - Metal
题目大意:现在要用如图机器对一块钢板进行切割,给出切割路线经过的若干个点,问可以切割成多少种不同的形状,注意切割下的为一整块。
解题思路:
由图可以得知,两条切割线是不可以相交的由题目描述可知,所有点的x坐标是不会重复的机器不会回退,也就是说钢板是朝一个方向移动的,这样的切割路线是不会产生的
所以我们定义两条切割线分别为上...
分类:
其他好文 时间:
2014-06-30 17:43:43
阅读次数:
185
题目链接:uva 10844 - Bloques
题目大意:给出一个n,表示有1~n这n个数,问有多少种划分子集的方法。
解题思路:递推+高精度。
1
1 2
2 3 5
5 7 10 15
15 20 27 37 52
dp[i][j]=dp[i?1][j?1]+dp[i][j?1]dp[i][0]=dp[i?1][i?1]ans[i]=dp[i][i]
...
分类:
其他好文 时间:
2014-06-28 08:24:45
阅读次数:
235
感觉用背包去想反而麻烦。。就是一个递推
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define ll __int64
using namespace std;
int n,v,k,s,dp[110][110],w[110]...
分类:
其他好文 时间:
2014-06-28 07:30:04
阅读次数:
208
UVA 11426 - GCD - Extreme (II)
题目链接
题意:给定N,求∑i=ni=1∑jnj=1gcd(i,j)的值。
思路:lrj白书上的例题,设f(n) = gcd(1, n) + gcd(2, n) + ... + gcd(n - 1, n).这样的话,就可以得到递推式S(n) = f(2) + f(3) + ... + f(n) ==> S(n) = S...
分类:
其他好文 时间:
2014-06-28 00:01:04
阅读次数:
246
题目 //不能广搜,会超内存//可以用dp思想模拟//map 后来保存的是 保存由前面推来的最大的幸运总值的点//下标从1开始,不然倍数会有问题//AC 代码:AC代码//不能广搜,会超内存//可以用dp思想模拟//map 后来保存的是 保存由前面推来的最大的幸运总值的点//下标从1开始,不然...
分类:
其他好文 时间:
2014-06-26 16:20:49
阅读次数:
234
题目链接:hdu 4828 Grids
题目大意:略。
解题思路:将上一行看成是入栈,下一行看成是出栈,那么执着的方案就是卡特兰数,用递推的方式求解。
#include
#include
typedef long long ll;
const int N = 1000005;
const ll MOD = 1e9+7;
ll dp[N];
ll extendGcd(ll a...
分类:
其他好文 时间:
2014-06-26 06:58:03
阅读次数:
197
题目链接:bnu 34895 Elegant String
题目大意:给定n和k,表示有一个长度为n的序列,序列中的元素由0~k组成,问说有多少个串满足不包含0~k的全排列。
解题思路:矩阵快速幂,根据dp[i][j]表示说第i为有j个相同,写出递推式,根据递推式求出矩阵。
#include
#include
typedef long long ll;
const ll MOD...
分类:
其他好文 时间:
2014-06-26 06:54:09
阅读次数:
205
以后还是使用递推把,不能用记忆化了,记忆化太耗时间了。。。
因为N很小,所以我们可以用状态压缩。用压缩起来的状态表示已经拥有的卡片。
然后根据状态之间的关系进行求解。
#include
#include
#include
#include
using namespace std;
#define maxn 110000
#define eps 1e-6
#define zero(x) (f...
分类:
其他好文 时间:
2014-06-24 18:29:40
阅读次数:
184