Advertisement

算法作业 - 分析和解决小易的数列问题(dp)

阅读量:
在这里插入图片描述

这道题目所涉及的状态转移过程相对简单,具体表现为seq[i][j] += seq[i - 1][t];,然而若采用这种方式进行计算,则会导致程序运行时间超出限制。其根本原因在于计算k时的时间复杂度为平方级,从而引发超时问题。最初导致超时的代码如下:

复制代码
    #include<iostream>
    #include<algorithm>
    #include<vector>
    #include<map>
    
    using std::cin;
    using std::cout;
    using std::endl;
    using std::vector;
    using std::string;
    
    int main()
    {
    	int n, k;
    	cin >> n >> k;
    	vector<vector<long long>>seq;
    	for (auto i = 0; i <= n; i++) {
    		vector<long long>se(k + 1,

全部评论 (0)

还没有任何评论哟~