CF895A题解
本题还是比较简单的,所以直接讲思路。
分析
由于保证了各部分的和,所以要想让差尽可能小,必须让两部分尽可能的接近 ,可以想到用三重循环来枚举。我们可以随时记录两大块之差,依次比较即可。
Code
#include<bits/stdc++.h>
using namespace std;
int a[400];
int n,ans=400,s;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
if(n==1)//特判
{
cout<<360;
return 0;
}
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)//前两重循环枚举一个人分到的披萨
{
s=0;
for(int k=i;k<=j;k++)
s+=a[k],ans=min(ans,abs(s-180));//比较
}
cout<<ans*2;//由于只算了一个人,所以最后要乘上2
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具