- 博客(79)
- 收藏
- 关注
原创 洛谷新题 U487375 棕兔舞步旋 |【模版】快速输出
这道题虽说是黄题,但难度可以算是“黑题”了,本质上是为了纪念小粉兔完成洛谷名字颜色全收集成就而特意出的。
2024-10-08 18:19:43 160
原创 洛谷 P3065 [USACO12DEC] First! G
所以将所以字符串建成一棵字典树,然后再在字典树上遍历每一串字符串,如果有字符串已经是他的前缀,无论怎么改变26个字母的排列也无济于事,否则判断优先级,及上一段所说的情况二;现在要使mmb的优先级大于mma的优先级,他们都有相同的mm前缀,那么要使s2的优先级大,就要使b的优先级大,及相同前缀后面部分的优先级大,跟之前所说的一样。构造这样的图,此时a,b在拓扑排序后的顺序是在同一层的,所以可以瞎把a,b交换位置都可以,故可以将a,b交换位置使得s2的优先级大于s1;
2024-09-13 15:00:26 496
原创 洛谷 P4683 [IOI2008] Type Printer
当时想法:当时看了题目标签,就有思路了(见代码注释),但一直RE+WA最后只剩下RE。众所周知,字典树很好地利用了字符串的公共前缀,这也就是上一行出现的原因。如果我们想要操作数尽可能少,那我们的删除数的操作就要尽可能的少。首先,有一个点大大的降低了题目难度,就是。打印结束时,允许有部分字母留在打印机内。题目本质:深搜,字典树Trie。我们使用字典树来完成。
2024-09-13 14:30:54 396
原创 洛谷 P7391 「TOCO Round 1」自适应 PVZ
题目思路:把僵尸出现时刻和走进房子时刻想成左端点和右端点,按照右端点从小到大排序。第二对于同样可以使用的豌豆射手,我们一定选择上次攻击时间最近的豌豆射手攻击僵尸,因为这样可以更灵活的攻击后面的僵尸。题目本质:贪心,排序,平衡树。
2024-09-10 18:33:29 159
原创 洛谷 P1039 [NOIP2003 提高组] 侦探推理
记录每一句话是谁说的以及这句话的内容,可以用map存人名对应的下标,我们枚举每一个人i,假设i是罪犯,然后枚举今天是星期几,用day表示。T是说真话的人数,F是说假话的人数 ,设罪犯为 i ,设flag为这句话是真话还是假话,flag=1是真话,flag=0是假话。=flag就是出现了矛盾(因为一个人始终直说一种话),判断不出来了,直接return去枚举下一个人是罪犯 ,如果F>n或者T>m-n了,也就是说假话的人数超过了题目中给的人数,矛盾,return。题目本质:模拟,字符串,差分,模拟。
2024-09-10 18:18:12 414
原创 洛谷 P10798 「CZOI-R1」消除威胁
后来看了洛谷题解才晓得原来用比这个代码短多了的方法就能实现,注意到可以进行任意次取反操作,而对同一个数做两次取反相当于没做,所以问题可以转化成每一个数取不取反。如果当前元素小于栈顶元素,就直接插进去。如果当前元素大于栈顶元素,破坏了单调栈的单调性,就一直弹栈顶元素,弹到栈顶元素小于等于当前元素。如果栈顶元素等于当前元素,那么以栈顶元素为开始的连续威胁区间个数cnt(stop))加 1。解题思路:由于昨天联练习了平衡树,我就用平衡树+STL打了个暴力,超时得了30分。题目本质:贪心,st表,单调栈。
2024-09-09 22:09:12 302
原创 洛谷 P10119 『STA - R4』踱步
设 fi,k,op 表示对于前 i 个位置,强制在 i+1 分钟初踱步,总共踱步 k 次,且第 i 分钟在屋内(op=0)或屋外(op=1)的最大答案。题目本质:动态规划及优化,单调队列。
2024-08-25 16:09:50 151
原创 洛谷 P2254 [NOI2005] 瑰丽华尔兹
注意(x,y)与(x',y')必定是在同一列或同一行上的,但不一定相邻。i表示的是第i个时间段结束后,(x,y)这个位置最长的滑行距离。题目本质:动态规划,单调队列。
2024-08-25 15:23:12 228
原创 洛谷 P2569 [SCOI2010] 股票交易
方程f[i][j]表示第 i 天结束后,手里剩下 j 股的最大利润,则不买不卖:f[i][j]=f[i-1][j]。买入:f[i][j]=max{f[i-w-1][k]+k*ap[i]}-ap[i]*j。卖出:f[i][j]=max{f[i-w-1][k]+k*bp[i]}-bp[i]*j。题目本质:动态规划,单调队列。
2024-08-25 14:38:13 256
原创 洛谷 P4516 [JSOI2018] 潜入行动
假设当前合并两个背包f[u][a][p1][q1] 和f[v][b][p2][q2] ,其中 v 是 u 的儿子。考虑合并后的f[u][a+b][p3][q3],q3 是合并后点 u 是否被监听,有两种情况:u 之前已经被监听,u 现在被 v 监听。即:q3=q1∣p2。题目本质:背包,树形dp。
2024-08-22 16:07:02 162
原创 洛谷 P2605 [ZJOI2010] 基站选址
转移方程为f[i][j]=Min(f[k][j−1]+cst[k][i])+c[i](j−1≤k<i)。其中cst[k][i]表示第i~k个村庄之间没有被基站i,k覆盖的村庄所需的赔偿费用。解题思路:f[i][j]表示在第𝑖i个村庄修建第j个基站且不考虑第i+1~n个村庄所需的最小费用。题目本质:动态规划dp,线段树。
2024-08-22 15:08:52 135
原创 洛谷 P2466 [SDOI2008] Sue 的小球
边界:初始点不一定有球,我们可以在初始点设置一个损耗为0的球,与其他球一起排序,然后初始点编号为i的话就让。再掉头回来的最小损耗值。小区间可以推出大区间,所以要先枚举区间长度再枚举区间起点。即可(表示第一步没有损耗),其余值随意,最好设为。就是最小损耗,记得除以1000。题目本质:动态规划,区间dp。
2024-08-20 16:37:58 245
原创 洛谷 P3607 [USACO17JAN] Subsequence Reversal P
题目思路:设一个数组dp[l],[r],[L],[R],表示从。题目本质:动态规划dp,枚举。
2024-08-20 16:18:52 220
原创 洛谷 CF295D Greg and Caves
解题思路:将整个洞分成两半,一半递增,一半递减。我们分别 DP 求值,最后合并。状态转移方程为:dpi,j=k=2∑j(j−k+1)dpi−1,k+1。枚举极大最长行区间来代替最长行。题目本质:动态规划dp,枚举。
2024-08-19 16:28:10 220
原创 洛谷 P6005 [USACO20JAN] Time is Mooney G
解题思路:设fi,j表示第i天到达城市j的最大收益。题目本质:动态规划dp。
2024-08-19 15:55:37 153
原创 洛谷 P5424 [USACO19OPEN] Snakes G
设f[i][j]表示前𝑖i条蛇,改变j次大小所得到的最小剩余空间,g[i][j]表示区间[i,j]的空余空间。可以得到如下转移方程:𝑓[𝑖][𝑗]=𝑚𝑖𝑛(𝑓[𝑖][𝑗],𝑓[𝑘][𝑗−1]+𝑔[𝑘+1][𝑖])。k为我们枚举的一个断点,表示[k+1,i]这段区间用同一大小的网。题目本质:动态规划DP。
2024-08-19 14:10:13 207
原创 洛谷 P6280 [USACO20OPEN] Exercise G
然后需要计算所有K的和,就是计算所有符合条件的质数的乘积的和。其次根据唯一分解,一些数的最小公倍数就是除了1以外其它各个数分解质因数后各个质数的最大次幂相乘。最后,枚举每个质数取几个的情况,设dp(i,j)为用了前i 个质数组成的环的长度的和为j 的时候的所有满足条件的K的值。首先,分析题目发现,某个排列的需要进行恰好 K 步变回原样,这个时候K的值就是这个排序中各个环的长的的。题目本质:dp,素数筛法,质数。本题与P4161基本一模一样。
2024-08-18 17:52:23 336
原创 洛谷 P4817 [USACO15DEC] Fruit Feast G
解题思路:题目中只规定了Bessie吃两种水果的饱和度,可以将背包转化为搜索来解决。每一次搜索,把吃橙子和柠檬的情况都处理一次,又因为只能喝一次水,只需要用bool类型的判断一下,记住处理越界的情况。这个代码只能得部分分,因为在深搜的时候,就会处理所有可能的答案和情况,导致超时。可以使用一个数组来存储搜到的答案,搜到的第一个答案就是正解。题目本质:枚举,完全背包。
2024-08-18 15:44:58 171
原创 洛谷 P5020 [NOIP2018 提高组] 货币系统
a[i]=0表示没有i这个数,a[i]=1表示可以凑出i这个数,a[i]=2表示本身就有i这个数。如果处理完成之后a[1~n]中还有等于2的(即本身就有这个数并且不能凑(只能他凑别人))就让ans++,最后输出就好了。记得初始化ans=0.错误原因:没有将记录答案的ans初始化为0。题目本质:dp,数学,贪心,背包。使用a[i]来表示不同情况,
2024-08-18 15:20:07 178
原创 洛谷 P6359 [CEOI2018] Cloud computing
题目思路:dp[i][j] 表示考虑前 i 台计算机,能够获得 j 个核心时,所能获得的最大价值。将其可以优化为dp[i] 表示能够获得 i 个核心时,所能获得的最大价值。将数组初始化为无穷小,利用max找最大值,用cnt记录最大利润。题目本质:贪心+01背包(dp)
2024-08-18 14:51:44 168
原创 洛谷 P1894 [USACO4.2] 完美的牛栏The Perfect Stall
如果第二只牛可以匹配到第一个牛栏,而这时第一只牛又有另一种匹配选择,那么第二只牛就匹配上第一个牛栏,第一只牛去找另一个牛栏来匹配,以此类推。虽然本质上是二分图,但我好像没用,我直接食用的匈牙利算法,直接出来了。先遍历牛,把第一只牛匹配上第一个牛栏,然后再对第二只牛进行匹配。把牛和牛栏分成两个集合 每只牛可以匹配至少一个牛栏。(匈牙利算法不太明白的,详见。
2024-05-30 21:25:06 318
原创 洛谷 P2580 于是他错误的点名开始了
接下来 $n$ 行,每行一个字符串表示其名字(互不相同,且只含小写字母,长度不超过 $50$)。- 对于 $70\%$ 的数据,$n\le 10^4$,$m\le 2\times 10^4$。接下来 $m$ 行,每行一个字符串表示教练报的名字(只含小写字母,且长度不超过 $50$)。- 对于 $40\%$ 的数据,$n\le 1000$,$m\le 2000$。- 对于 $100\%$ 的数据,$n\le 10^4$,$m≤10^5$。第 $n+2$ 行一个整数 $m$,表示教练报的名字个数。
2024-05-30 20:38:03 499
原创 洛谷 CF1209D Cow and Snacks
对每个连通块进行分析:第一个客人买走 2朵,之后的客人每人买走 1 朵,这样在一个点数为 cnt的连通块中,可以满足 cnt-1个客人。这样便可使被满足的客人最多。则最终答案就是 k-(n-ans)=k-n+ans。我们以每种化为一个点,以每个客人喜欢的两朵花给两朵花连一条无向边。则会出现一定数目的连通块,连通块总个数为 ans。
2024-05-27 21:22:32 308
原创 洛谷 P2330 [SCOI2005] 繁忙的都市
n个节点用n-1条边连起来的图形只能是树(所以第一个输出就是n-1),然后边权要小,那么就是最小生成树了。因为它要求连接所有边,且边要少,边权要小。
2024-05-27 21:01:08 194
原创 洛谷 P1346电车
可以把一个路口看作一张图中的一个点,轨道是图中的边(注意:这是有向图),每一条边的权值就是这个边所联通的点是否需要按按钮(需要按按钮就是1,不需要按按钮就是0)然后就用求最短路径的算法算出最少需要按的开关数。
2024-05-27 20:49:01 543
原创 P1113 杂务
John 的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。计算出所有杂务都被完成的最短时间。当然互相没有关系的杂务可以同时工作,并且,你可以假定 John 的农场有足够多的工人来同时完成任意多项任务。John 有需要完成的 nn 个杂务的清单,并且这份清单是有一定顺序的,杂务 k\ (k>1)k (k>1) 的准备工作只可能在杂务 11 至 k-1k−1 中。第1行:一个整数 n\ (3 \le n \le 10{,}000)n (3≤n≤10,000),必须完成的杂务的数目;
2024-05-15 21:45:17 328
原创 P1137 旅行计划
所以他就需要选择最先到达的城市,并制定一条路线以城市 ii 为终点,使得线路上除了第一个城市,每个城市都在路线前一个城市东面,并且满足这个前提下还希望游览的城市尽量多。小明要去一个国家旅游。这个国家有 NN 个城市,编号为 11 至 NN,并且有 MM 条道路连接着,小明准备从其中一个城市出发,并只往东走到城市 ii 停止。接下来 MM 行,每行两个正整数 x, yx,y,表示了有一条连接城市 xx 与城市 yy 的道路,保证了城市 xx 在城市 yy 西面。均选择从城市 11 出发可以得到以上答案。
2024-05-15 21:44:19 645
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人