2019 牛客多校第六场 D Move】的更多相关文章

题目链接:https://ac.nowcoder.com/acm/contest/886/D 题解摘自官方题解 题目大意 有 K 个体积相同的箱子,有 N 个体积相同或相异的物品,现要按照如下策略装箱: 一个一个箱子装,装到不能装了换下一个装. 对于每一个箱子,每次都从剩余物品中找最大的能装进箱子里的物品装进去,直到装不进为止. 求箱子的最小体积. 分析 首先这道题箱子容积和答案没有单调性. 比如:15 5 • 39 39 39 39 39 60 60 60 60 60 100 100 100…
B - Shorten IPv6 Address 题意 给你\(128\)位的二进制,转换为十六进制. 每\(4\)位十六进制分为\(1\)组,每两组用一个\(":"\)分开. 每一组的十六进制要去掉前导\(0\). 如果存在连续两组以上的\(0\)要转换为\("::"\).比如,\(0:0:0.0:0\)都可以转换成\("::"\). 但是最多只能转换一次,要求在长度最短的条件下字典序最小. 思路 先把二进制串转换为16进制串 找到最长连续的\…
题目链接:https://ac.nowcoder.com/acm/contest/886/B 题意: 您将获得一个IPv6地址,该地址是128位二进制字符串.请根据以下规则确定其最短的表示: 以十六进制表示形式表示地址,并使用冒号':'分割每四个十六进制数字.每四个数字称为一个字段.例如,'0000:0000:0123:4567:89ab:0000:0000:0000' 可以省略字段中的前导零.例如,上述IPv6地址可以缩短为 '0:0:123:4567:89ab:0:0:0' 由至少两个字段组…
Upgrading Technology 题目传送门 解题思路 对于这题,我们可以枚举一个k从0~m,表示当前我们把所有技能最少升到了k级,且至少有一个为k级. 此时我们刚好获得了前k个d[]的收益,并花费了所有技能升到k级的花费.因为现在我们已经把所有技能都升到k了,为了获得当前情况下的最大收益,我们要把每一个技能继续升级到一定的等级,使我们能够通过这一技能获得最大的收益(即最小花费),即s[k~m]的最小值 - s[k] (s[]为这一技能花费的前缀和).我们可以用单调队列来维护这个最小值.…
题目链接:https://ac.nowcoder.com/acm/contest/886/J 题目大意 略. 分析 见代码. 代码如下 #include <bits/stdc++.h> using namespace std; #define INIT() ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define Rep(i,n) for (int i = 0; i < (n); ++i) #define For(i,s,t)…
题目链接:https://ac.nowcoder.com/acm/contest/886/B 题目大意 给定一个 128 位的二进制 ip 地址,让你以 16 位一组,每组转成 16 进制,用冒号连接,并且可以选择一次且仅一次把 ip 数组中值连续为 0 的组删去(详情看样例),求如此操作后最短且字典序最小的 ip 字符串. 分析 bitset + sprintf. 代码如下 #include <bits/stdc++.h> using namespace std; #define INIT(…
题意: 传送门 给你\(A,B,C\),要求你给出有多少对\((x, y)\)满足\(x\in [1,A],y\in [1,B]\),且满足以下任意一个条件:\(x \& y > C\)或者\(x \oplus y < C\). 思路: 数位\(DP\),以前做的数位\(DP\)只是和一个数相关,今天是和两个数相关,有点神奇.这里我开了九维,第\(i\)位\(x\)是\(j\),\(y\)是\(k\),对\(第一种\)情况,对\(第二种\)情况,\(x\)到达上界,\(y\)到达上界,…
题意: 有个家伙装东西,他的策略是贪心,每次装进去这个盒子能装下的最大的东西,直到把这个盒子装满,再去装下一个盒子. 给出盒子的数量k和一些东西的重量,问你最小需要多大的盒子才能以这种贪心策略装下. 题解: 如果某个解可行,比它大的值未必可行,比如有15个物品,5个39,5个60,5个100,5个盒子,那么盒子大小199可以,200不行,201也不行.所以不能二分. 首先,显然答案下界为ceil(sum/k). 设最大的物品重量为maxv,假如某个ans装不下,那么在此ans下,装下除maxv外…
2019牛客多校第八场 F题 Flowers 先枚举出三角形内部的点D. 下面所说的旋转没有指明逆时针还是顺时针则是指逆时针旋转. 固定内部点的答案的获取 anti(A)anti(A)anti(A)或者说A‾\overline{A}A表示DA→\overrightarrow{DA}DA旋转180°之后的方向. block(A,B)block(A,B)block(A,B)表示的是DA→\overrightarrow{DA}DA旋转到DB→\overrightarrow{DB}DB的扫过的几何区间.…
链接:https://www.nowcoder.com/acm/contest/144/C来源:牛客网 Oak is given N empty and non-repeatable sets which are numbered from 1 to N. Now Oak is going to do N operations. In the i-th operation, he will insert an integer x between 1 and M to every set inde…