poj解题报告——2313
来源:互联网 发布:男生认妹妹心理知乎 编辑:程序博客网 时间:2024/05/17 02:54
开始假设b[i] = a[i](1 <= i <= n),显然b[i]对于最后最优值产生影响的有三项|a[i]-b[i]|,|b[i]-b[i-1]|,|b[i]-b[i+1]|, 反应在数轴上要使得这三项最小,那么取值应该是这三数居中的那个,.若存在i使 b[i] < 或者 > Mid(b[i - 1], a[i], b[i + 1]) (2 <= i <= n - 1), mid(x, y, z)表示x, y, z中数值居中间的数}这个画下数轴就知道了,则b[i]=mid(b[i - 1], a[i], b[i + 1]),直到没有以上所说的i,所得的b数列即为所求,按公式求sum, 输出。
#include<cstdio>#include<cmath>#include<iostream>using namespace std;int a[105],b[105],n;int getMid(int a,int b,int c){int min=a,max=a;min=(min<b?min:b);min=(min<c?min:c);max=(max>b?max:b);max=(max>c?max:c);return a+b+c-min-max;}int main(){int i;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);b[i]=a[i];}for(i=1;i<n-1;i++)b[i]=getMid(b[i-1],a[i],b[i+1]); int ans=0;for(i=0;i<n;i++)ans+=abs(a[i]-b[i]);for(i=0;i<n-1;i++)ans+=abs(b[i]-b[i+1]);printf("%d\n",ans);return 0;}
0 1
- poj解题报告——2313
- POJ 1088 滑雪——解题报告
- POJ 1047——解题报告
- poj解题报告——poj1006
- poj解题报告——1032
- poj解题报告——1061
- poj解题报告——1450
- poj解题报告——1002
- poj解题报告——2109
- poj解题报告——1218
- poj解题报告——1250
- poj解题报告——1012
- poj解题报告——3299
- poj解题报告——2209
- poj解题报告——2406
- poj解题报告——2242
- poj解题报告——1401
- poj解题报告——1328
- zoj1091(深度搜索
- iOS开发C语言基础注意事項 连载二
- Deviceiocontrol操作异常时,关于getlasterror的错误代码解析
- Spring 注释 @Autowired 和@Resource 的区别
- jQuery中的.bind()、.live()和.delegate()之间区别分析(转)
- poj解题报告——2313
- 51的DATA,IDATA,XDATA,PDATA区别
- Java printf()占位符
- Mysql错误及处理总结
- C语言中的函数指针
- C#判断一个类实现了一个接口
- Python webservice 得到天气状态
- MFC中 如何判断一个字符串是否是有效的目录 或盘符
- xss突破长度限制的搜集