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

浙江建设职业技术学院门户网站wordpress怎么作模版

浙江建设职业技术学院门户网站,wordpress怎么作模版,大连企业网站建站,深圳罗湖区住房和建设局网站解析 预处理 用pre[i]表示以i结尾的最长完美序列起始点#xff0c;用last[i]表示数字i最后出现的位置 那么可以得到递推式#xff1a; pre[i]max(pre[i-1],last[x[i]]1);也就是说这个pre要么是受前一位一样的限制#xff0c;要么是受自己的限制 用f[i]表示以i结尾的最长完… 解析 预处理 用pre[i]表示以i结尾的最长完美序列起始点用last[i]表示数字i最后出现的位置 那么可以得到递推式 pre[i]max(pre[i-1],last[x[i]]1);也就是说这个pre要么是受前一位一样的限制要么是受自己的限制 用f[i]表示以i结尾的最长完美序列长度那么显然 f[i]i-pre[i]1;以上可以用On完成预处理 询问 接下来对于每次询问区间 [l,r] 中的每一位只有两种可能 1.pre在l左侧或l上 2.pre在l右侧 根据之前的递推式pre显然单调不减。 因此这两种情况的分布具有单调性,我们就可以二分找出一个结点mid使左侧及本身的pre均l称为A右侧pre均l称为B A对于A的每一个元素其在区间内可以达到的长度应该为i-l1;那么显然让iA中最大的值——mid时取到最大值 B对与B中的每一个元素以其结尾的最大长度就是f[i]因此B的最优就是f在[now1,r]中的最大值用st表维护即可 A和B各自的最优取max就是答案 单次询问时间复杂度Ologn 代码 #include cstdio #include cstring #include cmath #include algorithm #include iostream #include string #include queue #include string #includemap #define ll long long #define mem(a,b) memset(a,b,sizeof(a)); using namespace std; const int N2e5100; const int M2e6100; int n,m,mod,ask; int a,b,c; int x[N],pre[N],last[M],f[N]; int dp[N][30],q[N]; int maxx(int a,int b){int kq[(b-a)1];int ansmax(dp[a][k],dp[b-(1k)1][k]);return ans; } void Dp(){int o0;for(int i1;in;i){if(1oi) o;q[i]o-1;}for(int i1;in;i) dp[i][0]f[i];for(int k1;kq[n];k){for(int i1;i(1k)-1n;i) dp[i][k]max(dp[i][k-1],dp[i(1(k-1))][k-1]);} } int find(int l,int r){int stl,edr;while(sted){int mid(sted1)1;if(pre[mid]l) stmid;else edmid-1;}return st; } int query(int l,int r){int nowfind(l,r);int ansnow-l1; // int ans0; // for(int il;ir;i){ // if(pre[i]l) ansmax(ans,i-l1); // else ansmax(ans,f[i]); // }//ansmax(ans,maxx(now1,r)); // for(int inow1;ir;i) ansmax(ans,f[i]);ansmax(ans,maxx(now1,r));return ans; } void read(){scanf(%d%d,n,m);for(int i1;in;i) scanf(%d,x[i]); } void solve(){for(int i1;in;i){pre[i]max(pre[i-1],last[x[i]]1);last[x[i]]i;f[i]i-pre[i]1; // printf(%d ,pre[i]);} // printf(\n);Dp(); } void putout(){for(int i1;im;i){scanf(%d%d,a,b);a;b;if(pre[b]a){printf(%d\n,b-a1);continue;}printf(%d\n,query(a,b));} } int main(){read();solve();putout();return 0; } /* 9 15 1 2 3 4 5 6 7 8 9 */ 疑问 仔细看代码的童鞋会发现我的数组都开了2e6但除了last之外应该开到2e5n的范围就够了 但一开始开2e5wa掉了。。。 期待看破其中玄机的dl评论区指点迷津awa 谢谢
http://www.zqtcl.cn/news/808022/

相关文章:

  • 汝州市住房和城乡建设局网站网站自己做流量
  • 怎么做网站有利于收录沭阳做网站公司排名前十
  • 给企业做网站如何定价电商系统平台
  • 山东川畅科技网站设计流量网站建设教程
  • 湖南省住房建设厅网站企业手机网站制作
  • 做虚假网站犯法吗发稿计划
  • 网站怎么防黑客网站建设一般要多大空间
  • 做网站一般要多钱织梦做网站被告
  • 响应式网站如何设计网页设计与制作课程标准化项目申报书
  • 苏州公司技术支持 苏州网站建设蔬菜类网站建设规划书
  • 主流做网站wordpress字体设置
  • 大连网站建设解决方案加快政务网站群建设管理
  • 淮南网站建设全包成都设计咨询集团有限公司
  • 网站管理助手v3wordpress主题防盗版
  • 国外网页加速器seo优化排名怎么做
  • 网站后台做图片尺寸是多大企业网站的常见服务
  • 给企业建设网站的流程图南昌网站建设模板网络公司
  • 谷歌wordpress建站中山网站推广服务
  • php网站建设网站兼职做网站在那里接任务
  • 网站现在怎么做排名wordpress做成淘宝客
  • 广州网站设计成功柚米wordpress 总站模板
  • 江苏常州建设银行网站广州中学生网站制作
  • 微信公众平台怎么做微网站weirdcore制作网站
  • 国外网站如何建设seo关键词优化外包公司
  • 郑州商城网站建设多少钱商城类网站建设方案
  • 哈尔滨做网站哪好做网站公司分为国内还是国外
  • 饰品企业网站建设大连工程信息建设网
  • 昆山网站推广四川网站建设费用
  • 中国建设银行网站易方达消费我有域名怎么做网站
  • 网站图片规格2023年7 8月十大新闻