【2024 - 517集训四期】Day4 集训总结
比赛总结发挥基本正常,T3 小失误。
T1 总结赛时总结简单题,基本上是模拟即可
题目思路数学,模拟,推公式
题目代码无
T2 总结赛时总结一眼题。典中典。
题目思路记录起始元素,用处理环的方式处理
题目代码无
T3 总结赛时总结一开始思路正确,因为旁边的 wangletao dalao 过了压力极大,发现写出来的代码样例没过直接删了打暴力,并且因为紧张过度理解错题意暴力也挂了
题目思路分类讨论。有意义的区间分为:$[1,l], [l, r], [r,n]$ 。
处理最小和最大值即可
题目代码无
T4 总结赛时总结极限乱贪AC
题目思路正贪一遍处理酒店 i 和市场 i 的最大值,在反贪一遍处理答案
题目代码无
2023 CSP - S 题解T1 密码锁场切没话说
T2 字符串思路不难发现,O(n ^ 2) 做法就是枚举起点 i 模拟,栈每空一次统计一次。由这个不难想到,记录每一个栈的状态,没重复一次记录,对于出现 $n$ 次的情况会有 $\cfrac{n(n-1)}{2}$ 的贡献。
代码无
T3 结构体思路纯模拟。没有任何技术含量
代码纪念一下最长的模拟代码
1237 行
T4 种 ...
【2024 - 517集训四期】Day2 集训总结
T1 总结赛时总结若至题。一眼顶针
题目思路数学,模拟,推公式
题目代码无
T2 总结赛时总结一眼题。典中典。
题目思路打表发现,第一项和第二项的系数是斐波那契数列。预处理出后计算即可
题目代码无
T3 总结赛时总结没有难度
题目思路贪,最小是优先未感染,最大是优先感染
题目代码无
T4 总结赛时总结思路正确,实现失误 :100 -> 55最后一刻,重新提交: 55 -> 5
R2 -> R5 nerd
题目思路把出生死亡和查询看作事件,按照时间排序。出生优先级大于查询大于死亡。余下模拟。
题目代码无
【2024 - 517集训四期】Day1 集训总结
T1 总结赛时总结若至题。一眼顶针
题目思路上数据结构 map
题目代码无
T2 总结赛时总结贪心策略错误,难度排序排成了满意度排序
题目思路贪,按照难度排序
题目代码1234567891011sort(con + 1, con + c + 1);sort(pro + 1, pro + p + 1);ll ans = 0;ll mx = 0, j = 0;for(int i = 1; i <= p; i++) { while(con[j + 1].first <= pro[i].first && j <= c) { mx = max(mx, con[++j].second); } ans += max(0LL, mx - pro[i].second);}printf("%lld", ans);
T3 总结赛时总结水题,典中典。
题目思路不难发现横竖无关,单独处理后合并答案
题目代码无
T4 总结赛时总结完全没有思路,部分分拿满
题目思路对于绝对值考虑分解,情况分 ...
CF1637D - Yet Another Minimization Problem
题面原题链接大秦 为你打开 题目传送门
题目翻译定义某数组 $x$ 的权值为
\sum\limits_{i=1}^n\sum\limits_{j=i+1}^n(x_i+x_j)^2现在,给定两个长度为 $n$ 的数组 $a,b$。你可以执行若干次操作,每次操作选择一个下标 $i$,并交换 $a_i,b_i$。求在进行操作之后两个数组的权值之和最小能够达到多少。
数据范围:
$t$ 组数据,$1\leqslant t\leqslant 40$。
$1\leqslant n,\sum n\leqslant 100$。
$1\leqslant a_i,b_i\leqslant 100$。
Translated by Eason_AC
输入格式Each test case consists of several test cases. The first line contains a single integer $ t $ ( $ 1 \leq t \leq 40 $ ) — the number of test cases. The following is a descriptio ...
【2024信友队 - 提高模考】Day 8 套题5 T1:怪物
题面题目描述 今有 $V$ 只怪物,第只怪物的生命值为 $a_i$。 你和另外一位玩家正在合力击杀这些怪物,你的攻击力为 $x$ ,对方的攻击力为 $y$。 你们需要轮流对活着的怪物进行攻击,第一个回合是你的回合。被攻击的怪物将会损失攻击它的玩家攻击力的生命值,若此后它的生命值非正,怪物将会死亡,击杀它的玩家得到1分。当不存在活着的怪物时,游戏结束。
在你的回合,你可以选择攻击任意一只怪物,也可以选择不进行攻击。 在对方的回合,对方会选择当前存活的,编号最小的怪物进行攻击。 你需要合理地安排你的策略,使得你的得分最大,并求出这个得分。
输入格式 输入的第一行包含三个整数 $N,x,y$ 。 接下来一行 $N$ 个整数,第个整数为 $a_i$。
输出格式 输出一行一个整数 $Ans$ ,表示你最大化的得分
思路
testForXYD
O(n) 做法首先我们一开始设置了 $\tt dp_{i,j}$ 表示考虑到 $\tt a$ 数组的第 $\tt i$ 个,$\tt b$ 数组的第 $\tt j$ 个的答案。
这个就分情况转移:
$a_i \lt b_j$ ,可以保留,转移方程:$\min\{dp[i-1][j], dp[i-1][j]+p[i]\}$
$a_i>b_j$ ,不可保留,转移方程:$dp[i-1][j]+p[i]$
$a_i = b_i$ ,可以保留,转移方程:$\min\{dp[i-1][j-1],dp[i-1][j],dp[i-1]+p[i]\}$
然后发现这个做法显而易见会爆掉,优化。
我们给 $\tt dp$ 数组压一维,变成 $\tt dp_i$ 表示考虑到 $\tt a$ 数组的第 $\tt i$ 个的代价。与原来变化不大。如果 $a_i$ 是 $b$ 数组里面的数字,我们需要转移;如果不是,就直接忽略。转移方程:
dp_i = \min\limits_{x=1}^{i-1}\left(dp_x+\sum\limits_{k=x+1}^{i-1}[a_k\gt b_{j-1} ...
【2024信友队 - 提高模考】 新编套题2 T3:幸苦的工作
题面 :幸苦的工作(Work.cpp)题目描述 在工作中,小明有 $n$ 个任务要完成。第个任务有一个基础时间t和额外时间 $p_i$。( $t$ 是互不相同的,$p_i$ 也是互不相同的) 如果在做任务之前小明已经做了 $k$ 个任务,则做这个任务需要 $t+k·p$ 的时间(因为任务繁重,小明累了)现在小明还剩下的时间为 $T$ ,请问他在这段时间内最多能做多少个任务(假定任务之间没有依赖关系)。(题目保证 $t,p$ 不重)
思路:暴搜 & DP (劣) & DP (std)首先的,暴力枚举每个工作的顺序,求答案。代码略(伪代码也别想要)
然后我们开始考虑正解,这道题,一眼丁真就是 DP 。关键在于怎么 DP 。突然发现有点像背包,而且 $t$ 和 $p$ 不重发现完全是可以在 1000 以内完成,给人物按照 $p$ 排序,跑背包即可。
代码:正解代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#incl ...
【2024信友队 - 提高模考】 新编套题2 T2:均匀的括号
题面:均匀的括号(Bracket.cpp)题目描述 我们按如下方式递归定义一个合法的括号序列及其深度:
空串是一个合法的括号序列,且深度为 $0$ 。
若 $S$ 是一个合法的括号序列且深度为 $h$ ,则 $(S)$ 是一个合法的括号序列且深度为 $h+1$ 。
若 $A,B$ 都是合法的括号序列,且深度分别为 $h_A,h_B$ ,则 $A+B$(其中 + 表示字符串的拼接)是一个合法的括号序列且深度为 $max(h_A,h_B)$ 。
若一个括号序列是合法的且深度 $≤L$ ,则称其是一个均匀的括号序列。现在给你一个合法的括号序列 $S$ 及正整数 $L$ ,问要使其均匀,至少要修改其中多少个括号。(容易发现,当 $L$ 是正整数时,至少存在一种方案)
思路:暴力 & 正解(贪心)暴力很简单,直接暴力枚举所有状态,然后把合法的串给和原串匹配,取最小值。
1234567def main() : GetSbit() // 获得 S 对应二进制 ans = inf f ...
【2024信友队 - 提高模考】 新编套题2 T1:残缺的序列
题面:残缺的序列(Seq.cpp)题目描述 很久以前,有一个长为 $n$ 的排列 $P$ 。随着时间的流逝,$P$ 中的一些数字遗失了,只能看清 $m$ 个数(这 $m$ 个数的相对位置不会发生变化)。 现在我们想通过这 $m$ 个数来还原排列 $P$ 。可能的 $P$ 也许不是唯一的,你只需要输出所有可能的 $P$ 中字典序最小的那一个。 字典序:对两个同样长的序列 $A,B$ ,如果他们的前 $k$ 位相同,且 $A_{k+1}B_{k+1}$ ,则称 $A$ 的字典序大于 $B$ 。
思路贪心,小的放前面
代码略