- 博客(26)
- 收藏
- 关注
原创 初一20210622综合测试总结
初一20210622综合测试总结这次比赛是真的水,可是这个蒟蒻只做对了两道题T1 Comparing Strings比较字典序其实只需要比较第一个字符谁大就行了(因为其他字符都一样)Code#include <bits/stdc++.h>using namespace std;int a, b;int main() { scanf("%d%d", &a, &b); if(a < b) while(b--) printf("%d", a); else w
2021-06-28 15:23:59 163
原创 [NOI Online #3 入门组] 最急救助 题解
[NOI Online #3 入门组] 最急救助 题解题目描述救助中心每天都要收到很多求救信号。收到求救信号后,救助中心会分析求救信号,找出最紧急的求救者给予救助。求救信号是一个由小写英文字母组成的字符串,字符串中连续三个字符依次组成sos的情况越多(即包含子串sos的数目越多),代表着求救者情况越紧急。现在请你帮助救助中心找出最紧急的求救者。注意字符串中包含的sos可以有重叠,例如sosos算作包含 222 个sos。输入格式从标准输入读入数据。第一行一个整数 nnn,表示求救者的数目。接
2021-03-25 21:19:15 546
原创 信息奥赛一本通 最低通行费 (1287) 题解
信息奥赛一本通 最低通行费 (1287) 题解代码:#include <bits/stdc++.h>int n, d[128][128][2];int dp(int r, int c) { if(d[r][c][1]) return d[r][c][1]; if(r > 1 && c > 1) return d[r][c][1] = std::min(dp(r - 1, c), dp(r, c - 1)) + d[r][c][0]; if(r >
2021-03-19 17:10:08 479
原创 信息奥赛一本通 三角形最佳路径问题 (1288) 题解
信息奥赛一本通 三角形最佳路径问题 (1288) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述如下所示的由正整数数字构成的三角形:7 3 8 8 1 0 2 7 4 4 4 5 2 6 5从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。你的任务就是求出最佳路径上的数字之和。注意:路径上的每一步只能从一个数走到下一层上和它最近的下边(正下方)的数或者右边(右下方)的数。输入第一行为三角形高度1
2021-03-19 16:24:25 381
原创 信息奥赛一本通 怪盗基德的滑翔翼 (1286) 题解
信息奥赛一本通 怪盗基德的滑翔翼 (1286) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯南小朋友识破了伪装,而他的滑翔翼的动力装置也被柯南踢出的足球破坏了。不得已,怪盗基德只能操作受损的滑翔翼逃脱。假设城市中一共有N幢建筑排成一条线,每幢建
2021-03-18 19:32:04 591
原创 信息奥赛一本通 最大上升子序列和 (1285) 题解
信息奥赛一本通 最大上升子序列和 (1285) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述一个数的序列b_ib\_ib_i,当b_1<b_2<...<b_Sb\_1<b\_2<...<b\_Sb_1<b_2<...<b_S的时候,我们称这个序列是上升的。对于给定的一个序列(a_1,a_2,...,a_N)(a\_1,a\_2,...,a\_N)(a_1,a_2,...,a_N),我们可以得到一些上升的子序列(a_i1,a_
2021-03-18 19:30:08 278
原创 信息奥赛一本通 摘花生 (1284) 题解
信息奥赛一本通 摘花生 (1284) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。输入第一行是一个整数TTT,代表一共有多少组数据。1≤T≤10
2021-03-18 19:27:46 499
原创 信息奥赛一本通 登山 (1283) 题解
信息奥赛一本通 登山 (1283) 题解代码:#include <bits/stdc++.h>using namespace std;int n, ans = 0, d[1024][3];void dp_1(int x) { if(x == n + 1) return; d[x][1] = 1; for(int i = x - 1; i > 0; --i) if(d[x][0] > d[i][0] && d[x][1] <= d[i][1])
2021-03-18 19:25:15 447
原创 信息奥赛一本通 最长上升子序列 (1281) 题解
信息奥赛一本通 最长上升子序列 (1281) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述一个数的序列b_ib\_ib_i,当b_1<b_2<...<b_Sb\_1 < b\_2 < ... < b\_Sb_1<b_2<...<b_S的时候,我们称这个序列是上升的。对于给定的一个序列(a_1,a_2,...,a_N)(a\_1,a\_2,...,a\_N)(a_1,a_2,...,a_N),我们可以得到一些上升的子序列(a_
2021-03-18 19:21:52 292
原创 信息奥赛一本通【例9.10】机器分配 (1266) 题解
信息奥赛一本通【例9.10】机器分配 (1266) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。输入第一行有两个数,第一个数是分公司数N,第二个数是设备台数M;接下来是一个N*M的矩阵,表明了第 I个公司分配 J台机器的盈
2021-03-18 19:19:50 479
原创 信息奥赛一本通 【例9.9】最长公共子序列 (1265) 题解
信息奥赛一本通 【例9.9】最长公共子序列 (1265) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x_1,x_2,…,x_m>X=<x\_1,x\_2,…,x\_m>X=<x_1,x_2,…,x_m>,则另一序列Z=<z_1,z_2,…,z_k>Z=<z\_1,z\_2,…,z\_k>Z=<z_1,z_2,…,z_k>是
2021-03-18 19:17:33 345
原创 信息奥赛一本通【例9.8】合唱队形 (1264) 题解
信息奥赛一本通【例9.8】合唱队形 (1264) 题解代码:#include <bits/stdc++.h>using namespace std;int n, ans = 2147483647, d[128][3];void dp_1(int x) { if(x == n + 1) return; d[x][1] = 1; for(int i = x - 1; i > 0; --i) if(d[x][0] > d[i][0] && d[x][1]
2021-03-18 19:14:23 372
原创 信息奥赛一本通【例9.6】挖地雷 (1262) 题解
信息奥赛一本通【例9.6】挖地雷 (1262) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述在一个地图上有nnn个地窖(n≤200n≤200n≤200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,且保证都是小序号地窖指向大序号地窖,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。某人可以从任意一处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使他能挖到最多的地雷。
2021-03-15 18:11:04 833
原创 信息奥赛一本通【例9.5】城市交通路网 (1261) 题解
信息奥赛一本通【例9.5】城市交通路网 (1261) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述下图表示城市之间的交通路网,线段上的数字表示费用,单向通行由A->E。试用动态规划的最优化原理求出A->E的最省费用。如图:求v1到v10的最短路径长度及最短路径。输入第一行为城市的数量N;后面是N*N的表示两个城市间费用组成的矩阵。输出A->E的最省费用。输入样例100 2 5 1 0 0 0 0 0 00 0 0
2021-03-15 18:07:29 562
原创 信息奥赛一本通【例9.7】友好城市 (1263) 题解
直接上代码:#include <bits/stdc++.h>using namespace std;struct c{int a, b, l;} d[5005];bool cmp(c num1, c num2) {return num1.a < num2.a;}int n, ans = 0;void dp(int x) { if(!x) return; d[x].l = 1; for(int i = x + 1; i <= n; ++i) if(d[x].b &
2021-03-15 18:02:29 302
原创 因式分解(DFS) - 题解
因式分解(DFS) - 题解将大于1的自然数N进行因式分解,满足 N=a1∗a2......∗amN = a_1 * a_2......*a_mN=a1∗a2......∗am 编一个程序,对任意的自然数N,求N的所有形式不同的因式分解方案总数。例如,N=12,共有8种分解方案,分别是:12=1212=1212=1212=6∗212=6*212=6∗212=4∗312=4*312=4∗312=3∗412=3*412=3∗412=3∗2∗212=3*2*212=3∗2∗212=2∗612
2021-03-12 21:10:29 1141 1
原创 信息奥赛一本通 【例9.4】拦截导弹(Noip1999) (1260) 题解
【例9.4】拦截导弹(Noip1999) (1260)时间限制: 1000 ms内存限制: 65536 KB题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多
2021-03-10 21:25:10 299
原创 zipper-题解 DFS搜索算法
zipper-题解(DFS搜索算法)题目描述天顶星人使用量子纠缠技术传送信息,量子纠缠超越了我们生活的四维时空,不受四维时空的约束,其传输信息的速度至少比光速快10000倍。换句话说,即使传送双方远在宇宙的两端,信息也可以瞬间到达。但天顶星人传送的信息有真有假,判断真假的方式是对三个字符串进行验证,即给三个字符串,判断第三个字符串是否由前两个字符串的一部分序列顺序组成,例如字符串A为“cat”,字符串B为“tree”,字符串C为”tcraete”,字符串C由字符串A和B组成,则信息为真。输入格式第一
2021-03-09 21:24:52 239
原创 滑雪-题解 DFS搜索算法
滑雪-题解(DFS搜索算法)题目描述Michael喜欢滑雪这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在
2021-03-09 21:02:43 281
原创 信息奥赛一本通-动态规划 1259:【例9.3】求最长不下降序列
信息奥赛一本通-动态规划 1259:【例9.3】求最长不下降序列【题目描述】设有由n(1≤n≤200)n(1\leq n\leq 200)n(1≤n≤200)个不相同的整数组成的数列,记为:b(1)、b(2)、……、b(n)b(1)、b(2)、……、b(n)b(1)、b(2)、……、b(n)若存在i1<i2<i3<…<iei_1<i_2<i_3< … < i_ei1<i2<i3<…<ie 且有b(i1)<=b(i2)&
2021-03-08 21:13:27 492
原创 动态规划
动态规划知识总结(Dynamic Programming)理解动态规划基本思路适用情况关键点动态规划解题步骤动态规划与分治的联系和区别相同点区别实现方法子问题性质动态规划与贪心的联系与区别联系区别理解动态规划基本思路动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间。动态规划只能应用于有最优子结构的问题。最优子结构
2021-03-07 21:06:49 152
原创 信息奥赛一本通 动态规划 1258:【例9.2】数字金字塔
数字金字塔【题目描述】观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。在上面的样例中,从13到8到26到15到24的路径产生了最大的和86。【输入】第一个行包含R(1<= R<=1000),表示行的数目。后面每行为这个数字金字塔特定行包含的整数。所有的被供应的整数是非负的且不大于100。【输出】单独的一行,包含那个可能得到的最大的和。【输入样例】51311 812 7
2021-03-07 20:54:17 263
原创 队列
队列1队列的概念2队列的应用1队列的概念队列是一种特殊的线性表, 它只允许在表的前端进行删除()操作,而在表的后端进行插入操作队列中元素都遵循"先进先出"(First In First Out)的规则.常规操作有:函数功能front()取队列第一个元素push(X)将X入队pop()弹出队首元素empty()判断队列是否为空(空为真)size()返回队列中元素个数栈与队列是非常相似的, 它们的规则不同(栈是 FILO, 队列是 FIFO
2021-03-06 13:22:41 142
原创 宽度优先搜索算法BFS
寒假集训第二期所学知识总结1. 栈1.1典型题型1.2解法1.2.1后缀表达式求值1.2.2中缀表达转换成后缀表达式1.2.3字符串匹配问题1.2.4中缀表达式值1. 栈1.1典型题型中(后)缀表达式的计算, 转化.括号匹配模拟(如 车厢调度)1.2解法1.2.1后缀表达式求值题目大意: 给出一个仅由整数 、+、-、*、/等组成的后缀表达式,符号之间用空格分开,计算它的值。思路 :建一个栈记录读入的数, 遇到运算符就取出栈顶两个元素进行计算, 再把结果压入栈.最后输出栈顶元素.(注意:
2021-03-06 13:19:16 750
原创 深度优先搜索算法DFS
深度优先搜索算法DFS(Depth First Search 深度优先搜索)DFS主要方法: 回溯DFS(Depth First Search 深度优先搜索)深度优先搜索每一次搜索都要走到底的(从左到右遍历, 每一次遍历从上到下遍历完), 深度优先搜索主要用递归实现, 因此也很容易超时.DFS主要方法: 回溯回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但
2021-03-06 12:45:18 170
原创 栈
栈1栈的概念2例题2.1后缀表达式求值2.2中缀表达转换成后缀表达式2.3车厢调度1栈的概念栈是STL中的一种运算受限的线性表, 限定仅在表尾进行插入和删除操作的线性表.栈中元素都遵循"先进后出"(First In Last Out)的规则.主要的操作有:函数功能top()取栈顶元素push(X)将X压入栈pop()弹出栈顶元素empty()判断栈是否为空(空为真)size()返回栈中元素个数2例题2.1后缀表达式求值题目大意: 给出
2021-03-06 10:08:34 97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人