题解 斜率优化裸题. 有个很玄学的事情,就是我用\(f[i]=min\{f[j-1]+p[j].y*p[i].x\}\) 会很奇怪的Wa . 明明和\(f[i]=min\{f[j]+p[j+1].y*p[i].x\}\)一模一样的呀! 如果有dalao愿意帮忙看一下就感激不尽了. 附上正确代码和错误代码 正确代码: #include<bits/stdc++.h> typedef long long ll; using namespace std; const int maxn = 5e4+10…
P2900 [USACO08MAR]土地征用Land Acquisition 题目描述 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比如约翰并购一块3 × 5和一块5 × 3的土地,他只需要支付5 × 5 = 25元, 比单买合算. 约翰希望买下所有的土地.他发现,将这些土地分成不同的小组来并购可以节省经费. 给定每份土地的尺寸,请你帮助他计算购买所有土地所需的最小费…
题解 我们把伤害-时间图像画出来.然后维护一下僵尸血量的前缀和.最好情况肯定是有一个僵尸恰好死在戴夫家门口.我们把原点到其他n个点的斜率最大的一个累积到答案. 发现每添加一个点,其他所有点的坐标都变了,但是相对位置没有变,所以我们随便维护一个原点位置就行了. 在n个点中寻找的时候,我们维护一个上凸壳,然后随便二分就行了.二分条件是,他左边的斜率小于他的斜率. #include<bits/stdc++.h> using namespace std; typedef long long ll; s…
题解 我们枚举建厂的位置,发现有个\(n^2\)的DP.随手搞个斜率优化到\(O(n)\). #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 21000 ; const ll inf = 100000000000000LL; int n; ll f[maxn]; ll w[maxn],s[maxn],m[maxn],h[maxn],cnt[maxn]; ll d[maxn],…
题解 挺水的一道题. Rating $ \color{orange} {2300}$ 以下送命题. 首先我们知道,所有子树大小之和就是节点个数加上从根到所有节点的路径长度之和. 他要求度数尽可能小,所以我们二分度数\(k\).显然,度数越小,子树和越大. 对于一个\(k\)叉树,他的子树大小之和为\(n+k^2+k^3+...+rem\) 我们通过二分得到最大的边界\(k\) 然后,此时我们的子树大小\(s\)是要小于等于规定的子树大小和的. 我们考虑扩大子树大小. 显然,我们让某些节点,往深度…
基本上是一个斜率优化裸题了 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6+10; ll s[maxn],x[maxn],n,a,b,c,f[maxn],ss[maxn]; int q[maxn]; double slope(int l,int r) { double tmp1 = f[r]-b*s[r]+a*ss[r]-f[l]+b*s[l]-a*ss[l]; do…
题解 我们考虑将棋盘扩大一倍,这样相当于取膜.然后,我们只要对x,y,的位置分类讨论,做四次crt就行.具体细节看文文代码. #include<cstdio> #include<algorithm> typedef long long ll; const ll inf = 1000000000000LL; int a[10],m[10]; inline ll exgcd(ll a,ll b,ll &x,ll &y) { if(b==0) { x=1;y=0; ret…
这道题考场上卡了文文相当长的时间,所以写个题解泄泄愤QAQ 题意:给你$a$块红瓷砖,$b$块白瓷砖,在一个无限大的地上拼装,要求整体是一个矩形,并且至少有一种颜色是一个矩形,求最小周长. 题解: 首先,我们知道,当面积一定时,矩形的形状越接近正方形,周长越小. 很显然的想到,我们可以给总数$tot$=$a$+$b$开个方,然后去找一个最接近的矩形出来. 但事实上这个方法是错误的:你无法保证至少有一种颜色的是一个矩形. 我们首先,要分情况讨论,让$a$是矩形还是让$b$是矩形.当然,我们讨论每个…
洛谷题目传送门 用两种不一样的思路立体地理解斜率优化,你值得拥有. 题意分析 既然所有的土地都要买,那么我们可以考虑到,如果一块土地的宽和高(其实是蒟蒻把长方形立在了平面上)都比另一块要小,那么肯定是直接并购,这一块对答案没有任何贡献. 我们先把这些给去掉,具体做法可以是,按高为第一关键字,宽为第二关键字从大到小排序,然后上双指针扫一遍. 于是,剩下的就是一个高度递减.宽度递增的矩形序列.考虑怎样制定它们的并购方案会最优.显然如果要并购,一定要挑序列中的一段区间,这样贡献答案的就只有最左边矩形的…
Day0 今天早上三点半才睡着,五点起床,前往省城郑州.与省实验常老师汇合,坐上高铁,下午三点半多才到广州二中. 下午随便找了一个教室进去敲一敲代码,发现自己越来越菜了. 和一大堆网上的dalao面基了呢!开心! 晚上开幕式,节目很好看,讲话很 $\color {red} {风趣} $. Day1 早上的饭好评!可以说是非常好吃了d(`・∀・)b 有面包鸡蛋和牛奶喔 _(:3 」∠ )_ 上午选择了第二教室这个地方QAQ,没能去参加松松松的小黄鸭宣传仪式 Σ( ° △ °).讲了生成函数和他那一…