BC的界面貌似变得很漂亮的样子(暴露了多久没打BC了。。。)
写在之前:
这学期遇到了点事情,所以心情很受影响,代码也没怎么敲,课程本来就紧,再加上转专业的一堆破事,所以有些不爽...
影响心情的事情虽然没有被完全解决,不过暂时被冻结了, 大家都冷静一段时间,冷静下来,也就自然而然得解决了。
代码有一阵没敲了,脑子也开始生锈了呢....
 A:买团体票,有不同的规则,问哪家比较合适,水。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
int main()
{
      int m,n,i;
      int a[120],b[120];
      int ans=0;
      int cost[120];
while (scanf("%d %d",&n,&m)!=EOF)
{
         memset(a,0,sizeof(a));
         memset(b,0,sizeof(b));
         memset(cost,0,sizeof(cost));
        for (int i=1;i<=m;i++)
            scanf("%d %d",&a[i],&b[i]);
        for (int i=1;i<=m;i++)
        {
            cost[i]=n/a[i]*b[i];
            if (n %a[i]!=0)
                cost[i]+=b[i];
        }
        ans=999999999;
        for (int i=1;i<=m;i++)
            if (cost[i]<ans)
             ans=cost[i];
        printf("%d\n",ans);
}
return 0;
}

B:要求连续W个堆的高度都为H,问最少调整多少个块,如果不能得到就-1.
   容易想到,如果块的总数不小于W*H,问题一定有解。
   我们想要找到连续的W个堆,使它最接近最优值。
如果每个堆的高度为h[i]
通过数据发现,当W=4,H=6时,6 6 6 6 >6 6 6 7 > 4 4 8 8 >4 4 4 5 >4 4 4 4
我们容易发现,一段连续区间的好坏是由(h[i]-H)和abs(h[i]-H)共同决定的

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
int main()
{    int n,W,H;
     int h[50001];
     int sum;
     int now;
     int m;
     int ans;
while (scanf("%d %d %d",&n,&W,&H)!=EOF)
{   sum=0;
         for (int i=1;i<=n;i++)
         {
            scanf("%d",&h[i]);
            sum=sum+h[i];
         }
         if (sum<W*H)
         {
            printf("-1\n");
            continue;
         }
          now=0;
          m=99999999;
          int cost=0;
          int ave;
         for (int i=1;i<=W;i++)
         {
            now=now+(h[i]-H);
            cost=cost+abs(h[i]-H);
         }
            ave=(abs(now)+cost)/2;
         if (ave<m)
         {
             m=ave;
             ans=1;
         }
         for (int i=W+1;i<=n;i++)
         {
             now=now+h[i]-h[i-W];
             cost=cost+abs(h[i]-H)-abs(h[i-W]-H);
             ave=(abs(now)+cost)/2;
             if (ave<m)
             {
                 m=ave;
                 ans=i;
             }
         }
         printf("%d\n",m);
}
return 0;
}

转载于:https://www.cnblogs.com/111qqz/p/4360103.html

20150321BC相关推荐

最新文章

  1. TensorFlow2.0正式版发布,极简安装TF2.0(CPUGPU)教程
  2. 上万家物联网公司会被“政策死”吗
  3. RSA加密原理:非对称加密鼻祖
  4. 区块链浏览器_什么是区块链浏览器?
  5. 第9篇:Flowable-Modeler集成以及集成代码下载
  6. python可以构建sem模型_python-分组的熊猫DataFrames:如何将scipy.stats.sem应用于它们?...
  7. 在Ubuntu X64上编译Hadoop
  8. CSipsimple最新版本编译
  9. ArcGIs创建企业级数据库
  10. 5G新型调制技术FBMC【5G】
  11. 【系统之家抢先发布】2011年10月最新GhostXP_SP3 PCOS技术快速装机版v6.5
  12. 开启Apache一直出现443端口被占用
  13. linux误删分区表,恢复被误删的Linux分区表
  14. SWUN 1437 - 我是一个粉刷匠
  15. HiveSQL percentile和percentile_approx 函数计算千分数
  16. 平衡二叉树(注意LR和RL)
  17. 王者荣耀赛季更新服务器维护到什么时候,王者荣耀s9维护到几点 王者荣耀s10赛季上线时间一览...
  18. 解决Windows与Ubuntu双系统时间同步问题
  19. 旷视研究院获 IROS 2021 The HILTI SLAM 挑战赛冠军
  20. Android程序员必备的六大顶级开发工具,快加入你的清单,看完没有不懂的

热门文章

  1. ES6(一)——字面量的增强、解构、let/const、块级作用域、暂时性死区
  2. react 网易云音乐实战项目笔记
  3. 接口 vs 抽象类 的区别
  4. Feature Engineering 特征工程 1. Baseline Model
  5. LeetCode 647. 回文子串(DP/中心扩展)
  6. LintCode 1690. 朋友推荐(二分插入)
  7. LeetCode 495. 提莫攻击
  8. java第九章编写一个能够产生_第九章java教程.ppt
  9. Requests: 让 HTTP 服务人类
  10. k近邻算法(KNN)-分类算法