刷题
文章平均质量分 64
Vo Racci
啥都想学,啥都不会
展开
-
祺哥刷题日记(五)数楼梯
题目 P1255 数楼梯题目描述楼梯有 NNN 阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。输入格式一个数字,楼梯数。输出格式输出走的方式总数。输入输出样例输入4输出5说明/提示对于 60%60\%60% 的数据,N≤50N \leq 50N≤50;对于 100%100\%100% 的数据,N≤5000N \leq 5000N≤5000;题解过程通过观察法可以得到f(x)=f(x−1)+f(x−2)f(x) = f(x-1原创 2021-02-01 17:57:44 · 417 阅读 · 0 评论 -
祺哥刷题日记(四) PAT甲级 1007 Maximum Subsequence Sum
题目思路之前在LeetCode曾经做过,一道很经典的dp题目,主要思路就是用一个数组存放以第i个元素结尾的最大子序列。状态转移方程表示如下:dp[i]={num[i],dp[i−1]<0dp[i−1]+num[i],elsedp[i] = \begin{cases} num[i], dp[i-1] < 0\\ dp[i-1]+num[i], else \end{cases}dp[i]={num[i],dp[i−1]<0dp[i−1]+num[i],else代码#inc原创 2020-11-16 23:33:29 · 122 阅读 · 0 评论 -
祺哥刷题日记(三) PTA甲级 1004 Counting Leaves
题目题目很长,大致的意思就是输入家谱信息,输出每代人中没有后代的人的个数。思路看到题目中第一行的tree,就可以很自然地想到使用树来存储家谱,相关的算法也不过就是与树相关的算法。找到每一代没有后代的人数,首先要知道每个人的代数,也就是在家谱树中所在的层数,所以可以使用dfs算法解决问题。代码#include<iostream>#include<vector>#include<algorithm>using namespace std;typede原创 2020-11-16 23:22:24 · 118 阅读 · 0 评论 -
祺哥刷题日记(二) PAT甲级 1001 A + B format
开始刷PAT的第一道题目,题目如下:题目的主要要求就是将相加得到的结果用带逗号的方式输出。题解一:栈网上基本上都是基于字符串的思想给出题解,我在这里给出一些不一样的思路。两者时间复杂度基本相同。#include<iostream>#include<stack>using namespace std;int main(){ int a, b; cin >> a >> b ; int sum = a + b;原创 2020-11-10 15:01:23 · 120 阅读 · 0 评论 -
祺哥刷题日记(一)最小K个数(TopK问题)
题目题解一:大顶堆在n个数[x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn]中,最小的k个数,可能会有以下两种情况就是前n-1个数中最小的k个数 [a1,a2,...,aka_1,a_2,...,a_ka1,a2,...,ak]若第n个数 xnx_nxn 小于前n-1个数中最小的k个数[a1,a2,...,aka_1,a_2,...,a_ka1,a2,...,ak]中的ama_mam,那么前n个数中最小的k个数可以表示为[a1,a2原创 2020-11-09 19:58:33 · 159 阅读 · 0 评论