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

中山网站百度优化wordpress网站被挂马

中山网站百度优化,wordpress网站被挂马,平面设计海报作品欣赏,宿州房产网题目#xff1a;从一个由N个整数排列组成的整数序列中#xff0c;自左向右不连续的选出一组整数#xff0c;可以组成一个单调减小的子序列(如从{68 69 54 64 68 64 70 67 78 62 98 87}中我们可以选取出{69 68 64 62}这个子序列#xff1b;当然#xff0c;这里还有很多其他…题目从一个由N个整数排列组成的整数序列中自左向右不连续的选出一组整数可以组成一个单调减小的子序列(如从{68 69 54 64 68 64 70 67 78 62 98 87}中我们可以选取出{69 68 64 62}这个子序列当然这里还有很多其他符合条件的子序列)。给定整数序列的长度和整数序列中依次的值请你求出这个整数序列中“最长的单调减小的子序列的长度”以及“不同但长度都是最长得单调减小的子序列的数量”。输入第1行为一个整数N表示输入的整数序列的长度(1≤N≤50000)。输入第2行包括由空格分隔的N个整数(每个整数都在32位长整型范围内)。输出包括一行为两个数字分别为针对给定的整数序列求出的“最长的单调减小的子序列的长度”以及“值不同但长度都是最长得单调减小的子序列的数量”样例输入1268 69 54 64 68 64 70 67 78 62 98 87样例输出4 2对于这个题一共有两个小部分的问题要解决。前一个问题是最长不上升子序列属于LIS问题使用动态规划解决后一个问题属于去重问题。对于LIS问题声明dp[i] 以第i个元素为结尾的子序列的最长的长度。对第i个元素与前i-1个元素进行比较dp[i] 1; //当末尾只要一个元素时 长度为1如果 arr[i] arr[j]:如果dp[i] dp[j] 1此时dp[i]的值会被更新为dp[j] 1其他情况不做处理对于去重问题“值不同但长度都是最长得单调减小的子序列的数量” 这里说的是比如输入62 1 2 1 2 1输出应为 2 12 1 2 1 这两个是值相同的所以应该当做一个使用size[i] 数组去记录第i元素为结尾时值不同但长度都是最长得单调减小的子序列的数量每次在dp更新一遍以后进行size的更新。去掉相同值的情况如果只去关注最后结尾时因为每次遍历都会更新状态也就是说如果有相同值的时候 后者会把前者的情况 都会过一遍所以只要每次更新时保证只取相同值的最后一个出现的元素位置的size[j]即可也就是最右边的那个。对于i元素所构成的最长子序列的前一个元素可能有很多不同值所以要记录这些值,并只取最右边的。最后size 和 dp都已经生成了最终数组然后对整个数组进行遍历 找出最大序列 且值不同的序列的数量方法同找单个i位置元素的值不同但长度都是最长得单调减小的子序列的数量 一致其他说明数据较大 使用java中的BigInteger遍历找值不同但长度都是最长得单调减小的子序列的数量时 使用倒序查找代码Scanner read new Scanner(System.in);int n read.nextInt();long[] arr new long[n];long[] dp new long[n];BigInteger[] size new BigInteger[n];for(int i 0; i n; i){arr[i] read.nextLong();}long max 0;for(int i 0; i n; i){dp[i] 1;size[i] new BigInteger(0);for(int j 0; j i; j){if(arr[j] arr[i]){if(dp[j] 1 dp[i]){dp[i] dp[j] 1;}}}if(dp[i] max){//更新 最长长度max dp[i];}// 确定以arr[i]结尾的 子序列中 值不同但长度都是最长得单调减小的子序列的数量if(dp[i] 1){//如果 不是只有一个数字的时候Set sl new HashSet();for(int j i - 1; j 0; --j){//从右向左查询 只查询第一次遇到的并且是最大长度的 size[i]// 没有记录路径 通过 arr[j] arr[i] dp[j] dp[i] - 1 来确定是否是前一个转移// 遇到相同结尾的情况更右边的已经包含了左边的情况if(arr[j] arr[i] dp[j] dp[i] - 1 !sl.contains(arr[j])){sl.add(arr[j]);//去重size[i] size[i].add(size[j]);}}}else{//只有一个数字是 数量为1size[i] new BigInteger(1);}}BigInteger maxBigI new BigInteger(0);Set set new HashSet();//遍历整个序列 找出最大长度 且值不同的序列的数量for(int i n - 1; i 0; --i){if(dp[i] max !set.contains(arr[i])){set.add(arr[i]);maxBigI maxBigI.add(size[i]);}}System.out.println(max maxBigI.toString());}
http://www.pierceye.com/news/220258/

相关文章:

  • 宁城网站建设磁力宝
  • 找人做彩票网站多少钱茶叶网站flash模板
  • 海口制作网站企业深圳网站建设seo推广优化
  • 东莞建设质监网站建设网站方式有哪些
  • 中学网站建设书最好的网站设计开发公司
  • 下载网站源码聊城seo培训
  • 专用于做网站公司推广的方式有哪些
  • 网站如何规划c 手机网站开发模板
  • 哈尔滨网站建设优化公司室内设计网站
  • 厚街做网站的公司wordpress出现百度抓取404页面
  • 四川南充网站建设西安网站建设推广优化
  • 做企业门户网站都连连电商网站开发公司
  • 微商城网站建设价位公司要想做个网站这么弄
  • wordpress文章所属栏目关键词排名优化易下拉教程
  • 网站主题咋做免费网页模板素材网站
  • 网站建设对旅游意义公众号运营策划
  • 成都专业网站制作关于论文网站开发参考文献
  • 免费做代理郑州seo招聘
  • 做网站系统更新后wordpress
  • 兰州网站建站2024免费网站推广
  • 深圳模板建站企业网站出现搜索
  • app开发网站模板该网站正在紧急升级维护中
  • 公众号编辑器365保定seo推广
  • 陕西整站关键词自然排名优化外贸获客渠道有哪些
  • 网站策划需要具备什么福州高端建站
  • 域名注册没有网站美食网页设计素材图片
  • wordpress网站在哪里修改密码ps做网站要求高吗
  • 企业网站带商城源码Audiology wordpress
  • 星月教你做网站东营城乡建设局官网
  • 镇江网站建设开发旺店通erp系统