USACO Ski Course Design
来源:互联网 发布:c语言编写安卓 编辑:程序博客网 时间:2024/04/29 16:59
【标签】暴力,贪心
【题意】给定长度为N的序列A,将序列元素A[i]更改k所用的花费为k*k,求更改使得序列最大最小元素的差在17以内且花费最小,求花费。
0<=A[i]<=100, 1<=N<=1000
【分析】
先把A排一下序吧,反正时间多得是......
发现A这么小,那么就直接枚举最大值up(0-100),找到相对应的最小值down=up-17。
然后贪心取最优的情况:
①A数列的最大值变成枚举的最大值
②A数列的其他数p
当p<down时,有p变到down
当down<=p<=up时,不管你事就不变了
当up<p时,把p变到up
然后和当前的最优解进行比较,最终取到一个最小的就OK了
【代码】
/*
{
ID:y2007031
PROG:skidesign
LANG:C++
}
*/
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
using namespace std;
const int MAX=1000000000;
int n,h[1001];
int down,up,res=MAX,sum;
int main(void)
{
freopen("skidesign.in","r",stdin);
freopen("skidesign.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d",&h[i]);
sort(h+1,h+n+1);
for (up=100;up+1;up--)
{
down=up-17;
sum=abs(h[n]-up)*abs(h[n]-up);
for (int i=1;i<n;i++)
{
if (h[i]<down) sum+=(h[i]-down)*(h[i]-down);
if (h[i]>up) sum+=(up-h[i])*(up-h[i]);
}
res=sum<res?sum:res;
}
printf("%d\n",res);
return 0;
}
【总结】找数据范围小的东西作为循环的结构,因为时间复杂度要小啊
【题意】给定长度为N的序列A,将序列元素A[i]更改k所用的花费为k*k,求更改使得序列最大最小元素的差在17以内且花费最小,求花费。
0<=A[i]<=100, 1<=N<=1000
【分析】
先把A排一下序吧,反正时间多得是......
发现A这么小,那么就直接枚举最大值up(0-100),找到相对应的最小值down=up-17。
然后贪心取最优的情况:
①A数列的最大值变成枚举的最大值
②A数列的其他数p
当p<down时,有p变到down
当down<=p<=up时,不管你事就不变了
当up<p时,把p变到up
然后和当前的最优解进行比较,最终取到一个最小的就OK了
【代码】
/*
{
ID:y2007031
PROG:skidesign
LANG:C++
}
*/
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
using namespace std;
const int MAX=1000000000;
int n,h[1001];
int down,up,res=MAX,sum;
int main(void)
{
freopen("skidesign.in","r",stdin);
freopen("skidesign.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d",&h[i]);
sort(h+1,h+n+1);
for (up=100;up+1;up--)
{
down=up-17;
sum=abs(h[n]-up)*abs(h[n]-up);
for (int i=1;i<n;i++)
{
if (h[i]<down) sum+=(h[i]-down)*(h[i]-down);
if (h[i]>up) sum+=(up-h[i])*(up-h[i]);
}
res=sum<res?sum:res;
}
printf("%d\n",res);
return 0;
}
【总结】找数据范围小的东西作为循环的结构,因为时间复杂度要小啊
0 0
- USACO Ski Course Design
- usaco Ski Course Design
- usaco Ski Course Design
- USACO 1.3 Ski Course Design
- USACO 1.3 Ski Course Design
- USACO 1.3 Ski Course Design
- USACO 1.3-Ski Course Design
- usaco 1.3 Ski Course Design
- USACO 1.3 Ski Course Design
- USACO 1.4 Ski Course Design
- USACO Ski Course Design 解题报告
- USACO Section 1.3 Ski Course Design
- USACO 1.3 Ski Course Design (枚举)
- USACO 1.3.6 Ski Course Design
- USACO Ski Course Design(枚举)
- USACO 1.3 Ski Course Design 转化
- USACO Ski Course Design 解题日志
- USACO 1.3 Ski Course Design <枚举>
- 内核函数mmap的实现原理,机制
- Android中向drawable图片资源命名须知
- JVM性能调优
- 今天给大家分享ios中的夜间模式(通知中心)
- 【Android实战】实现新浪微博第三方登录获取用户信息
- USACO Ski Course Design
- Codeforces Round #291 (Div. 2)D.R2D2 and Droid Army——RMQ+二分
- hdoj1007(最近距离点对)Quoit Design
- AOJ 0121 Seven Puzzle (bfs)
- bzoj 1432: [ZJOI2009]Function
- 【JavaScript】JavaScript基础-变量、运算符与控制语句
- Java—Java多线程中join方法的理解
- F5负载均衡器 应用交付网络
- atitit.orm的缺点与orm框架市场占有率,选型attilax总结