夏令营day9总结

来源:互联网 发布:伊朗 知乎 编辑:程序博客网 时间:2024/05/22 12:01

(day8没干什么,就是补充了下day7的总结,看书,敲模板,就不单独写出来了。(还不是因为懒)

今天主要是,早上过掉了最大流裸题,yjh给我们讲了强连通分量的Tarjan算法和提了一下拓扑排序(虽然拓扑排序早就会了),下午做了组合数学的几道题,自己写了ex_kmp的总结和打了下Tarjan模板(没打完),晚上主要是fc给我们讲组合数学。

嗯,首先是早上的Tarjan。yjh的讲课还是比较不错的,节奏也挺适当,好评。Tarjan感觉上是挺好理解的,不过写出来毕竟是100+行的东西,还是要多打才能熟练,然而lkb现在连模板都没打完,吃枣药丸。

然后是下午的数学题,有的题看上去是比较水的(实际上也很水),有的题却让lkb一脸懵逼,评讲完之后眼前一亮。下面就选几道题简单讲讲。

  • 求 3000 到 8000 之间的奇整数的数目,而且每一位上数字互不相同。
    • 分两类;
    • 一类是以3、5、7为首位的四位奇数,可分三步完成:先排首位有3种方法,再排个位有4种方法,最后排中间两个数位有8×7种方法,所以共有3×4×8×7=672个。
    • 另一类是首位是4或6的四位奇数,也可以3步完成,共有2×5×8×7=560个。
    • 由分类计数原理得共有672+560=1232个。
  • 求 1 至 1000000 中 0 出现的次数
    • [000000,999999]中,由于每个数字出现的几率相同,因此0的个数为1000000×6÷10=600000个。
    • 但是要排除非六位数头上的0,如005324的前两个。计有一位数9个,二位数90个,三位数900个,四位数9000个,五位数90000个。共派出了9×5+90×4+900×3+9000×2+90000×1=45+360+2700+18000+90000=111105个,剩下488895个。
    • (注:1000000当作000000来考虑,没有排除其0)
0 0
原创粉丝点击