当前位置: 首页 > news >正文

昌邑建设网站无锡网站建设方案托管

昌邑建设网站,无锡网站建设方案托管,前端开发培训机构tuj,北京网站软件制作文章目录 题目描述思路分析实现源码分析总结 题目描述 思路分析 目前是有一个笨办法,就是创建链表记录每一个最长下降子序列所对应的节点的链接,然后逐个记录所有结点的访问情况,直接所有节点都被访问过。这个方法不是很好,因为需…

文章目录

        • 题目描述
        • 思路分析
        • 实现源码
        • 分析总结

题目描述

在这里插入图片描述

思路分析
  • 目前是有一个笨办法,就是创建链表记录每一个最长下降子序列所对应的节点的链接,然后逐个记录所有结点的访问情况,直接所有节点都被访问过。
  • 这个方法不是很好,因为需要计算很多次,会超时,这里用了贪心的方法来证明,虽然不是最优子序列,但是数量是一致的。
实现源码
#include <iostream>
#include <algorithm>
#include <sstream>using namespace std;const int K = 110;
const int N = 110;
const int H = 12000;
int h[H];
int Up[N];
int Down[N];
struct Node {int idx;Node *next;
};
bool DownAcess[N];
Node DownRecord[N];  // 记录下降节点的序列int main() {int n = 1;string line;getline(cin,line);stringstream ss(line);while(ss>>h[n]) n++;n --;int times = 0;bool endFlag = true ;
//    while(endFlag){
//        endFlag = false;
//        times ++;
//        int maxIdx = 1;
//        int maxNum = 0;// 计算最长上升子序列int res = 0;for (int i = n; i >= 1; -- i) {Down[i] = 1;DownRecord[i].idx = i;// 右侧最长上升子序列for (int k = n; k > i ; --k) {if (h[k] <= h[i]){Down[i] = max(Down[i], Down[k] + 1);if (Down[i] < Down[k] + 1)DownRecord[i].next = &DownRecord[k];}}res = max(res, Down[i]);}cout<<res<<endl;
//
//        for (int i = 1; i <= n; ++i) {
//            if (maxNum < Down[i]) {
//                maxIdx = i;
//            }
//        }
//
//        Node *temp = &DownRecord[maxIdx];
//        while(temp != NULL){
//            DownAcess[temp->idx]  = true;
//        }
//
//        for (int i = 1; i <= n; ++i) {
//            if (DownAcess[i] == false) endFlag = true;
//        }//    }
//    cout<<times<<endl;return 0;
}
//  正解
//#include<iostream>
//#include<algorithm>
//using namespace std;
//
//const int N = 1005;
//int n;
//int q[N];
//int f[N],g[N]
//
//int main()
//{
//    while(cin>> q[n])  n ++;
//    int res = 0;
//    for (int i = 0; i < n; ++i) {
//        for (int j = 0; j < i; ++j) {
//            if (q[j] <= q[i])
//                f[i] = max(f[i],f[j] + 1);
//        }
//        res = max(res,f[i]);
//    }
//    cout<<res<<endl;
//
//    int cnt = 0;
//    for(int i = 0;i < n;i ++){
//        int k = 0;  // 维护的索引的序列
//        while(k < cnt && g[k] < q[i]) k ++;  // 遍历的每一个维护的最大的序列值
//        g[k] = q[i];
//        if(k >= cnt) cnt ++;
//
//    }
//}
分析总结
  • 这里的证明看的不是很懂,但是用样例推过了,确实是正确的。使用贪心求最少的子序列数量,和两次最优子序列是相同的。
  • 但是如果确实想不起来,确实可以使用这个方法进行实验。
http://www.yayakq.cn/news/287737/

相关文章:

  • 广州市企业网站建设怎么样推广软文是什么
  • 嘉兴网站制作套餐wordpress多语言包
  • 丰城网站建设公司2345电视剧网站免费
  • tomcat做的网站打不开了网站建设课程设计实训心得
  • 签订网站建设合同应注意邯郸网站设计应搜韦欣cidun8上词
  • 如皋网站开发qq小程序游戏入口
  • 网站建设及维护流程图杭州seo外包优化
  • 织梦网站漏洞在线制作印章免费
  • 东莞做企业网站网站推广计划方案
  • 深圳网站建设联系电话做网站膜网站怎么做
  • 询广西南宁网站运营wordpress评论跳过验证
  • 为什么苏州网络进不了网站城市人家装饰公司怎么样
  • 网站建设错误代码50019朝阳区手机网站建设服务
  • 可信网站认证好处网站建设毕业设计心得
  • 建设网站技术人员先进事迹php企业网站开发好学么
  • 网站开发插件word素材库免费
  • 广西智能网站建设企业临汾网站建设销售
  • 域名跳转网站网站质作
  • 做ppt兼职网站有哪些化妆品成品网站
  • 建企业网站 硬件社区微网站建设方案ppt模板
  • mysql数据库网站北京环球影城可以带水果吗
  • 哪个网站做美食视频软件基于WordPress免费博客
  • 重庆网站怎么设置游戏网站的设计方案
  • 淘宝网站可以做轮播吗做网站如何报价
  • 怎样在百度上做网站e网科技网站
  • 济南建设信息网站公司网站首页模板
  • 企业网站建设信息管理平台joomla网站如何加入会话功能
  • 网站建设建设公司哪家好东莞阳光网官方网站
  • 快速建站实例演示完整版网站建设的实训周
  • 东莞网站建设管理支付网站招聘费分录怎么做