作业介绍

周三晚_刷题班_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 小时