作业介绍
周三晚_刷题班_1_COPY版本
#include<bits/stdc++.h>
const int N =2e5+10;
using namespace std;
B 双重特征: 第一种方法:分三种情况讨论 第二种方法 排序然后判断
C 物资储备: 计算如果一开始不带物资 到每一个位置的物资数量 然后求最小值
D. 多余的数据: 第一种思路:直接暴力枚举 删除每一个数字的结果,然后取所有结果的最好值
第二种思路:分情况讨论 情况1:有0 情况2:全大于0 情况3:全小于0
E. 学生分组: ma[1]-mi[1] + ma[2]-mi[2] +ma[3]-mi[3] +ma[k]-mi[k]
ma[1]+ma[2]+ +ma[k] -(mi[1]+mi[2]+ +mi[k])
F. 波动系数: W[L,R]= G[L]-G[R] =G[R]-G[L] G[L]=G[R]
int main(){
//F. 波动系数
//E
有n个人 需要分成k组 n=10 k=7
1. k*2<=n
2. k*2>n 假设 有x组 是一组一个人
2*(k-x) + x =n
2*k -2*x+x=n ----> x=2*k-n k-x
//D
int n,l,a[210],s=0,mi=1e9,mii;//s是记录原来数组的总和
cin>>n>>l;
for(int i=1;i<=n;i++){//初始化原数组 并且计算数组总和
a[i]=l+i-1;
s+=a[i];
}
for(int i=1;i<=n;i++){//枚举删除第i个数字
int new_s=s-a[i];
if(abs(new_s-s)<mi){
mi=abs(new_s-s);
mii=i;
}
}
cout<<s-a[mii];
//B
char c[10];
cin>>c[1]>>c[2]>>c[3]>>c[4];
sort(c+1,c+1+4);
if(c[1]==c[2]&&c[3]==c[4]&&c[1]!=c[3])
//C
int n,a[100010],b[100010],mi=1e9;//a是原数组
//b是计算如果一开始不带物资到每一个位置的物资数量
cin>>n;
for(int i=1;i<=n;i++) {
cin>>a[i];
b[i]=b[i-1]+a[i];
mi=min(mi,b[i]);
}
if(mi>=0) cout<<0;
else cout<<-mi;
return 0;
}

- 状态
- 已结束
- 题目
- 6
- 开始时间
- 2025-11-19 0:00
- 截止时间
- 2025-12-6 23:59
- 可延期
- 24 小时