Link 题目描述 给定一行 \(n\) 个非负整数 \(a[1]..a[n]\) .现在你可以选择其中若干个数,但不能有超过 \(k\) 个连续的数字被选择.你的任务是使得选出的数字的和最大. 输入格式 第一行两个整数 \(n\) ,\(k\) 以下n行,每行一个整数表示 \(a[i]\). 输出格式 输出一个值表示答案. 输入输出样例 输入 #1 5 2 1 2 3 4 5 输出 #1 12 说明/提示 对于20%的数据,n <= 10 对于另外20%的数据, k = 1 对于60%的数据,…
一道单调队列优化DP的入门题. f[i]表示到第i头牛时获得的最大效率. 状态转移方程:f[i]=max(f[j-1]-sum[j])+sum[i] ,i-k<=j<=i.j的意义表示断点,因为不能连续安排超过k只牛,肯定要在中间断开一处. max中f[j-1]-sum[j]只和j相关,我们可以对其做递减单调队列,最后队头就是最大值max. 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll…
题目链接:https://ac.nowcoder.com/acm/contest/2652/G 题目大意:与上一篇博客 烽火传递 差不多. 1.一共n头羊,若超过m头连续的羊在一起,就会集体罢工,每头羊有一个工作效率,求如何选择羊使得工作效率最高 题解思路: 1.我们可以转换思路,首先选择全部的羊,然后这是集体罢工,我们去拆分他们,即转换成了每连续的 m + 1头羊之间必须拆掉一头羊,则作为效率损失. 2.dp[i] 表示 拆掉第 i 只羊所造成的最小总损失.于是与烽火传递一样了. 3.该题还有…
点我看题 G - Sequence in mod P 稍微观察一下就会发现,进行x次操作后的结果是\(A^xS+(1+\cdots +A^{x-1})B\).如果没有右边那一坨关于B的东西,那我们要求的就是满足\(A^x \equiv \frac GS\)的最小的x(离散对数).有一个叫BSGS的东西是专门干这个的 考虑能不能把这个式子直接化成\(A^x \equiv B\)的形式.先把答案=0.A=0和A=1的情况特判掉,因为会影响后面推式子. \[\begin{align} A^xS+(1+…
震惊,蒟蒻学树剖第二天就打题解 所以说,理解之后树剖这种东西其实难度真心不大.至少这种模板题都可以秒切的 这里推荐一个博客: 树剖详解 蒟蒻就是在这个博客上学到的 如果想看我自己写的总结,请点 我的博客 这个链接(虽然这个是写给自己看的,理解难度应该不小) 树剖的方法在博客上都有了,在这里不细讲,专注讲一下这题的实现: \(dfs\) 请使用博客上的方法,这题需要做的只是照搬 首先,我们可以发现,这题跟普通的树剖基本上一样.唯一的区别就是他要使用 \(xor\) .那么,我们发现, \(xor\…
看到各位大佬们已经把其他的东西讲的很明白了,我这个 juruo 就讲一讲最基本的树链剖分吧. 0.树剖是什么?能吃吗? 不能吃 树剖是树链剖分的简称,我们一般说的树剖其实指重链剖分.当然,还有一种长链剖分我不会,但是据说不常用. 树链剖分能够把树剖分成许多链,这样就可以用维护区间的方式维护一棵树. 1.怎么剖分 先引入一些概念: 重儿子:一棵树最大的子树叫重儿子.例如这棵树中3就是1的重儿子:很明显,一棵树的重儿子是唯一的.什么?有多棵子树的大小相同?那就随便选一个呗. 轻儿子:除了重儿子都是轻…
本文将同步发布于: 洛谷博客: csdn: 博客园: 简书: 题目 题目链接:洛谷 P3122.USACO 官网. 题意概述 给你平面上的一些点和直线,有两种操作: 新加入一个点 \((x,y)\): 给定一条直线 \(ax+by=c\),询问是否所有点都在这条直线的同侧(在直线上不合法). 初始时有 \(n\leq 10^5\) 个点,共有 \(q\leq 10^5\) 次操作. 题解 对题意转化 我们考虑将 所有点都在直线的同一侧 这一条件进行转化. 具体地,我们先考虑一个简单的子问题. 简…
原题 传送门 有C个奶牛去晒太阳 (1 <=C <= 2500),每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值(minSPFi and maxSPFi),太大就晒伤了,太小奶牛没感觉. 而刚开始的阳光的强度非常大,奶牛都承受不住,然后奶牛就得涂抹防晒霜,防晒霜的作用是让阳光照在身上的阳光强度固定为某个值. 那么为了不让奶牛烫伤,又不会没有效果. 给出了L种防晒霜.每种的数量和固定的阳光强度(coveri and SPFi)也给出来了 每个奶牛只能抹一瓶防晒霜,最后问能够享受晒太阳的奶…
介绍: 单调队列优化的原理   先回顾单调队列的概念,它有以下特征:   (1)单调队列的实现.用双端队列实现,队头和队尾都能插入和弹出.手写双端队列很简单.   (2)单调队列的单调性.队列内的元素具有单调性,从小到大,或者从大到小.   (3)单调队列的维护.每个新元素都能进入队列,它从队尾进入队列时,为维护队列的单调性,应该与队尾比较,把破坏单调性的队尾弹出.例如一个从小到大的单调队列,如果要进队的新元素a比原队尾v小,那么把v弹走,然后a继续与新的队尾比较,直到a比队尾大为止,最后a进队…
A: UVALive 6525 cid=61196#problem/A" style="color:blue; text-decoration:none">Attacking rooks 题解:点击打开链接 C: UVALive 6527 Counting ones 题解:点击打开链接 E: UVALive 6529 Eleven 题解:点击打开链接 F: UVALive 6530 Football 题解:点击打开链接 G: option=com_onlinejudge…