
CCF CSP
Crossing over
这个作者很懒,什么都没留下…
展开
-
CCF CSP 201703 4.地铁修建
这道题一开始想用dfs+动态规划做,然而发现很难控制,要么无限展开造成死循环,要么更新不充分。结合动态规划的想法,想到了spfa的bfs做法。然而我现在证明不出来为什么它就对。还是做的题太少了。第一个,dfs 错误的代码,还请路过的朋友指出正确的写法。#include <iostream> #include <vector> #include <algorithm> using namespace原创 2017-03-24 12:13:00 · 4004 阅读 · 9 评论 -
CCF CSP 201312 3.最大的矩形
直方图dp。 上篇说过了,一模一样。但是这个题的结果不会溢出。 一种是我上一篇的方法,从中间开始往两头找,同时利用了历史信息。 另一种是我两年前写的方法,比较直观的枚举两端点,总共枚举n(n-1)/2对。每次找出这个区间内的最小高度。区间最小高度在左端点不变,右端点往右移动的过程中传递下去,因为它只会变得越来越小。 第一个: #include <iostream> #includ...原创 2019-04-16 00:52:05 · 303 阅读 · 0 评论 -
CCF CSP 201703 3.Markdown
模拟题,其实就是字符串的处理。 在main函数里处理三种区块,每个区块判别之后再对区块内容做行内处理(调用函数)。 区块之间有空行隔开,但是,输入的最后一个区块之后不一定会有空行。第一个空行内需要对其中两种区块(段落、无序列表)作结束处理(因为这两个区块可以是多行)。段落比较特殊,当前行的处理结果(行末加不加</p>)由下一行是不是空行决定,所以对段落延迟处理,下行再处理上行的那句段...原创 2019-03-27 22:08:32 · 195 阅读 · 0 评论 -
CCF CSP 201312 4.有趣的数
数位dp。 这种题光看代码真是头疼,想了一个小时才想明白当时的思路。 思路如下: 题目问你x位有趣的数有多少个,记为c[x],那么就要想出来c[x]怎么用c[x-1]表示。 x位有趣的数一定都可以由一个x-1位的数m在末尾添加一个数字而构造出来,分为两种情况: m是有趣的数 可以想到,只能在末尾添加1或3,这两种添加方式都一定有效。 m不是有趣的数 若在m后添加一个数字能使其变为有趣的数,则m一...原创 2019-06-29 23:10:51 · 366 阅读 · 0 评论