
洛谷
文章平均质量分 77
ssl_wtj
这个作者很懒,什么都没留下…
展开
-
P1686 挑战(推荐洛谷水紫)
原题链接 P1686 挑战 题目大意 有一条原创 2022-01-17 08:48:09 · 933 阅读 · 0 评论 -
P1137 旅行计划
原题链接 P1137 旅行计划 题目大意 一个图上有 n≤100000n\le 100000n≤100000 个点和 M≤200000M\le 200000M≤200000,输出以每一个点为终点最多可以经过多少个点。 解题思路 要求求以每一个点为终点最多可以经过多少个点,有一点动态规划的意思。但是,动态规划,要求无后效性。只有按照不会对后面进行影响的顺序进行动态规划,才行得通。而最好想到的顺序就是拓扑的顺序了。 拓扑排序,最常用来解决的问题就是做工程的先后顺序的问题,动态规划也是如做工程一样,一定要先做完前原创 2022-01-14 14:49:23 · 119 阅读 · 0 评论 -
P2835 刻录光盘
原题链接 P2835 刻录光盘 题目大意 有 n(2≤n≤200)n(2\le n\le 200)n(2≤n≤200) 个人要拷贝光盘,每个人都可以给自己愿意给的人进行再次拷贝。求最少要将光盘给多少人拷贝。 解题思路 实际上,本题就是求联通块的个数。很明显,要使用 dfsdfsdfs ,但是,如何求最少?肯定是将联通块的顶点进行一次遍历,从最大的联通块到小的联通块,并且每遇到一个没有被标记的点,就将答案加一。那么如何将连通块的顶点排序?那就要使用拓扑排序了。 按照拓扑排序的原理,是将入度为0的点先放入队列,原创 2022-01-14 13:58:09 · 246 阅读 · 0 评论 -
P1828 香甜的黄油 Sweet Butter
原题链接 P1828 香甜的黄油 Sweet Butter 题目大意 有 n(1≤n≤500)n(1\le n\le 500)n(1≤n≤500) 头牛,每头牛都在自己的牧场内。有 1≤c≤14501\le c\le 14501≤c≤1450 对牧场之间有一条路,且每条路的路程不同。现在,让所有牛去到其中一个牧场,求所有牛走过的路程总和的最小值。 解题思路 很明显,这一题需要使用最短路算法。因为路是双向的,所以我们可以计算从枚举一个牧场,再计算从这个牧场到其他牧场的最短路,将其总和加起来,求最小值。 代码实原创 2022-01-14 10:35:25 · 163 阅读 · 0 评论 -
CF510B Fox And Two Dots
原题链接 CF510B Fox And Two Dots 题目大意 在一张 n×m (2≤n≤50,2≤m≤50)n\times m\ (2\le n\le 50,2\le m\le 50)n×m (2≤n≤50,2≤m≤50) 的地图上有许多点,每一个点都由一个字母代表当前位置的颜色。每个点可以与上下左右连接,问图上能否出现一环。 解题思路 ...原创 2021-12-18 15:09:20 · 268 阅读 · 0 评论 -
P1854 花店橱窗布置
原题链接 P1854 花店橱窗布置 题目大意 有F(1≤F≤100)F(1\le F\le 100)F(1≤F≤100)束花,V(1≤V≤100)V(1\le V\le 100)V(1≤V≤100)个花瓶,花瓶是固定的,花束可以移动,并且从左到右,每束花依次用1到F的整数标识。但是如果I < J,则花束I必须放在花束J左边的花瓶中。每束花放在每个花瓶中对应一个美学效果,求每束花美学效果之和最大是多少,并且输出方案(分别表示第 iii 个花束放在第几个花瓶里)。 结题思路 求花美学效果之和最大是多少还是原创 2021-12-10 22:19:40 · 336 阅读 · 0 评论 -
P1435 回文字串
原题链接 外网进不去 P1435 回文字串 题目大意 回文字符串表示这个字符串从左往右和从右向左读取的结果一样。现在,给定一个字符串,求在其中插入几个字符可以使其变成回文字符串。 解题思路 按照题目的提示,我们得到了回文字符串的特点:从左往右和从右向左读取的结果一样。于是,这么来想,我们便可以想到使用找字符串从左往右和从右向左来找最长公共子串(显然,这是不用更改的),剩下的,就是要么是左边有,右边没有的,要么就是右边有左边没有的,所以,剩下的,就是要插入的字符个数了,也就是答案。至于最长公共子串,这里就不再原创 2021-12-04 16:26:25 · 866 阅读 · 0 评论 -
P1026 统计单词个数
原题链接 外网进不去 P1026 统计单词个数 题目大意 有一个字符串,以每行20个的方法输入(每行都满20个),一共有 p(p≤10)p(p\le 10)p(p≤10) 行。题目又会给出 nnn 个单词,求将这个字符串分成 1<k≤401<k\le 401<k≤40 个部分后字符串最多能包含都少个单词(单词可以重叠,但是重叠的单词的前缀不可以一样)。 解题思路 因为从字符串中截取一段中所包含的单词数是一定的,所以只要保证前面的单词数最多,就可以保证答案最多。这样,这个问题就变为了要解决它原创 2021-12-04 12:21:44 · 725 阅读 · 0 评论 -
P1282 多米诺骨牌
目录原题链接题目大意解题思路 原题链接 P1282 多米诺骨牌 题目大意 有n(1≤n≤1000)n(1\le n\le 1000)n(1≤n≤1000)骨牌,每个骨牌都有上下两个部分,每个部分都有一定的点数, 点数为从1到6的整数。如果想要使所有骨牌的上半部分的所有点数的和与所有骨牌的下半部分的所有点数的和的差的绝对值最小,需要将上下部分交换多少次? 解题思路 我们可以先从简单的想起: 如果我们定义fi,jf_{i,j}fi,j表示前 iii 个骨牌构成上下差值为 jjj 是否可能。不难得到: fi,j原创 2021-12-02 17:01:13 · 253 阅读 · 0 评论 -
P1006 传纸条
目录原题链接题目大意解题思路代码实现样例输入输出 原题链接 P1006 传纸条 题目大意 有两个人在传纸条,一个人在坐标 (1,1)(1,1)(1,1) 处,一个人在坐标 (n,m)(n,m)(n,m) 处。纸条需要从 (1,1)(1,1)(1,1) 处传到 (n,m)(n,m)(n,m) 处(只能向下或向右传),再从 (n,m)(n,m)(n,m)处传到 (1,1)(1,1)(1,1) 处(只能向上或向左传),在每一个位置上的同学都对应一个好心程度,他们希望尽可能找好心程度高的同学来帮忙传纸条,即找到来回原创 2021-11-27 13:30:12 · 134 阅读 · 0 评论 -
P1018乘积最大
目录原题链接题目大意结题思路代码实现样例输入输出 原题链接 P1018 题目大意 有一个长的为n(6≤n≤40)n(6\le n\le 40)n(6≤n≤40)的字符串,你要在其中任意添加k(1≤k≤6)k(1\le k\le 6)k(1≤k≤6)个乘号,求得到的最大值是多少。 结题思路 如果使用暴力枚举,时间复杂度就会为:O(4n)O(4^n)O(4n),超时。这时候,我们考虑动态规划。假如我们设f(n,k)f_{(n,k)}f(n,k)表示前nnn个位置放kkk个乘号的最大结果,设r(i,j)r_{(原创 2021-11-13 13:29:37 · 91 阅读 · 0 评论 -
U138026 土地恢复
目录原题链接题目大意解题思路输入输出代码实现样例1输入输出样例2输入输出样例3输入输出 原题链接 U138026 土地恢复 题目大意 有一个长度为n(1≤n≤100000)n(1\le n\le 100000)n(1≤n≤100000)的土地,每个位置都有一个深度depth(0≤depth≤10000)depth(0\le depth \le 10000)depth(0≤depth≤10000),每次可以选择[n,m][n,m][n,m]的区间,让其中的每一处深度减一,求最少需要多少次,才能让所有位置的深度原创 2021-10-09 21:46:29 · 98 阅读 · 0 评论 -
P5380 鸭棋
#include<bits/stdc++.h> using namespace std; int x_2,y_2,x_1,y_1,n,s_way[8][2]={{0,1},{1,0},{-1,0},{0,-1},{1,1},{1,-1},{-1,-1},{-1,1}},king_way[4][2]={{0,1},{1,0},{-1,0},{0,-1}}; int g_way[4][2]={{1,1},{1,-1},{-1,1},{-1,-1}},e_way[4][2]={{2,2},{2,-2}原创 2021-10-01 21:50:08 · 439 阅读 · 1 评论 -
P2293 高精度开根
粗略地算了一下时间复杂度,但如果使用暴力,那么时间复杂度将会达到。这题,一看就是高精度。高精度的开根,如果上网搜,会搜索出各种。还是超时,继续优化。无能为力之下,只能使用压位高精。(简单来说,就是答案的位数是根号下数的位数除以开的次方数。但是,既占空间,又占时间。我们发现,就算是使用。,我们可以采用一种非常朴素的写法二分。压位高精的输出中,当本身就是0,只输出。如此,可以将时间复杂度降低至。就OK了(时间复杂度将会降低至原来的。大概意思是给你两个数,个的0,真的被坑到了!...原创 2021-09-13 21:05:33 · 1619 阅读 · 3 评论 -
P2557 芝麻开门
原题链接 P2557 芝麻开门 题目大意 输入aaa和bbb输出aba^{b}ab的因数和(a≤216a\le 2^{16}a≤216,b≤20b\le 20b≤20)。 解题思路 其实,最容易想到的思路就是先将aaa分解因数,再把次数乘b, (如果a=a1n1∗a2n2∗...∗annna={a_1}^{n_1}*{a_2}^{n_2}*...*{a_n}^{n_n}a=a1n1∗a2n2∗...∗annn,那么ab=a1n1∗b∗a2∗bn2∗b∗...∗annn∗ba^b={a_1}^{n原创 2021-08-18 09:34:35 · 831 阅读 · 0 评论