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

订单网站模板wordpress建产品目录

订单网站模板,wordpress建产品目录,泰州网络营销,信息服务平台有哪些网站文章目录题解代码居然没有题解?我来写一下我的抽象做法。 题解 手玩一下,随便画个他信心的折线图,如下: 可以发现,如果我们知道终止节点,那么我们就可以知道中间有多少个上升长度。(因为它只能…

文章目录

    • 题解
    • 代码

居然没有题解?我来写一下我的抽象做法。


题解

手玩一下,随便画个他信心的折线图,如下:

可以发现,如果我们知道终止节点,那么我们就可以知道中间有多少个上升长度。(因为它只能 +1+1+1 或者 −1-11

然后可以发现一个性质,如果我们把连续的有出现的值在值域上看成一个联通块,如图:

其中的线段表示这一段的值有出现过。显然,kkk 只能往左跳,不能跨过段往右跳。

那么可以考虑枚举从右往左枚举 kkk 能否停在这个段内。

具体的,如图:

此时我们是在判断区间 [5,8][5,8][5,8] 是否合法,那么本质就是看 kkk 能否停在区间 [5,8][5,8][5,8] 前面一个区间右端点 +1+1+1 往右的位置。

容易发现,红色区间内的所有数又是有用的,可以作为 +1+1+1 使用。

那么 kkk 最终停在的位置就是 k+c−(n−c)k+c-(n-c)k+c(nc)

其中 ccc 是红色区间的可用 +1+1+1 数量。

判断结果是否比左边界大,即可判定有没有解。

另外有特殊情况,例如如图,算出来 kkk 最终的位置比 888 大。

这意味着红色区间内可用 +1+1+1 比其它 −1-11 多。

那么就需要这些 +1+1+1 两两低消。而我们进入一个区间 [l,r][l,r][l,r] 后,所能到达的右端点最大就是 r+1r+1r+1

但是具体是不是 r+1r+1r+1 呢?可以发现最终所停位置一定和 n+kn+kn+k 的奇偶性相同,根据这个,对 rrr 或者 r+1r+1r+1 取一个 min⁡\minmin 即可。

具体维护可以使用并查集。

当然还有一些小细节需要处理,具体地可以看代码。

代码

int n,k;
int c[N],cnt[N],fa[N],l[N],r[N],uur[N];
inline int ga(int x){return x==fa[x]?x:fa[x]=ga(fa[x]);
}
int vis[N];
void uni(int x,int y){int Fx=ga(x),Fy=ga(y);if(Fx==Fy)return ;fa[Fx]=Fy;l[Fy]=min(l[Fx],l[Fy]);r[Fy]=max(r[Fx],r[Fy]);c[Fy]+=c[Fx];
}
struct rrrr{int l,r,id;
}line[N];
void solve(){for(int i=1;i<N;i++)fa[i]=l[i]=r[i]=i,vis[i]=0,cnt[i]=0,c[i]=0,uur[i]=0;cin>>n>>k;for(int i=1;i<=n;i++){int x;cin>>x;cnt[x]++;c[x]++;}for(int i=1;i<=N-2;i++){if(cnt[i]&&cnt[i+1])uni(i,i+1);}int lid=0;for(int i=1;i<=N-2;i++){if(cnt[i]){int fi=ga(i);if(!vis[fi]){++lid;line[lid]={l[fi],r[fi],lid};uur[fi]=lid;vis[fi]=1;}}}for(int i=1;i<=N-2;i++)vis[i]=0;int id=0;int	resc=0;int ans=0;for(int i=k;i>=1;i--){if(cnt[i]){int fi=ga(i);if(vis[fi])continue;resc+=c[fi];//	cout<<fi<<":   \n";//	cout<<resc<<" ";int Lid=k+resc-(n-resc);//	cout<<Lid<<" ";if(Lid>line[uur[fi]-1].r){ans=min(Lid,((n+k)%2==(line[uur[fi]].r%2))?line[uur[fi]].r:line[uur[fi]].r+1);//	cout<<ans<<" ";cout<<(n-(k-ans))/2<<"\n";return ;}vis[fi]=1;}}cout<<resc<<"\n";
}
http://www.dtcms.com/a/578156.html

相关文章:

  • 设计网站外网制作一个网站多少钱
  • Select 服务器实战教学:从 Socket 封装到多客户端并发
  • Linux----文件系统
  • 国家允许哪几个网站做顺风车嘉兴网站建设外包公司
  • 新乡建网站个体工商户做网站
  • C# 分部类实现计算器功能
  • 怎样建设个人网站广告赚钱彩票投资理财平台网站建设
  • 代码编辑器
  • C# 中,0.1 在什么情况下不等于 0.1 ?
  • 哪块行业需要网站建设揭阳企业建站系统
  • 目前主流网站开发所用软件建筑工程公司起名
  • 【stm32协议外设篇】- NEO-6M GPS 模块
  • 内网网站开发费用泰安网签查询2023
  • 微算法科技(NASDAQ MLGO)采用动态层次管理和位置聚类技术,修改pBFT算法以提高私有区块链网络运行效率
  • 潍坊网络建站模板wordpress 指定页面nofollow
  • 从Hive on YARN到Hive on Spark
  • 创作写作-李劭卓
  • 论文分享 |Spark-TTS:用解耦语音令牌实现高效可控的语音合成
  • Spark 文本分类实战经验总结
  • 英伟达体系内关于 DGX Spark 的讨论观点整理
  • 模版型网站a站为什么会凉
  • 强软弱虚四种引用
  • [Esterel大师课] Gérard Berry:使用Esterel v7进行同步多时钟电路设计(2013)
  • 有什么学做木工的网站吗WordPress添加下载弹窗
  • 目标检测模型SSD详解与实现
  • 网站弹窗广告代码企业官方网站的作用
  • 网站建设排行山西省确诊病例最新情况
  • 线程池浅谈
  • KubeSphere在线安装单节点K8S集群
  • 北京安慧桥网站建设口碑好的家装前十强