首页 > 其他分享 >CF1372D Omkar and Circle

CF1372D Omkar and Circle

时间:2022-11-09 09:23:18浏览次数:64  
标签:12 int long Omkar Circle CF1372D

题目传送门

思路

这是一道非常简单的 \(\mathcal *2100\)。

既然他样例给的那么简单,说明这是一道结论题。

于是我们可以手玩几组数据试试。

例如 \(3,5,9,8,12\) 这组,发现最优方案是选择 \(5,9,12\)。假设我们从 \(9\) 开始断环成链,那么变成 \(9,8,12,3,5\)。\(9,12,5\) 刚好每两个之间都相差 \(1\)。

于是我们可以总结出一个规律:从某个点开始断环成链,然后隔一个点跳,找出最大值。

于是前缀和后缀和乱搞即可。

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
int const N=1e6+10;
int a[N],sum1[N],sum2[N],Sum1[N],Sum2[N];
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int n;cin>>n;
    for (int i=1;i<=n;++i) cin>>a[i];
    for (int i=1;i<=n;++i){
        sum1[i]=sum1[i-1],sum2[i]=sum2[i-1];
        if (i&1) sum1[i]+=a[i];else sum2[i]+=a[i];
    }
    for (int i=n;i;--i){
        Sum1[i]=Sum1[i+1],Sum2[i]=Sum2[i+1];
        if (i&1) Sum1[i]+=a[i];else Sum2[i]+=a[i];
    }
    int ans=0;
    for (int i=1;i<=n;++i)
        if (i&1) ans=max(ans,sum1[i]+Sum2[i+1]);
        else ans=max(ans,sum2[i]+Sum1[i+1]);
    cout<<ans<<'\n';
    return 0;
}

标签:12,int,long,Omkar,Circle,CF1372D
From: https://www.cnblogs.com/tx-lcy/p/16872445.html

相关文章

  • JAVA 定义一个Shape接口,该接口中只有一个抽象方法getArea(),该方法无参数,返回值类型为
    (1)定义一个Shape接口,该接口中只有一个抽象方法getArea(),该方法无参数,返回值类型为double型;(2)定义一个圆类Circle,满足以下条件:a)Circle类实现Shape接口;b)定义Circle......
  • 【Java[类与对象]】7-2 Circle类
    a定义圆类Circle,其中包括:成员变量定义privateintradius方法定义包括下列要求定义无参构造方法,给radius赋值为2,并添加语句System.out.println("thisisaconstruc......
  • CF859G Circle of Numbers 解题报告
    CF859GCircleofNumbers解题报告:更好的阅读体验题意有一个长度为\(n\)的圆环,每个整点位置都有一个整数\(\in\{0,1\}\),你可以选择一个\(c\midn\)以及一个\(d<c......
  • CF963E Circles of Waiting(高斯消元,主元法)
    CF963ECirclesofWaiting平面直角坐标系上有一个点,开始在\((0,0)\),每秒钟这个点都会随机移动:如果它在\((x,y)\),下一秒它去\(4\)个方向的概率为\(p_0,p_1,p_2,......
  • 算法判断矩形和圆形相交 OBB & Circle
        转自:https://www.zhihu.com/question/24251545......
  • 3.14 circle
    ★实验任务最近silchen又发现了一个关于圆的有趣的问题:在圆上有2n个不同的点,按顺序排列,n=2的时候如图:silchen用m条线段把这些点连接了起来(每个点保证只连一条线段),现......
  • [P3445] [POI2006] TAN - Dancing in Circles
    神仙题目!!!感谢程老师完成了几乎所有的证明过程。首先注意到模数是\(2005\),去掉模数似乎很不可做,所以大胆猜测正解依赖模数。不难发现,把\(n\)个人分成\(k_1\)个大小为......
  • 2022牛客暑假多校01B[Spirit Circle Observation]
    2022牛客暑假多校01B[SpiritCircleObservation]大致题意给出一个长度为\(n\)的字符串\(s\),求有多少个子串对\((A,B)\),满足\(1.|A|=|B|\)\(2.\overline{A}+1=......
  • Calling Circles UVA - 247
    原题链接思路把最短路换成是否可达即可代码#include<iostream>#include<cstdio>#include<cstring>#include<unordered_map>#include<vector>usingnamespace......