ARC163E Non-coprime DAG
给定一张
当
给定点权
求选出带权最长反链。
做法:
根据
于是我们使用二分图模型,费用流即可。
于是
成功输了。
完全输了。
考虑只会选择一个偶数。
其提醒我们思考如何处理选出的数全是奇数的情况。
考虑当
设
给出结论为
考虑若
若
那么我们只要对所有奇数的区间
考虑偶数带来的影响,发现前缀证明不变仅影响到了
那么我们考虑将原本的奇数区间写作
ARC163E Non-coprime DAG
#include<bits/stdc++.h>
#define ll long long
#define N 1000005
int n;
ll a[N];
ll s[N * 2];
int L[N];
inline void sieve(){
for(int i = 2;i < N;++i){
if(!L[i]){
for(int j = 1;j * i < N;++j)
if(!L[i * j])L[i * j] = i;
}
}
}
ll mx;
int main(){
sieve();
scanf("%d",&n);
for(int i = 1;i <= n;++i)
scanf("%lld",&a[i]);
for(int i = 1;i <= n;++i)
if(i & 1){
s[i - L[i] + 1] += a[i];
s[i + L[i]] -= a[i];
}else{
s[i] += a[i];
s[i + 1] -= a[i];
}
for(int i = 2;i <= n * 2;++i)
s[i] = s[i] + s[i - 1],mx = std::max(mx,s[i]);
std::cout<<mx + a[1]<<"\n";
}
本文作者:fhq_treap
本文链接:https://www.cnblogs.com/dixiao/p/15947305.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】