10 2019 档案

摘要:其实排队没有问题,很容易想到先按照吃饭时间排序,那么接下来的操作就很玄学了,我先想到的是吧他们分成两组,就相当于一个背包,但是因为背包容量实在是太大了,我们考虑优化,因为前 ii 个人打饭的总时间相同,那么总时间就是固定的,所以我们记录第一个窗口就 OK 了,第二个窗口就是 sum[i]-j ; 状 阅读全文
posted @ 2019-10-14 21:45 Coder_cjh 阅读(127) 评论(0) 推荐(0) 编辑
摘要:目前进度:只差了输出部分 阅读全文
posted @ 2019-10-13 20:14 Coder_cjh 阅读(152) 评论(0) 推荐(0) 编辑
摘要:首先考虑暴力维护,显然极端数据就会炸裂,那么用什么来维护呢? 考虑一个很 NB 的公式log(n*m)=log(n)+log(m) OK ,这道题到此结束 我们只要把乘积转化为对数,最后再还原就可以了,也不用考虑精度问题,本蒟蒻试着用pow,然后它死了。 代码 阅读全文
posted @ 2019-10-12 23:05 Coder_cjh 阅读(219) 评论(0) 推荐(0) 编辑
摘要:一题区间DP 阅读全文
posted @ 2019-10-12 21:09 Coder_cjh 阅读(85) 评论(0) 推荐(0) 编辑
摘要:普通的LCS是经典的DP问题,那么如果加上方案数,则与最短路计数类似的 1.如果相同,就加上方案数 2.如果可以被更新,就重新统计方案数 但在这一题中,有一种特殊情况要考虑 如果一个子串,(i-1,j)和(i,j-1)都是由(i-1,j-1)转移过来,那么如果在更新f(i,j)时,就不可以用(i-1 阅读全文
posted @ 2019-10-08 21:57 Coder_cjh 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题目链接 首先这里有两个动点,一个是军队,另一个是敌人 因为敌人的移动比较机械,所以我们考虑只用己方的状态来表示。 随着时间推移,每个敌军都会移动,那么我们直接加上敌军移动的一格,往下多走一格,就可以实现相对运动 化动为静 设F[i][j]表示我军走到(i,j)这个方格需要的最小步数,那么有三种情况 阅读全文
posted @ 2019-10-06 21:02 Coder_cjh 阅读(143) 评论(0) 推荐(0) 编辑
摘要:首先建一个Trie,考虑贪心选深层节点合并。 如果要求输出方案呢? 即是CF566A 考虑用一个Vector来维护每个点结尾的ID,也没什么差吧 还有,string和char差这么多,快了N倍 阅读全文
posted @ 2019-10-06 21:02 Coder_cjh 阅读(158) 评论(0) 推荐(0) 编辑
摘要:这是一场比赛的 T4T4 ,身为蒟蒻的我当然没有想出来。 后来对基环树有了一点了解之后就来肝这道题。 首先对于一条边,只有两种情况 1.在环上,那么这个环只有全部正向或全部反向才可以成立,而总方案数显然是 2m ,其中 mm 是环上的边数,所以方案数就是 2m-2 2.不在环上,那么这种边就可以随意 阅读全文
posted @ 2019-10-05 21:52 Coder_cjh 阅读(133) 评论(0) 推荐(0) 编辑
摘要:RT,正解居然是暴搜,我用的是Hamilton,结果炸了 Code Mine 正解 太炸心态了 阅读全文
posted @ 2019-10-05 21:03 Coder_cjh 阅读(148) 评论(0) 推荐(0) 编辑
摘要:Solution1 Solution 2 阅读全文
posted @ 2019-10-04 21:29 Coder_cjh 阅读(94) 评论(0) 推荐(0) 编辑
摘要:这一题写的时候也是懵逼的,想到了大概思路 首先的操作肯定是处理出以 ii 为结尾的最长连续上升序列 那么接下来最朴素的算法可以达到 O(N^2) 有没有更快的做法? 考虑我们枚举的是前 ii 项,那么有些很明显无用的东西被重复枚举了 如果 a[i]>a[j] 并且 g[i]<=g[j] ,那么选 i 阅读全文
posted @ 2019-10-04 19:51 Coder_cjh 阅读(152) 评论(0) 推荐(0) 编辑
摘要:这道题我用了扫描法,悬线法还没有填坑 首先想到尽量减少枚举量,也就是尽量让每个矩形都是有意义的,那么只有障碍点边缘有价值,所以只需要从左到右扫描一遍,得到的全部都是有意义的。 那么这种方法是否还有遗漏呢? 答案是肯定的 因为我们从左到右搜,肯定是以左边为准线,那么如果一直延伸到右边,那么如果是右边延 阅读全文
posted @ 2019-10-04 19:29 Coder_cjh 阅读(197) 评论(0) 推荐(0) 编辑
摘要:Step 1 首先考虑链状的情况,也就是链状 ++++++++ ++++++++ P.S : ++ 表示使用的子段 可以考虑用中途相遇法,用 g[i] 表示以 ii 为结尾分界线,之前最大子段和, 以 h[i] 表示以 ii 为结尾分界线,之后最大子段和 那么答案也就是 g[i]+h[i+1] (不 阅读全文
posted @ 2019-10-04 17:42 Coder_cjh 阅读(281) 评论(0) 推荐(0) 编辑
摘要:Solution Step 1 考试的时候SB想到了异或…… 首先复杂度肯定是线性,否则无法满足。 Step 2 区间操作,考虑转为差分,变成单点操作。 那么如果 s=e ,就是普通的差分 如果不是,也就是差分数组每次加上同一个数,考虑维护差分数组的差分数组。 每次加上公差,最后统计。 修改 O(1 阅读全文
posted @ 2019-10-04 11:44 Coder_cjh 阅读(187) 评论(0) 推荐(0) 编辑
摘要:Johnson排序 思路使用邻项交换法证明,以min(a1,a2)<min(b1,b2)为关键字排序。 注意细节 阅读全文
posted @ 2019-10-02 11:49 Coder_cjh 阅读(254) 评论(0) 推荐(0) 编辑
摘要:似乎又想到3紫1黑 其实是两道不相关的题目,区间选点问题,给了我们O(N2)的复杂度,那就很好确定了,我们可以考虑尽量让一棵树发挥最大价值,放在尾部,直到满足要求为止。 具体实现 Code 阅读全文
posted @ 2019-10-02 11:32 Coder_cjh 阅读(167) 评论(0) 推荐(0) 编辑
摘要:首先,根据数据范围,可以得到这是一题O(N2) 考虑贪心 发现行和列是不相关的,于是可以把他们分成两个一维区间问题,也就是在线段中选出点使得每个线段中都有一个点,求出方案。 先考虑尽量不对后面造成影响,也就是留后路,所以前面要尽量选靠前的,按照右端点排序,分别处理。 最后记得按原序号输出。 阅读全文
posted @ 2019-10-02 11:17 Coder_cjh 阅读(119) 评论(0) 推荐(0) 编辑
摘要:一道思维题,主要用到的方法是思路转化。 首先考虑第一个村庄,首先他本身一定会用|a[1]|的劳动力 综上,我们通过扫描法来记录前几个村庄带给这个村庄的酒,累加劳动力就好了 阅读全文
posted @ 2019-10-02 11:02 Coder_cjh 阅读(133) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示