专栏文章
8.28测试总结
算法·理论参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mio2rkjw
- 此快照首次捕获于
- 2025/12/02 12:25 3 个月前
- 此快照最后确认于
- 2025/12/02 12:25 3 个月前
测试总结
得分:
应得:
考点:模拟
错误思路:模拟能还就还,否则就过,收了钱以后再试
正确思路:模拟,统一还
完整思路:
CPP#include<bits/stdc++.h>
using namespace std;
long long n,a[100005],sum[100005];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
long long id=0,ans=0;
bool q=0;
for(int i=1;i<=n;i++)
{
sum[i]=sum[i-1]+a[i];
ans++;
if(a[i]<0&&q==0)
{
q=1;
id=i;
}
else if(sum[i]>-1&&q==1)
{
q=0;
ans+=(i-id)*2;
}
}
cout<<ans;
return 0;
}
测试总结
得分:
应得:
考点:
错误原因:没有判断,和数组开小了(痛失)
思路:用质数筛筛出以内的质数,枚举
完整代码:
CPP#include<bits/stdc++.h>
using namespace std;
long long n,a[100005],sum[100005];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
long long id=0,ans=0;
bool q=0;
for(int i=1;i<=n;i++)
{
sum[i]=sum[i-1]+a[i];
ans++;
if(a[i]<0&&q==0)
{
q=1;
id=i;
}
else if(sum[i]>-1&&q==1)
{
q=0;
ans+=(i-id)*2;
}
}
cout<<ans;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...