
C++
A_box_of_yogurt
A_box_of_yogurt
展开
-
[NOI Online #3 入门组] 最急救助 题解
[NOI Online #3 入门组] 最急救助 题解题目描述救助中心每天都要收到很多求救信号。收到求救信号后,救助中心会分析求救信号,找出最紧急的求救者给予救助。求救信号是一个由小写英文字母组成的字符串,字符串中连续三个字符依次组成sos的情况越多(即包含子串sos的数目越多),代表着求救者情况越紧急。现在请你帮助救助中心找出最紧急的求救者。注意字符串中包含的sos可以有重叠,例如sosos算作包含 222 个sos。输入格式从标准输入读入数据。第一行一个整数 nnn,表示求救者的数目。接原创 2021-03-25 21:19:15 · 596 阅读 · 0 评论 -
信息奥赛一本通 最低通行费 (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 · 509 阅读 · 0 评论 -
信息奥赛一本通 三角形最佳路径问题 (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 · 405 阅读 · 0 评论 -
信息奥赛一本通 怪盗基德的滑翔翼 (1286) 题解
信息奥赛一本通 怪盗基德的滑翔翼 (1286) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯南小朋友识破了伪装,而他的滑翔翼的动力装置也被柯南踢出的足球破坏了。不得已,怪盗基德只能操作受损的滑翔翼逃脱。假设城市中一共有N幢建筑排成一条线,每幢建原创 2021-03-18 19:32:04 · 626 阅读 · 0 评论 -
信息奥赛一本通 最大上升子序列和 (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 · 306 阅读 · 0 评论 -
信息奥赛一本通 摘花生 (1284) 题解
信息奥赛一本通 摘花生 (1284) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。输入第一行是一个整数TTT,代表一共有多少组数据。1≤T≤10原创 2021-03-18 19:27:46 · 545 阅读 · 0 评论 -
信息奥赛一本通 登山 (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 · 476 阅读 · 0 评论 -
信息奥赛一本通 最长上升子序列 (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 · 326 阅读 · 0 评论 -
信息奥赛一本通【例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 · 509 阅读 · 0 评论 -
信息奥赛一本通 【例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 · 368 阅读 · 0 评论 -
信息奥赛一本通【例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 · 401 阅读 · 0 评论 -
信息奥赛一本通【例9.6】挖地雷 (1262) 题解
信息奥赛一本通【例9.6】挖地雷 (1262) 题解时间限制: 1000 ms内存限制: 65536 KB题目描述在一个地图上有nnn个地窖(n≤200n≤200n≤200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,且保证都是小序号地窖指向大序号地窖,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。某人可以从任意一处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使他能挖到最多的地雷。原创 2021-03-15 18:11:04 · 908 阅读 · 0 评论 -
信息奥赛一本通【例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 · 597 阅读 · 0 评论 -
信息奥赛一本通【例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 · 340 阅读 · 0 评论 -
因式分解(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 · 1277 阅读 · 1 评论 -
信息奥赛一本通 【例9.4】拦截导弹(Noip1999) (1260) 题解
【例9.4】拦截导弹(Noip1999) (1260)时间限制: 1000 ms内存限制: 65536 KB题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多原创 2021-03-10 21:25:10 · 317 阅读 · 0 评论 -
zipper-题解 DFS搜索算法
zipper-题解(DFS搜索算法)题目描述天顶星人使用量子纠缠技术传送信息,量子纠缠超越了我们生活的四维时空,不受四维时空的约束,其传输信息的速度至少比光速快10000倍。换句话说,即使传送双方远在宇宙的两端,信息也可以瞬间到达。但天顶星人传送的信息有真有假,判断真假的方式是对三个字符串进行验证,即给三个字符串,判断第三个字符串是否由前两个字符串的一部分序列顺序组成,例如字符串A为“cat”,字符串B为“tree”,字符串C为”tcraete”,字符串C由字符串A和B组成,则信息为真。输入格式第一原创 2021-03-09 21:24:52 · 258 阅读 · 0 评论