n<=100个数字,选最少的个数使“误差”少于E并输出选该个数下最小的“误差”。误差定义:

对于任何测量结果子集,每一个非此子集中的结果都会产生误差.总误差是所有测量结果的误差之和.更明确第说, 对于每一个和所有s_j都不同的i: * 如果 i 小于 s_1, 误差是: 2 * | M_i - M_(s_1) | * 如果i在s_j和s_(j+1)之间,误差是: | 2 * M_i - Sum(s_j, s_(j+1)) | 注:Sum(x, y) = M_x + M_y; (M_x 和 M_y 之和) * 如果i大于s_K,误差为: 2 * | M_i - M_(s_K) |

n很小,来dp吧!f[i][j]--前i个数,最后选i,共选j个最小误差,f[i][j]=f[k][j-1]-k到n对k的误差+k到i对(k,i)的误差+i到n对i的误差。

n^4,那坨长长的怎么破?预处理啦!变n^3。

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<math.h>
 5 //#include<iostream>
 6 using namespace std;
 7
 8 int n,E;
 9 #define maxn 111
10 int suf[maxn],pre[maxn],med[maxn][maxn],f[maxn][maxn],a[maxn];
11 const int inf=0x3f3f3f3f;
12 int main()
13 {
14     scanf("%d%d",&n,&E);
15     for (int i=1;i<=n;i++) scanf("%d",&a[i]);
16     for (int i=1;i<=n;i++)
17     {
18         pre[i]=0;
19         for (int j=1;j<i;j++)
20             pre[i]+=2*fabs(a[j]-a[i]);
21     }
22     for (int i=n;i>=1;i--)
23     {
24         suf[i]=0;
25         for (int j=i+1;j<=n;j++)
26             suf[i]+=2*fabs(a[j]-a[i]);
27     }
28     for (int i=1;i<=n;i++)
29         for (int j=i;j<=n;j++)
30         {
31             med[i][j]=0;
32             for (int k=i+1;k<j;k++)
33                 med[i][j]+=fabs(2*a[k]-a[i]-a[j]);
34         }
35     int ans=0,lest=inf;
36     for (int i=1;i<=n;i++)
37     {
38         f[i][1]=pre[i]+suf[i];
39         if (f[i][1]<=E) {ans=1;lest=min(lest,f[i][1]);}
40     }
41     for (int j=2;!ans && j<=n;j++)
42         for (int i=1;i<=n;i++)
43         {
44             f[i][j]=inf;
45             for (int k=1;k<i;k++)
46                 f[i][j]=min(f[i][j],f[k][j-1]-suf[k]+suf[i]+med[k][i]);
47             if (f[i][j]<=E) {ans=j;lest=min(lest,f[i][j]);}
48         }
49     printf("%d %d\n",ans,lest);
50     return 0;
51 }

View Code

转载于:https://www.cnblogs.com/Blue233333/p/7454989.html

BZOJ1575: [Usaco2009 Jan]气象牛Baric相关推荐

  1. 1574: [Usaco2009 Jan]地震损坏Damage

    1574: [Usaco2009 Jan]地震损坏Damage Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 425  Solved: 232 [Su ...

  2. 10.31纪中DAY3_公牛和母牛 气象牛 轻轨 设计

    noip2019-counting down three weeks 纪中day3 (头发日益稀少) 10.31纪中B组notes 公牛和母牛(USACO FEB09 Problem 'bullcow ...

  3. bzoj3396[Usaco2009 Jan]Total flow 水流*

    bzoj3396[Usaco2009 Jan]Total flow 水流 题意: 求无环图的最大流.边数≤700. 题解: 管它有没有环.注意本题的节点标号既有大写字母,也有小写字母. 代码: 1 # ...

  4. bzoj 3396: [Usaco2009 Jan]Total flow 水流(最大流)

    3396: [Usaco2009 Jan]Total flow 水流 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 615  Solved: 295 ...

  5. bzoj 3394: [Usaco2009 Jan]Best Spot 最佳牧场(floyd)

    3394: [Usaco2009 Jan]Best Spot 最佳牧场 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 98  Solved: 76 [ ...

  6. BZOJ1576: [Usaco2009 Jan]安全路经Travel(树链剖分)

    Description Input * 第一行: 两个空格分开的数, N和M * 第2..M+1行: 三个空格分开的数a_i, b_i,和t_i Output * 第1..N-1行: 第i行包含一个数 ...

  7. P1574: [Usaco2009 Jan]地震损坏Damage

    卧槽卧槽卧槽,这道水题竟然让我WA了两遍!!评测系统卡了然后手贱又提交了一次,然后就悲催了呜呜.. 把与不能回家但牛棚完好的牛相邻的牛棚赋值为不能走(false),可以证明,如果该牛回不了家,则周围一 ...

  8. 【BZOJ】1574: [Usaco2009 Jan]地震损坏Damage

    [算法]搜索 [题意]给定无向图,现在可能有一些点已经被删除,只给出信息是c个点不能到达结点1,求最少的不能到达结点1的个数(含已删除点). [题解] 真是一道奥妙重重的题目. 每个点不能到达结点1, ...

  9. BZOJ3393 [Usaco2009 Jan]Laserphones 激光通讯

    第一次知道..原来spfa还可以这样写...用pq... 只需要直接求拐点即可,数据小想怎么搞就怎么搞 (话说怎么这么裸的最短路都写不出来了233) 1 /********************** ...

最新文章

  1. RDKit toolkit实战二:Generating Similarity Maps Using Fingerprints
  2. 如何把字符串类型转换成整型?
  3. Android建造者模式初探(Toast工具类的进一步封装)
  4. python importlib_metadata_Python 动态导入对象,importlib.import_module()的使用方法
  5. js 原型prototype继承模式
  6. java tree类子项的添加和删除_使用Java实现二叉树的添加,删除,获取以及遍历...
  7. 微脉java面试,微脉医疗开放平台
  8. django from组件 实现增加 删除 编辑(推荐用法)
  9. [react] react的状态提升是什么?使用场景有哪些
  10. 阿里云MVP乔帮主:五大类型负载均衡的原理场景详解(文末赠书)
  11. AndroidStudio实用快捷键组合
  12. yolov5+deepsort车辆跟踪、计数、测速、碰撞检测、违规驶入检测(课程设计)
  13. 【高效生活】如何将csf格式文件转化成其它格式
  14. 阿里再度联手数据港合建数据中心 服务金额至少40亿
  15. 7-4 韩信点兵 (10 分)
  16. 用数学语言说我爱你怎么说_你会说我的语言吗
  17. 刚毕业不久就被裁了,然后就一直没上班了,谈谈体验吧!
  18. 2D坐标系与3D坐标系的相互转换--python实现
  19. PHP 魔术常量,__LINE__,__FILE__,__DIR__等等8个常用魔术常量
  20. 数据分析(入门)纳米学位_tensorflow纳米级程序对机器学习入门的回顾

热门文章

  1. ViewPager+Fragment实现TabHost(可复用的类)
  2. Jquery Ajax时 error处理 之 parsererror
  3. const与readonly,析构函数,虚拟方法
  4. c#书写规范之---注释
  5. [转] 一个OpenSource的评价图
  6. 洛谷 P4475 巧克力王国 解题报告
  7. @EnableScheduling和@Scheduled的使用(初级)
  8. python3使用requests模块完成get/post/代理/自定义header/自定义Cookie
  9. Java学习笔记:内部类/匿名内部类的全面介绍
  10. Google Chrome的CSS hack写法