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

网站如何做入支付接口站长之家权重

网站如何做入支付接口,站长之家权重,扬州网站建设文章,创业做网站开发传送门:https://www.luogu.com.cn/problem/P12543 题目大意:给定 n n n 个 [ 0 , 50000 ) [0,50000) [0,50000) 的整数 v i v_i vi​,你每次要选择一个下标集合和一个数 x x x,将这个下标集合中的数全部加上 x x x&#xff…

传送门:https://www.luogu.com.cn/problem/P12543

题目大意:给定 n n n [ 0 , 50000 ) [0,50000) [0,50000) 的整数 v i v_i vi,你每次要选择一个下标集合和一个数 x x x,将这个下标集合中的数全部加上 x x x,并对 50000 50000 50000 取模。

定义当前的分数为两两数在环上的距离之和,也就是 ∑ 1 ≤ i < j ≤ n min ⁡ ⁡ ( ∣ v i − v j ∣ , 50000 − ∣ v i − v j ∣ ) \sum_{1 \le i < j \le n} \min⁡(|v_i-v_j|,50000-|v_i-v_j|) 1i<jnmin(vivj,50000vivj)

你要通过若干次操作来最大化分数,并且每次操作后的分数相比操作前都要严格不降。
在这里插入图片描述
如图,这里我将所有的数视为一个长 50000 50000 50000 的环上的点,这与原题中的直线倾角有所不同(例如原题中两条垂直的直线在我这里就是两个对径点),请注意;环上两点的距离实际上也就是它们之间劣弧的长度。

这是今年 APIO 三个题里相对简单的一个,达到最优解的方法不止一种,接下来直接介绍一种容易理解且容易证明的方法:

我们称两个数“对称”,若它们的差是 25000 25000 25000,也就是说它们在环上互为对径点。

容易发现,对于一对对称点以及任意的第三个点来说,无论它们的位置如何,产生的贡献总是固定的。如下图可见第三个点到这一对点的距离之和一定等于 25000 25000 25000
在这里插入图片描述
如果两个点已经对称了,且你不打算破坏这一对称关系,那么它们产生的总贡献也就固定了,后续操作就可以直接删掉它们。

那么我们有结论:当所有的 n n n 个点两两对称时,价值达到最大。特别地, n n n 是奇数时会有一个点孤立出来。如下图所示。
在这里插入图片描述
利用上面的结论可知,这个最大值其实就是把 ⌈ n 2 ⌉ \lceil \frac{n}{2} \rceil 2n 个点放在 0 0 0 ⌊ n 2 ⌋ \lfloor \frac{n}{2} \rfloor 2n 个点放在 25000 25000 25000 的答案,即 25000 × ⌈ n 2 ⌉ × ⌊ n 2 ⌋ 25000 \times \lceil \frac{n}{2} \rceil \times \lfloor \frac{n}{2} \rfloor 25000×2n×2n;但其实没有必要非得这么放,只要随便搞出 ⌊ n 2 ⌋ \lfloor \frac{n}{2} \rfloor 2n 对两两对称的点就行了。

结论的证明其实也就是具体的构造过程,考虑调整法:假设当前的方案不是满足所有点两两对称,就将其调整为这一状态,并且过程中保持总答案始终不下降即可。

假设已经去除所有两两配对的点,目前还剩下至少两个点没有配对。随便选择一个点,如果它的对称位置上已经有其他尚未配对的点,就直接配对即可;否则,以它与它的对称位置连接形成的直径将圆划分为两个半圆,统计一下这两个半圆内各自的点数。然后选择一个点数较少的半圆(若相等则任意选一个),将当前点向这个半圆的方向移动。(如下方图片的左图所示。)

容易看出,在它本身及它的对称位置越过其他点之前,这样的移动带来的价值增量是:两个半圆的点数之差*移动距离,显然总价值一定是不降的。

如果移动过程中它自己越过了某个其他点,这只会使得点数较少的半圆进一步减少,点数较多的半圆进一步增加,因此继续移动仍然是可以的,实际上我们根本不需要处理这种情况。(如下方图片的中图所示。)

如果移动过程中它的对称位置遇到了某个其他点,就相当于已经找到了当前点的配对目标,我们直接停下来即可。注意,虽然继续移动可能依然能使答案上升,但我们的目标只是将点配对而已,因此没必要继续移动了。(如下方图片的右图所示。)
在这里插入图片描述
然后就简单了,我们只需要用 set 维护当前还没配对的点,用树状数组维护区间内剩余点的个数,然后直接在 set 上查询前驱/后继来找到当前点的配对目标,调用一次 rotate 函数即可。总的时间复杂度为 O ( n log ⁡ n ) O(n \log n ) O(nlogn),调用 rotate 的总开销只有不超过 n 2 \frac{n}{2} 2n,远远不到题目限制的 2 × 10 6 2\times 10^6 2×106。(说起来为什么要开这么大的调用开销限制?)

代码如下,为了减少分类讨论我把整个环复制了三份,查询时在中间一份进行,这样可以避免把环断成两个区间之类的讨论细节。

#include<bits/stdc++.h>
void rotate(std::vector<int> t, int x);
#define li long long
#define pii pair<int,int>
#define fi first
#define se second
#define mp make_pair
using namespace std;
int t[150010],m = 150000;
#define opp(x) (((x) + 25000) % 50000)
inline void ins(int x){++x;for(int i = x;i <= m;i += i & -i) ++t[i];
}
inline void del(int x){++x;for(int i = x;i <= m;i += i & -i) --t[i];
}
inline int qry(int x){++x;int ans = 0;for(int i = x;i;i -= i & -i) ans += t[i];return ans;	
}
inline int cx(int l,int r){return qry(r) - qry(l - 1);
}
set<pii> s;
void ins_a_node(int x,int id){x = (x % 50000 + 50000) % 50000;s.insert(mp(x,id));s.insert(mp(x + 50000,id));s.insert(mp(x + 100000,id));ins(x);ins(x + 50000);ins(x + 100000);
}
void del_a_node(int x,int id){x = (x % 50000 + 50000) % 50000;s.erase(mp(x,id));s.erase(mp(x + 50000,id));s.erase(mp(x + 100000,id));del(x);del(x + 50000);del(x + 100000);
}
void energy(int n, std::vector<int> v){vector<int> vis(n,0);s.clear(); for(int i = 0;i < n;++i){ins_a_node(v[i],i);} int cnt = 0;for(int i = 0;i < n;++i) if(!vis[i]){vis[i] = 1;del_a_node(v[i],i);auto it = s.lower_bound(mp(opp(v[i]), -1));if(it != s.end() && it->fi == opp(v[i])){ // opposite node existsint j = it->se;vis[j] = 1;del_a_node(v[j],j);}else{int x = v[i] + 50000;int oppx = opp(v[i]) + 50000;int ql = cx(x - 24999,x - 1);int qr = cx(x + 1,x + 24999);int j = -1;if(ql > qr){ // turn rightj = (s.lower_bound(mp(oppx, -1)))->se;}else{// turn leftj = (--s.lower_bound(mp(oppx, -1)))->se;}// turn i to opp(j)vis[j] = 1; del_a_node(v[j],j);rotate({i}, (opp(v[j]) - v[i] + 50000) % 50000);}cnt += 2; if(cnt >= n - 1) break;}for(int i = 0;i < n;++i) if(!vis[i]) del_a_node(v[i],i); // clear
}
http://www.dtcms.com/wzjs/7022.html

相关文章:

  • 德国 网站建设百度竞价被点击软件盯上
  • 郑州网站建设哪家有同城推广
  • 好单库如何做网站新闻头条今日要闻军事
  • 建设网站硬件南昌做seo的公司有哪些
  • 网上做医生哪个网站好今日热点新闻15条
  • 北京十大平面设计公司郑州seo外包阿亮
  • 苏州的互联网企业江西网络推广seo
  • 网站怎么增加页面收录新闻源软文推广平台
  • 国际网站模板可以免费发广告的网站有哪些
  • 惠州专业做网站搜什么关键词能搜到好片
  • 建设网站优点今年疫情最新消息
  • 公司建设一个网站需要多少钱seo网络营销
  • 郑州建站模板厂家南昌seo快速排名
  • 杭州做网站的公司seo监控系统
  • 公墓网站建设seo 网站优化推广排名教程
  • wordpress 微网站谷歌搜索引擎免费入口
  • 柳州市党风廉政建设网站今日热搜榜排名最新
  • 搭建个人网站的两种方法高质量外链
  • 公司宣传一般建的是网页还是网站宁德市市长
  • 女装网站功能的建设什么是淘宝seo
  • 电脑上做简单的网站百度推广课程
  • 服务器搭建vps教程深圳优化seo
  • 自助建设手机网站市场推广方案模板
  • 做页面设计的网站做网站优化哪家公司好
  • 外贸网站建设公司深圳aso优化
  • 小程序开发费用明细表湘潭seo培训
  • 网站内容建设策略中国十大企业培训机构排名
  • 网站制作测试范围行者seo
  • wordpress手机网站模版磁力链最好用的搜索引擎
  • 谁有人和兽做的网站?免费外链工具