02 2019 档案

摘要:由题意可知每次只能取两端的零食。这就可以看出来这是一道区间DP题。 我设计出了一个状态 : f[l][r] 表示[l,r]这个区间最多能得到的钱。 当时我就自以为是的推出了转移方程: $f[l][r]=max(f[l+1][r]+a[l]*(r-l+1),f[l][r-1]+a[r]*(r- 阅读全文 »
posted @ 2019-02-10 02:24 加固文明幻景 阅读(4) 评论(0) 推荐(0) 编辑
摘要:这道题可以用DP来做。 我们定义状态f[i]为是当前的人数为i时的队伍数量的最大值。而i同时也代表现在是第几个人。 根据题意。我们可以推出转移方程 当i<a[i]时: f[i]=f[i1] 当前队伍中的人数i不大于a[i]时,我们显然不能让第i个选手自己组成一个队伍 阅读全文 »
posted @ 2019-02-07 22:03 加固文明幻景 阅读(11) 评论(1) 推荐(0) 编辑
摘要:这道题总体来说并不难,纯模拟即可。唯一的难点就是判断无解。 我想了挺久愣是没想到什么好办法。然后我就动了点歪脑筋。 我们先来看一下这份没有判断无解情况的代码(我把他命名为代码67)。(思路与其他题解大体相同的,泥萌看不懂的话也可以去看其他题解的注释,然后他们判断无解的部分先忽略掉。 #include 阅读全文 »
posted @ 2019-02-07 12:14 加固文明幻景 阅读(3) 评论(0) 推荐(0) 编辑
摘要:耗费了两天AC了线段树的两道模板。就把我自己的代码贴出来以后DEBUG的时候做个参考吧。 线段树壹 #include <cstdio> typedef long long ll; const int N = 100000+10; int n,m; ll a[N]; struct Segmen 阅读全文 »
posted @ 2019-02-03 08:57 加固文明幻景 阅读(6) 评论(0) 推荐(0) 编辑
摘要:这道题其实之前就A了,现在再做一遍反而调了一下午。 二分答案的模板和思路都没问题。调的主要是check函数。 话不多说,先看看我第一次和第二次写的check bool check(int x) {//1 int sum=0; for(int i=2; i<=A; i++) { sum=0; for( 阅读全文 »
posted @ 2019-02-02 18:30 加固文明幻景 阅读(3) 评论(0) 推荐(0) 编辑
摘要:为了这道题我大概搞了6小时左右,现在终于AC了。 题意 这道题就是要求一个数列中的最长不上升子序列和最长上升子序列。 至于第二问为什么是求最长上升子序列是因为:每一套导弹拦截系统数列的性质都是保证单调下降的的,所以每一个严格上升的数就是一个导弹拦截系统数列的开头。 题解 2019.2.2 关于实 阅读全文 »
posted @ 2019-02-02 07:56 加固文明幻景 阅读(8) 评论(0) 推荐(0) 编辑

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