今日普及组月赛求T4
  • 板块学术版
  • 楼主Pink_Cut_Tree
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/7/22 17:50
  • 上次更新2023/11/3 08:13:37
查看原帖
今日普及组月赛求T4
793625
Pink_Cut_Tree楼主2023/7/22 17:50

暴搜,只求部分分,望从 88分 提到 4040 分。

#include<bits/stdc++.h>
using namespace std;
int n,m,light[100006],ans,maxx=-1e9,minn=1e9;
void dfs(int x,int cnt,int big,int small){
	if(cnt>=m){
		ans=min(ans,big-small);
		return;
	}
	if(x>n){
		return;
	}
	dfs(x+2,cnt+1,max(big,light[x]),min(small,light[x]));
	dfs(x+1,cnt,big,small);
}
bool flag;
int main(){
	ios::sync_with_stdio(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>light[i];
		if(light[i]<light[i-1]){
			flag=1;
		}
	}
	if(2*m-1==n||flag==0){
		for(int i=1;i<=n;i+=2){
			maxx=max(light[i],maxx);
			minn=min(light[i],minn);
		}
		cout<<maxx-minn; return 0;
	}
	dfs(1,0,-1e9,1e9);
	cout<<ans;
return 0;	
}  
2023/7/22 17:50
加载中...