首页 > 其他分享 >洛谷 P8179 Tyres

洛谷 P8179 Tyres

时间:2023-06-17 13:55:25浏览次数:34  
标签:Tyres 洛谷 轮胎 凸函数 sqrt leq 滴叉 P8179 代价

滴叉题/se/se

题意

直接复制了

有 \(n\) 套轮胎,滴叉需要用这些轮胎跑 \(m\) 圈。使用第 \(i\) 套轮胎跑的第 \(j\) 圈(对每套轮胎单独计数)需要 \(a_i+b_i(j-1)^2\) 秒。滴叉需要进入维修站来更换轮胎,所消耗的时间为 \(t\) 秒。特别地,滴叉使用的 第一套 轮胎不需要进站更换。你需要最小化总时间,总时间等于每圈的时间之和加上进站换轮胎所花费的时间。

数据范围:\(1\leq n,b_i\leq 500\),\(0\leq t\leq 500\),\(1\leq m\leq 2 \times 10^5\),\(1\leq a_i\leq 10^9\)。

题解

首先找点结论,显然只会选择某些轮胎,依次用它们跑连续若干圈以后换掉。如果忽略掉第一次使用轮胎的代价 \(t\),那么这个东西是一个凸函数,一堆凸函数的 Max-Plus 卷积,直接搞个堆就做到 \(m\log n\)。可是由于第一次的代价 \(t\) 存在,所以并不满足凸性。怎么办呢?注意到 \(k\) 很小,而代价的增量是一个二次函数。所以当一套轮胎选择了超过 \(\sqrt{t}\) 圈时,它的代价一定大于前面所有的代价,并且满足凸性。那么你可以先强制所有轮胎选不超过 \(\sqrt{t}\) 套,用一个 DP解决,时间复杂度 \(\Theta(n^2t)\)。接下来再用贪心算出每套轮胎至少选择 \(\sqrt{t}\) 套的最优方案,把它们用 Max-Plus 卷积合并。注意到你可能构造出一些不合法的方案,具体地,实际上你必须一套轮胎选满小于 \(\sqrt{t}\) 圈的代价,再去选大于 \(\sqrt{t}\) 的代价。然而这是不要紧的,因为这些方案一定不优,最终答案不会有这种方案。

标签:Tyres,洛谷,轮胎,凸函数,sqrt,leq,滴叉,P8179,代价
From: https://www.cnblogs.com/kyeecccccc/p/17487117.html

相关文章

  • 洛谷P1578 奶牛浴场
    题目大意又是农夫约翰有一个$L\timesW$的矩阵,中间有$n$个障碍,你要框出面积最大的一块长方形,其中不能包含障碍。数据范围对于所有数据,\(0\len\le5\times10^3,1\leL,W\le3\times10^4\)题解首先,可以根据极大化思想设计一个基本算法:枚举上下左右四个边界......
  • 洛谷 P6821 [PA2012]Tanie linie
    洛谷传送门考虑恰好选\(k\)个子段怎么做。设恰好选\(i\)个子段的和最大值为\(h_k\)。可以得到\(h_{i+1}-h_i\leh_i-h_{i-1}\),因为\(h_i\toh_{i+1}\)的过程就是多选一个子段,贡献肯定不如上一次选即\(h_{i-1}\toh_i\)大。如果它不成立,那我们可以交换......
  • 洛谷P5322 [BJOI2019] 排兵布阵
    题目大意有s名对手,n座城堡,你有m名士兵如果一名玩家向第\(i\)座城堡派遣的士兵数严格大于对手派遣士兵数的两倍,那么这名玩家就占领了这座城堡,获得\(i\)分。求最大得分数据范围对于\(10\%\)的数据:\(s=1,n\le3,m\le10\)对于\(20\%\)的数据:\(s=1,n\le10,m\le1......
  • 【若归】 【LGR-142-Div.4】洛谷入门赛 #13赛后反思
    比赛链接:【LGR-142-Div.4】洛谷入门赛#13rk288,比前几次差(可能是因为rated?)A十年OI一场空,不开longlong见祖宗#include<bits/stdc++.h>usingnamespacestd;intmain(){ longlongintn; cin>>n; cout<<"8"<<12*(n-2)<<""<<6*(n-......
  • 洛谷 P6003 总结
    题目:洛谷P6003链接:洛谷,逐月题意有一个人欠了别人\(n\)单位牛奶,每一天他会还\(y=\max(m,\frac{n-g}{x})\)单位,\(g\)为之前还的牛奶,请求出最大的\(x\)使得这个人在\(k\)天后能换至少\(k\)单位牛奶。\(1\len,m,k\le10^{12},km<n\)。思路暴力......
  • 【LGR-141-Div.2】洛谷 6 月月赛 I (前两题)
    T1:金盏花传送门直接暴力枚举前6位的值即可,记得开longlong#include<bits/stdc++.h>usingnamespacestd;#defineintlonglonginty,z,ans=1e18;signedmain(){ scanf("%lld%lld",&y,&z); for(inti=100000;i<=999999;i++){ intx=i*1000000+y; ans=min......
  • 洛谷P1587 [NOI2016] 循环之美
    原文链接:[sol]P1587[NOI2016]循环之美-icyM3tra'sBlog此为备份。题目传送门0.前言提供一种式子较为简洁且不算难写的做法。以及介绍一种较为优秀的dp版杜教筛实现。1.式子推导我们知道纯循环小数一定可以写成分母形如\(k^a-1\)的分数。因此约分后的分母一定......
  • 洛谷 P3723 [AH2017/HNOI2017]礼物
    由题面可得:\[E_j=\sum_{i=1}^{j-1}\frac{q_i}{(i-j)^2}-\sum_{i=j+1}^{n}\frac{q_i}{(i-j)^2}\]令\(q_0=0\),并将没有意义的分式的值视为\(0\),则有:\[E_j=\sum_{i=0}^j\frac{q_i}{(i-j)^2}-\sum_{i=j}^n\frac{q_i}{(i-j)^2}\]令\(A(i)......
  • 海底高铁(洛谷3406)
         #include<iostream>usingnamespacestd;constintN=100010;intp[N];//要去的城市intA[N],B[N],C[N];longlongs,ans[N];//ans差分数组intmain(){intN,M;scanf("%d%d",&N,&M);for(inti=1;i<=M......
  • 洛谷3397地毯
        问题分析:这个比y总的二维差分模板要简单一些,因为他一开始的矩阵都为0,而且矩阵是一个n方阵,那么其实可以用y总的模板来写,下面是二维差分矩阵的原理  #include<iostream>usingnamespacestd;constintN=1010;intb[N][N];voidinsert(intx1,in......