CF-394D Physical Education and Buns

题意:

在给定的序列中,改变某些数的值,使他们形成递增的等差数列,求当个数值改变的量尽可能小(k) 输出k,并且输出等差数列首项和公差。

分析:

若形成等差数列 即有:a[n]=a[0]+n*d;-->a[0]=a[n]-n*d;现在把每个值代进去,发现a[0]的值是不一样的。但是要形成等差数列,a[0]必定会一样。所以必须改变每个a[0]*.

从中我们可以选出一个最大的,和一个最小的。发现满足当个值该变量最少,正好是|Max-Min|所以刚好去(Max-Min)/2是最佳选择。故需要枚举公差d,选出最小的改变量k

而公差的范围不会很大,故枚举可以得到答案。另外,很明显d与k的函数关系具有U型关系,这就可以三分查找,得到k了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std ;
const int N=20005;
int a[1005];
int main()
{
	int i,j,n;
	int ans,A,d,Max,Min;
    while(cin>>n){
		for(i=0;i<n;i++){
			cin>>a[i];
		}
		sort(a,a+n);
		ans=N;
		for(i=0;i<N;i++){
			Max=-N;
			Min=N;
			for(j=0;j<n;j++){
				Max=max(Max,a[j]-i*j);
				Min=min(Min,a[j]-i*j);
			}
			if((Max-Min+1)/2<ans){
				ans=(Max-Min+1)/2;
				A=Min+ans;
				d=i;
			}		
		}
		cout<<ans<<"\n"<<A<<" "<<d<<endl;
    }
 	return 0 ;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
buns餐厅的HTML美食展示页面是一个通过HTML编写的网页,旨在向用户展示餐厅的美食菜单和精美的食物图片。这个页面设计简洁明了,以用户友好的方式呈现美食的信息。 页面的顶部是一个鲜艳的LOGO,增强了餐厅品牌的识别度。下方则是餐厅的导航栏,包括主页、菜单、特别优惠和联系方式等选项,以帮助用户进行导航。用户可以随时点击这些选项,快速进入所需页面。 餐厅的主页以特色菜肴的图片轮播展示作为页面的焦点。通过这种设计,餐厅能够吸引用户的注意力,并激发他们的食欲。在图片下方,每个特色菜肴都标有其名称和简要介绍,以便用户了解更多相关信息。 在菜单页面上,buns餐厅将美食菜单分为早餐、午餐和晚餐等不同的菜单部分。这些部分包含了各种各样的美食项目,并提供了菜品的介绍和价格。用户可以方便地阅读和浏览不同菜单,了解餐厅所提供的美食选择。 特别优惠页面展示了餐厅的优惠活动,例如季节性菜单、特殊节日的庆祝活动等。通过这个页面,餐厅能够吸引顾客,为他们提供更多理由来就餐。 联系方式页面提供了餐厅的地址、电话号码和电子邮箱等联系方式。用户可以通过这些方式与餐厅进行沟通和预订,提高了用户的便利性。 总之,buns餐厅的HTML美食展示页面通过清晰的页面布局、精美的图片展示和详细的菜单介绍,为用户提供了一个直观且便捷的美食展示平台。这个页面不仅向用户展示了餐厅的特色美食,还提供了各种功能和信息,以满足用户的需求和方便用户的就餐体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值