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

电商资源网站怎么用php做网站方案

电商资源网站,怎么用php做网站方案,wordpress自己新建模板,推广赚钱app题目 12代码 #include <bits/stdc.h> using namespace std; const int N2e55; struct node{int pre,//上一个水果块(对于水果就是上个水果)l,//块开始的序号&#xff0c;左边界 d,//块类型&#xff0c;0/1id,//水果序号 r,//块结束的序号&#xff0c;右边界 next;//下一块…

题目

1
在这里插入图片描述
2
在这里插入图片描述

代码

#include <bits/stdc++.h>
using namespace std;
const int N=2e5+5;
struct node{int pre,//上一个水果块(对于水果就是上个水果)l,//块开始的序号,左边界 d,//块类型,0/1id,//水果序号 r,//块结束的序号,右边界 next;//下一块(下个水果)node(){d=-1;id=-1;};//空参数构造函数 node(int px,int lx,int vx,int rx,int nx){//构造水果块。//上一块,左边界,水果类型,右边界,下一块 pre=px,l=lx,d=vx,r=rx,next=nx;};node(int px,int idx,int nx){//构造一个水果//上一个水果,水果序号,下一个水果 pre=px,id=idx,next=nx;}; bool isempty(){//判定块是否空了(已挑空该块水果) if(l>r)return 1;else return 0;} 
}k[N],f[N];//N块,N水果 
int n,//水果数m=0;//块序号 
void view(int x){cout<<"果篮"<<x<<endl;for(int i=k[0].next;k[i].d!=-1;i=k[i].next){//遍历所有块 cout<<i<<"("<<k[i].d<<")";for(int j=k[i].l;j!=k[k[i].next].l;j=f[j].next)//遍历该块所有水果 cout<<f[j].id<<" ";cout<<"\t";}cout<<endl;
}
int main(){//freopen("data.cpp","r",stdin);int l=0,//左边界 r,//右边界 x=-1,//本块水果类型 x2;//后块水果类型 scanf("%d",&n);for(int i=1;i<=n+1;i++){//遍历所有水果。多循环一次,用以确认最后一块 if(i<=n)scanf("%d",&x2);else x2=-2;//最后一块,跟第一块-1不一样(全空后不合并)f[i]=node{i-1,i,i+1};//建立本水果(链表) if(x!=x2){//本水果跟上一水果不一样,那前面就是一个块 r=i-1;//上一块的右边界 k[m]=node{m-1,l,x,r,m+1};//建立上一块(链表) l=i,x=x2;//本块的左边界和水果类型 m+=1;//本块序号 }}k[m]=node{m-1,n+1,-2,n+1,m+1};//尾块//view(0);while(k[0].next!=m){//第一个空块的下一个不是最后一个空块就继续 for(int i=k[0].next;i!=m+1;i=k[i].next){//遍历所有块,包括最后一个空块 if(k[i].d!=-2){//非最后一个空块 //cout<<"输出"<<i<<"("<<k[i].v[0]<<")\n";cout<<f[k[i].l].id<<" ";//输出该块左边界对应水果序号 if(!k[i].isempty()){//非空就去掉第一个元素——左边界右移 f[f[k[i].l].pre].next=f[k[i].l].next;//左边界的上一水果的下一水果是左边界的下一水果 f[f[k[i].l].next].pre=f[k[i].l].pre;//左边界的下一水果的上一水果是左边界的上水果 k[i].l=f[k[i].l].next;//块的首水果变成水果的下一水果 }}int j=k[i].pre;//处理上一块 if(k[j].isempty()){//如果上一块空了,if(k[k[j].pre].d==k[k[j].next].d){//前后一样,合并。//合并后块到前块 k[k[j].pre].r=k[k[j].next].r;//上一块的右边界改成下一块的右边界水果 k[k[j].pre].next=k[k[j].next].next;//前块的后块是后块的后块 k[k[k[j].next].next].pre=k[j].pre;//后块的后块的前块是前块 }else{//前后不一样,续接上 k[k[j].pre].next=k[j].next;//前一个的下一个是自己下一个 k[k[j].next].pre=k[j].pre;//下一个的前一个是自己上一个 }}//view(i);}cout<<endl;//view();} return 0;
}

思路

  • 模拟按块取水果,并动态合并空块
  • 双层双向链表。水果块和各水果
  • 遍历所有块,并输出每块首水果。某块被取空,如果前后块一样就合并,否则续接
  • 每个水果会被处理1次(O(n)),每个果篮会被处理1次(O(n)),能处理n=2e5的规模。

小结

链表还是很有趣,多操作,熟能生巧。
都在处理序号,不管块双向链表和水果双向链表。块的首个水果和尾水果跟水果的序号统一。

http://www.dtcms.com/a/421796.html

相关文章:

  • 悦西安东莞网站推广优化
  • 赣州网站建设方案自媒体素材视频网站
  • 全国信用网站一体化建设wordpress 显示微博
  • 如何建设软件下载网站除了速卖通还有什么网站做外贸
  • 南漳网站定制江门seo排名优化
  • 前端做网站商城 购物车怎么做建筑公司商标logo设计
  • 百度域名书写seo分析seo诊断
  • 网站页面优化方法shopex更改数据密码后网站打不开了
  • python做网站实例互联网平台服务
  • 自己做的网站怎么植入erpwordpress当前分类文章
  • 绍兴中交水利水电建设有限公司网站html标签大全及用法
  • 有哪些做动图的网站郑州展览设计公司
  • 电影网站推广网站模板制作教程视频教程
  • 让人家做网站需要问什么问题中国500强公司排名查询
  • 网站改版目标网站备案年限查询
  • 上海建设银行网站转账记录淮滨网站建设公司
  • 交互网站建设佛山市城乡住房建设局网站首页
  • 企业网站托管外包方案深圳软件开发培训机构
  • 泉州住房与城乡建设网站营销型网站 案例
  • 互力互通网站建设网站建设管理报告
  • 海口建站模板软件开发工具最重要的信息出口是
  • 网站建设公司薪酬wordpress发布视频
  • 自做网站的步骤网站做自动群发百度搜录
  • 网站的比较外网域名
  • 专业做胶粘剂招聘网站价格低质量好怎么宣传
  • 售后网站用什么模板自己做网站能赚到广告费吗
  • 北京模板开发建站手机下载工具app
  • 买号链接网站静态化对seo
  • 建设银行网银网站特色网站ui升级怎么做
  • 网站建设与设计方案网站建设与管理总结