发现这个题库,很有意思,趁着还没有学习微积分,看不了书,赶快从头开始刷,所以都是一些简单的题目,即时简单,有一些结论还是很有意思的。
网上资料很少,有的找不到答案,所以只有硬着头皮做了。

PE 15

一个网格图,只能向下,或者向右走,问从\((0,0)\)到\((n,m)\)到路径有多少条.
这里的结论是有\(C_{n+m}^n\).
证明:从0,0到n,m会往下走n步,往右走m步,把路径看成一个长度为n+m的序列,往下走为0,往右走为1
有n个0,m个1,转化为有多少个不同的序列。
我们考虑从序列中选择0的方案数.就是\(C_{n+m}^n\).

PE 76

这是一道很有意思的Partition Function P题目。
里面详细的讲解了如何使用数学的方法来解,不过全是英文,我没有看懂。
也可以使用\(f[i][j]\)表示以i结尾最后一段的和式j数的方案数.
然后发现可以使用前缀和优化,复杂度\(O(n^2)\)
由于是DP,所以放一下代码仅供参考.

int main() {
    f[0][0] = sum[0][0] = 1;
    for(int i = 1;i <= 100;++ i) sum[0][i] = sum[0][i - 1];
    int n = 100;
    for(int i = 1;i <= n;++ i) {
        for(int j = 1;j <= i;++ j) {
            f[i][j] = sum[i - j][j];
            sum[i][j] = f[i][j];
        }
        for(int j = 2;j <= 100;++ j) sum[i][j] += sum[i][j - 1];
    }
    ll Ans = 0;
    Ans = sum[100][99];
    std::cout << Ans;
    return 0;
}

从上面的链接中得知,有生成函数的解法。

PE 90

一个trick , 显然可以用对数函数来比较大小
\(log(a^b) = b*log(a)\)

PE 577

恩,调这道题做了一下午。
\(f(i)\)表示以i行为底的六边形造成的共线,然后就可以计算了
\[f(n) = f(n-1) + \sum_{s=1}^{\lfloor n/3\rfloor}s(n-3s+1)\]

PE 97

一个trick , mod,
乘法和加法满足
\((a*b) \% mod = ((a \% mod) * (b \% mod))\%mod\)
\((a+b)\%mod = ((a\% mod) + (b\% mod) )\%mod\)

PE 364(坑)

第三道计数题,感觉还是get不到计数的点。
只推了一个性质:
第一步结束之后,不存在长度>=3的空格子。


根据这个性质。
第一步结束之后,局面会变成每两个人间隔只有1与2.
有一特殊情况是两端有人或者没人。
存在特殊情况,我们先枚举左右端点。
然后枚举长度为2的空格子的个数。
枚举之后,我们发现可以计算出长度为1的空格子的个数.
考虑第二步,每个人必须加入长度为二的空格子,所以方案数是2.
之后就是难以忍受的细节问题了。
还没有完成代码的任务

待做

PE 601
PE 613
PE 493
PE 102
PE 618

codeforces / project Euler 泛做的更多相关文章

  1. Codeforces Training S03E01泛做

    http://codeforces.com/gym/101078 和ysy.方老师一起打的virtual 打的不是很好...下面按过题顺序放一下过的题的题(dai)解(ma). A 给两个1~n的排列 ...

  2. [Project Euler] 来做欧拉项目练习题吧: 题目013

    问题描述: Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. 371072 ...

  3. codeforces泛做..

    前面说点什么.. 为了完成日常积累,傻逼呵呵的我决定来一发codeforces 挑水题 泛做.. 嗯对,就是泛做.. 主要就是把codeforces Div.1的ABCD都尝试一下吧0.0.. 挖坑0 ...

  4. [project euler] program 4

    上一次接触 project euler 还是2011年的事情,做了前三道题,后来被第四题卡住了,前面几题的代码也没有保留下来. 今天试着暴力破解了一下,代码如下: (我大概是第 172,719 个解出 ...

  5. Python练习题 029:Project Euler 001:3和5的倍数

    开始做 Project Euler 的练习题.网站上总共有565题,真是个大题库啊! # Project Euler, Problem 1: Multiples of 3 and 5 # If we ...

  6. Python练习题 046:Project Euler 019:每月1日是星期天

    本题来自 Project Euler 第19题:https://projecteuler.net/problem=19 ''' How many Sundays fell on the first o ...

  7. Python练习题 045:Project Euler 017:数字英文表达的字符数累加

    本题来自 Project Euler 第17题:https://projecteuler.net/problem=17 ''' Project Euler 17: Number letter coun ...

  8. Python练习题 039:Project Euler 011:网格中4个数字的最大乘积

    本题来自 Project Euler 第11题:https://projecteuler.net/problem=11 # Project Euler: Problem 10: Largest pro ...

  9. Python练习题 032:Project Euler 004:最大的回文积

    本题来自 Project Euler 第4题:https://projecteuler.net/problem=4 # Project Euler: Problem 4: Largest palind ...

随机推荐

  1. 关于vue-router 中参数传递的那些坑(params,query)

    1.query方式传参和接受参数 传参 this.$router.push({ path:'/xxx' query:{ idname:id } })接收的方式:this.$route.query.id ...

  2. 虚拟机 模拟centos 7 系统安装

    Cnetos 服务器安装过程  1.制作U盘启动器 网上有很多制作U盘启动的教程,这里就不详细说了 2.用U盘启动电脑进入安装界面 3.开始安装 等待片刻后,正常的应该会进入语言选择界面了. 选择中文 ...

  3. EC20 R2.1

    1.模块开机成功前WAKEUP_IN. NET_MODE. BT_CTS. COEX_UART_TX(背部焊盘). COEX_UART_RX(背部焊盘) 和WLAN_EN(背部焊盘)引脚禁止上拉. 2 ...

  4. markdown 数学公式

    https://blog.csdn.net/zdk930519/article/details/54137476

  5. checkbox 实现互斥选择

    // mutex 互斥 checkbox 互斥/** 互斥的原理.找到需要互斥的所有的元素.赋值 checked=false; 然后单独赋值 checked=true* */var mutexbox ...

  6. 爬虫框架Scrapy 之(四) --- scrapy运行原理(管道)

    解析后返回可迭代对象 这个对象返回以后就会被爬虫重新接收,然后进行迭代 通过scrapy crawl budejie -o xx.josn/xx.xml/xx.csv 将迭代数据输出到json.xml ...

  7. CentOS7自定义系统服务示例

    CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/ ...

  8. jpa Auditor 自动赋值与自定义 @CreatedBy @LastModifiedBy @CreatedDate @LastModifiedDate

    在spring jpa audit 中,在字段或者方法上使用注解@CreatedDate.@CreatedBy.@LastModifiedDate.@LastModifiedBy,当进行实体插入或者更 ...

  9. HTTP深入浅出 http请求完整过程

    HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求 ...

  10. ”dpkg: 处理归档 /var/cache/apt/archives/XXXXXX(--unpack)时出错“的解决方法

    在安装ROS时出现了下面的问题: 解决方法: sudo dpkg -i --force-overwrite <filename> 在我的问题中我的解决方法是: sudo dpkg -i - ...