【Gym 100947C】Rotate It !!
分两类,奇数和偶数的,用隔项前缀和算一下。
#include <algorithm> #include <iostream> #define N 10005 using namespace std; long long a,t,n,s[N],ans; int main(){ cin>>t; while(t--){ cin>>n>>s[1]; for(int i=2;i<=n;i++){ cin>>a; s[i]=a+s[i-2]; } if(n&1){ ans=s[n]; for(int i=1;i<n;i++) ans=max(ans,s[i]-s[i-1]+(i&1?s[n-1]:s[n])); } else ans=max(s[n-1],s[n]); cout<<ans<<endl; } }
后话:今天因为ans的默认值写成max(s[n-1],s[n]),刚开始没找到这个错,又发现只有一个负数会输出0,特判后又wa,我就把ans默认值改为s[1](显然错啊,但是我开始了喜剧性地输出调试:我输入忘记n,然后一直奇怪为什么输出奇怪的值,不过为什么两个%lld输出两个ll的值和单独输出居然不一样,后来我改cin又wa,把局部变量放外面又wa。直到把ans初始为很大的负数。真是智障。其实现在很容易想清楚,就用s[n]作为默认值,然后奇数偶数都更新一下就好。(三个月前做过这题的,唉)
┆凉┆暖┆降┆等┆幸┆我┆我┆里┆将┆ ┆可┆有┆谦┆戮┆那┆ ┆大┆始┆ ┆然┆
┆薄┆一┆临┆你┆的┆还┆没┆ ┆来┆ ┆是┆来┆逊┆没┆些┆ ┆雁┆终┆ ┆而┆
┆ ┆暖┆ ┆如┆地┆站┆有┆ ┆也┆ ┆我┆ ┆的┆有┆精┆ ┆也┆没┆ ┆你┆
┆ ┆这┆ ┆试┆方┆在┆逃┆ ┆会┆ ┆在┆ ┆清┆来┆准┆ ┆没┆有┆ ┆没┆
┆ ┆生┆ ┆探┆ ┆最┆避┆ ┆在┆ ┆这┆ ┆晨┆ ┆的┆ ┆有┆来┆ ┆有┆
┆ ┆之┆ ┆般┆ ┆不┆ ┆ ┆这┆ ┆里┆ ┆没┆ ┆杀┆ ┆来┆ ┆ ┆来┆
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· 开发者新选择:用DeepSeek实现Cursor级智能编程的免费方案
· 【译】.NET 升级助手现在支持升级到集中式包管理
· 独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统
· 并发编程 - 线程同步(二)