`
文章列表
var str = "abc"; alert(str.substr(-1, 1));  这段代码在IE和Chrome下的结果是不同的,希望得到的是c,Chrome下表现正常;但跑到IE下,显示abc,不是期望的结果。看来IE在处理substr()第一个参数为负数的情况处理方式不一样。   改用substring()函数代替substr() var str = "abc"; var len = str.length; alert(str.substring(len - 1, len));   参考文章: Using Slice() ...
    分析: 主要看新加折线后 新加的折线被分成的线段多少,可以得出 F(N) = F(N-1) + 4(N-1) +1   代码如下:   #include <stdio.h> int main() { int n,i,c; double a[10001]; a[0]=1; a[1]=2; for (i=2; i<10001; i++) { a[i]=a[i-1]+4*i-3; } scanf("%d",&c); ...
    分析过程: 考虑第N格,如果N-1排好了,第N只有3个1X1一种排法,如果N-2排好了,有3种排法,有1种在N-1的情况包括了, 所以F(N) = F(N-1) + 2F(N-2)   代码如下:   #include <stdio.h> int main() { int n,i,c; double a[31]; a[0]=1; a[1]=1; a[2]=3; for (i=3; i<=30; i++) { a[i]=a[i-1]+2*a[i-2]; } ...

ACM 2501 Tiling_easy version

    博客分类:
  • ACM
 
    递推之后得出: F(N)=F(N-1)+2*F(N-2) 代码如下:   #include <stdio.h> int main() { int i,N,T; double a[31]; a[0]=1; a[1]=1; a[2]=3; for (i=3; i<=30; i++) { a[i]=a[i-1]+2*a[i-2]; } scanf("%d",&T); while (T--) { ...

ACM 2563 统计问题

    博客分类:
  • ACM
  分析: A(N)表示第N步向上走的,B(N)表示第N步向左右走的 F(N) = A(N)+B(N) A(N) = A(N-1)+B(N-1) B(N) = 2*A(N-1) + B(N-1) =>F(N) = 3*A(N-1) + 2*B(N-2) = 2*F(N-1) + A(N-1) = 2*F(N-1) + A(N-2) + B(N-2) = 2*F(N-1) + F(N-2)     #include <stdio.h> int main() { int i,N,T; double a[21]; a[0]=1; ...

ACM 2018 母牛的故事

    博客分类:
  • ACM
  分析: 年 母牛 1年大的牛 2年大的牛 3年大的牛 第一年        1 0 0 0 第二年    1 1 0 0 第三年  1 1 1 0 第四年        1 1 1 1 第五年之后是 有一头小牛变成母牛后就相当与第二年的情况了 所以可以推出F(N) = F(N-1) + F(N-3)   代码如下:   #include <stdio.h> int main() { int n,i; doubl ...

ACM 2046 骨牌铺方格

    博客分类:
  • ACM
http://acm.hdu.edu.cn/showproblem.php?pid=2046   分析第N位,有两种形式1.竖着(F(N-1)),2横着(F(N-2) 所以F(N) = F(N-1) + F(N-2)   N<=50 这里应该用double   代码如下: #include <stdio.h> int main() { int n,i; double a[60]; a[0]=1; a[1]=1; a[2]=2; for (i=3; i<54; i++) { ...
http://acm.hdu.edu.cn/showproblem.php?pid=2045   分析过程: 1)如果前F(N-1)是符合要求的涂发,即N-1和第一位是不同的,则N位只有一种颜色可以用 F(N-1) 2)如果前N-1是不符合要求的 即N-1和第一位相同,则除掉N-1后之前N-2个是符合要求的,这种情况下有N可以有两种涂发 所以 2*F(N-2)   发现 F(N) = F(N-1) + 2*F(N-2)   因为N<=50 用long类型不行,溢出了,应该用double   代码如下: #include <stdio.h> i ...

ACM 2044 一只小蜜蜂

    博客分类:
  • ACM
http://acm.hdu.edu.cn/showproblem.php?pid=2044   分析: 从a到b的可能路线等价于1到b-a的可能路线。   1到N蜂房的路径算法公式是: F(N) = F(N-1)+F(N-2) F(1)=1 F(2)=1 F(3)=2   注意:c中int long float double的表示范围   代码如下: #include <stdio.h> int main() { int n,A,B,i; double a[50]; a[0]=1; a[1]=1; ...

ACM 2041 超级楼梯

    博客分类:
  • ACM
http://acm.hdu.edu.cn/showproblem.php?pid=2041   分析: 在第N级阶梯,可能是N-1级一步跨到N级或者N-2级跨两布到N,所以 F(N) = F(N-1)+F(N-2);   注意1<=M<=40 所以超出了int的存储范围,可以用long int   用数组存储代替递归实现 代码如下: #include <stdio.h> int main() { int n,m,i; long int a[41]; a[0]=1; a[1]=1; a[ ...
http://acm.hdu.edu.cn/showproblem.php?pid=1297   分析过程:   设:F(n)表示n个人的合法队列,则: 按照最后一个人的性别分析,他要么是男,要么是女,所以可以分两大类讨论: 1、如果n个人的合法队列的最后一个人是男,则对前面n-1个人的队列没有任何限制,他只要站在最后即可,所以,这种情况一共有F(n-1); 2、如果n个人的合法队列的最后一个人是女,则要求队列的第n-1个人务必也是女生,这就是说,限定了最后两个人必须都是女生,这又可以分两种情况; 2.1、如果队列的前n-2个人是合法的队列,则显然后面再加两个女生,也一定是合法的 ...
最近发现很多好玩的学习网站,整理一下:   1.Linux学习网站 http://www.linuxcast.net/   2. JavaScript & Ruby & Python http://www.learnstreet.com/
整理下mac上的好软件,推荐下:   1.Alfred-Mac下最好的快速启动工具 Alfred, 可以快速的搜索本地程序、使用搜索引擎搜索,查询词典等功能,十分强大, 推荐★★★★☆   下面的链接有详细的介绍   http://www.cnbeta.com/articles/203640.htm   Alfred官网  
Ubuntu常见问题 1.设置Ubuntu下的分辨率。 本人电脑分辨率是1280x800的,但是在VBOX下安装的Ubuntu默认没有这个分辨率,添加方式如下: (参考http://askubuntu.com/questions/63863/unknown-monitor-intel-driver-want-to-set-vga-resolution-to-widescreen-tv) alvenwang@alvenwang-VirtualBox:~$xrandr -qScreen 0: minimum 64 x 64, current 1280 x 800, maximum 3 ...
Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number consisting exactly the numbers from 1 to 9, only in a different permutation. Check to see the result i ...
Global site tag (gtag.js) - Google Analytics