摘要:
(转)一次、二次、三次指数平滑计算思想及代码 一般常用到的指数平滑法为一次指数平滑、二次指数平滑和三次指数平滑,高次指数平滑一般比较难见到,因此本文着重介绍了一次、二次和三次指数平滑的特点与不同。 一次指数平滑一般应用于直线型数据,且一次指数平滑具有滞后性,可以说明有明显的时间性、季节性。 二次指数 阅读全文
摘要:
连连看要求:如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。注意:连线不能从外围绕过。0表示没有棋子还是老毛病,没看清题就开始做了,一直WA,上网看了别人的代码,发现有条件f[x][y]==0才注意到,0表示没有棋子,连线只能通过没有棋子的地方连线。其他思路跟hdu1728 逃离迷宫思路差不多,都是要考虑转弯数,不能对点进行标记,并且从起点到终点要找最小的转弯数存入a[x][y],这样对于每个进队出队的点的转弯数都小于题目要求的最大转弯数,提高了效率,这题与逃离迷宫不同点在于判定条件都是在f[x][y]==0下 阅读全文
摘要:
初学搜索,刚开始没看清题,题上要求输入的两个坐标是先输入列后输入行,习惯性按行列输入,结果怎么都不对。这道题少考虑的好多,一直WA,改了两个多小时,唉,头脑太简单了……首先,这个题从起点可能有多条路能到达这个终点,所以要确定的是到这个终点的最小拐弯数,这是第一点要注意的其次,这道题中不能对已走的点进行标记,因为可能有多条路径走这个点,如果标记了已走的点,就可能影响另外通向终点并且拐弯最小的路径不能到达终点这里,我采用的方法是对方向flag进行标记,count表示到当前节点所转过的弯数,同向的即没有拐弯:count保持不变 否则count+1;菜鸟在努力…… 1 #include 2 #incl 阅读全文
摘要:
1 #include 2 #include 3 #define N 200105 4 int f[N+10]; 5 int Max(int x,int y) 6 { 7 if(x>y) 8 return x; 9 return y;10 }11 int main()12 {13 int n,i,j,x,y;14 scanf("%d",&n);15 for(i=0;i0)24 {25 for(i=200000;i>=x;i--)26 {27 f... 阅读全文
摘要:
推荐链接http://blog.csdn.net/zizaimengzhongyue/article/details/9332121把排序的位置放错了,一直WA,不太细心f[i][j]含义: i 元可以买 j 种物品的方案数,方案数f[i]=f[i]+f[i-a[i]],很容易得到 f[i][j]=f[i][j]+f[i-a[i][j]; 1 #include 2 #include 3 #include 4 int cmp(const void *a,const void *b) 5 { 6 return *(int *)a-*(int *)b; 7 } 8 int main() 9 ... 阅读全文
摘要:
在求dp[i][j]的最优值的时候,我们比较了两个值的大小,一个是dp[i][j],一个是dp[i][j-b[i]]+a[i],之前我们直接抛弃掉其中一个,留下另一个就是dp[i][j],现在我们不将其抛弃,而是将其记录。准确的说我们以前比较dp[i][j]和dp[i][j-b[i]]+a[i],从中求出第一名,现在我们比较的是dp[i][j][1...K]和dp[i][j-b[i]][1...k]+a[i],从中求出前K名。思路:分别记录 dp[i][j] 中前K个解,和 dp[i][j-b[i]]+a[i] 中前K个解,那么从两个最有K个解中找出前K个解,这样就得到要求的第K个最优解。注意 阅读全文
摘要:
这个题容易WA,一般不会注意高精度问题,但对于高精度的处理很有技巧。推荐http://www.cnblogs.com/kuangbin/archive/2012/09/20/2695165.html里面给了五种方法,很不错在这里附上大神的代码 1 #include 2 #include 3 #include 4 using namespace std; 5 6 long long a[1100],b[1100],inf; 7 8 int main(){ 9 int n,k,i,j;10 for(inf=1,i=0;i<18;i++) inf*=10;11 sc... 阅读全文
摘要:
没想到排序,这点很重要,网上找的才知道排序后会避免在最后的范围内更新的值少计算。这个问题要求剩余的钱在大于这种物品某个值时才能购买这种物品,直接用01背包,不太实际。这里必须要求先处理较小价钱的物品,再处理大价钱物品,所以就要对Qi-Pi进行从小到大排序。这样在计算时不会影响后面范围的DP更新。 1 #include 2 #include 3 #include 4 using namespace std; 5 int b[505],f[5005]; 6 int max(int x,int y) 7 { 8 if(x>y) 9 return x;10 return... 阅读全文
摘要:
这个题的意思就是求 N! 2 #include 3 int main() 4 { 5 int n,i; 6 __int64 t; 7 double ans; 8 while(scanf("%d",&n),n!=0) 9 {10 t=(n-1960)/10+2;11 t=1<<t;12 i=0;13 ans=0;14 while(ans<t)15 {16 ans+=log((double)(++i))/log(2.0);17 ... 阅读全文
摘要:
解决该题要注意一下几个方面:1、任何一个自然数都可分解质因数。N!=1*2*3*4*5*6*...*N=2^a*3^b*5^c*7^d......=(2*5)^c*2^(a-c)*3^b*7^d......=10^c*2^(a-c)*3^b*7^d......2、两数相乘产生0,只会是2和5相乘。又由于在分解质因数时小的质数的幂次一定不小于大的质数的幂次大,所以a>=c。故解决该题转化成找出N!中5的幂次。3、如何找出5的幂次呢?举例说明:N=26,阶乘中包含因数5、10、15、20、25,可知5的幂次为6。5=5*1,10=5*2,15=5*5,20=5*4,25=5*5,求解时用26 阅读全文