A题  Price List

巨水..........水的不敢相信。

#include <cstdio>
typedef long long LL;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n,m,x;
        scanf("%d%d",&n,&m);
        LL sum = ;
        ; i < n; i++)
        {
            int x;
            scanf("%d",&x);
            sum = sum + (LL)x;
        }
        ; i < n; i++)
        {
            LL x;
            scanf("%lld",&x);
            if(x > sum)
                printf(");
            else
                printf(");
        }
        printf("\n");
    }
    ;
}

B题  NanoApe Loves Sequence

这道题可以用线段树做,查询最大值,每次删掉一个点,等于单点更新一到两个点。之后复原一下即可。

#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;

typedef long long LL;
#define mem0(x) memset(x,0,sizeof(x))
#define lson l,m,rt << 1
#define rson m+1,r,rt << 1 | 1

 + ];
LL MAX[ << ];
int t;

] , MAX[rt <<  | ]);}
void build(int l,int r,int rt)
{
    ] - a[l]); return ;}
    ;
    build(lson);
    build(rson);
    pushup(rt);
}
void update(int p,int add,int l,int r,int rt)
{
    if(l == r) {t = MAX[rt]; MAX[rt] = add; return ;}
    ;
    if(p <= m)
        update(p,add,lson);
    else
        update(p,add,rson);
    pushup(rt);
}
LL query_max(int ll,int rr,int l,int r,int rt)
{
    if(ll <= l && rr >= r) return MAX[rt];
    LL ans = ;
    ;
    if(ll <= m)
        ans = max(ans,query_max(ll,rr,lson));
    if(rr > m)
        ans = max(ans,query_max(ll,rr,rson));
    return ans;
}
int main()
{
    int T,n;
    scanf("%d",&T);
    while(T--)
    {
        mem0(a);
        mem0(MAX);
        scanf("%d",&n);
        ; i <= n; i++)
        {
            scanf("%d",&a[i]);
        }
        build(,n-,);

        LL ans = ;

        ; i <= n; i++)
        {
            int t1,t2;

             && i != n)
            {
                update(i,abs(a[i+]-a[i-]),,n-,),t1 = t;
                update(i-,abs(a[i+]-a[i-]),,n-,),t2 = t;
            }
            else
            {
                if(i != n)
                    update(i,,,n-,),t1 = t;
                )
                    update(i-,,,n-,),t2 = t;
            }

            ans = ans + query_max(,n-,,n-,);

             && i != n)
            {
                update(i,t1,,n-,);
                update(i-,t2,,n-,);
            }
            else
            {
                if(i != n)
                    update(i,t1,,n-,);
                )
                    update(i-,t2,,n-,);
            }
        }
        printf("%I64d\n",ans);
    }
    ;
}

但是这道题的正解是O(n)的算法。不是线段树。

真的感觉 被 虐智商。人家五分钟搞定这道题= =。

 #include <cstdio>
 #include <cmath>
 #include <algorithm>
 using namespace std;
 typedef long long LL;
  + ;
 int a[maxn], r_max[maxn], l_max[maxn];
 int main()
 {
     int T,n;
     LL ans;
     scanf("%d",&T);
     while(T--)
     {
         scanf("%d",&n);
         ; i <= n; i++)
         {
             scanf("%d",&a[i]);
         }
         l_max[] = ;
         ; i <= n; i++)
         {//r_max 从左边开始到i的最大值
             l_max[i] = max(l_max[i-], abs(a[i] - a[i-]));
         }
         r_max[n] = ;
         ; i >= ; i--)
         {//l_max 从右边开始到i的最大值
             r_max[i] = max(r_max[i+], abs(a[i+] - a[i]));
         }
         ans = (LL) l_max[n-] + (LL) r_max[];
         ; i < n; i++)
         {
             ans = ans + (LL) max(l_max[i-], max(r_max[i+], abs(a[i-] - a[i+]) ) );
         }
         printf("%I64d\n",ans);
     }
     ;
 }

C题  NanoApe Loves Sequence Ⅱ

多少个区间里的第k大的数不小于 m。其实就是说如果这个区间里面能找到,k个大于等于m的数,那么这个区间肯定就满足条件,后面的就不需要管了。

尺取法!!!!

 #include <cstdio>
 #include <algorithm>
 using namespace std;
 typedef long long LL;
  + ];
 bool cmp(int a,int b)
 {
     return a>b;
 }
 int main()
 {
     int T,n,m,k;
     scanf("%d",&T);
     ; i < T; i++)
     {
         scanf("%d%d%d",&n,&m,&k);
         ; i <= n; i++)
             scanf("%d",&a[i]);
         ;
         LL ans = ;
         ;
         ; i <= n; i++)
         {
             while(cnt < k && r < n)
             {
                 r++;
                 cnt += (a[r] >= m);
             }
             if(cnt < k) break;
             ans = ans + (LL) n - r + ;
             cnt -= (a[i] >= m);
         }
         printf("%I64d\n",ans);
     }
     ;
 }

D题

BestCoder Round #86的更多相关文章

  1. [HDU5807] [BestCoder Round #86 1004] Keep In Touch (DP)

    [HDU5807] [BestCoder Round #86 1004] Keep In Touch (DP) 题面 有三个人从一张N个点无重边的有向无环图上的三个点出发,每单位时间,他们分别选择当前 ...

  2. BestCoder Round #86 解题报告

    A.Price List Sol 求和查询 Code #include<cstdio> #include<algorithm> #include<iostream> ...

  3. HDU 5805 NanoApe Loves Sequence (思维题) BestCoder Round #86 1002

    题目:传送门. 题意:题目说的是求期望,其实翻译过来意思就是:一个长度为 n 的数列(n>=3),按顺序删除其中每一个数,每次删除都是建立在最原始数列的基础上进行的,算出每次操作后得到的新数列的 ...

  4. BestCoder Round #86 部分题解

    Price List 题意: 有n件商品,每天只能买一件,并且会记录账本,问有多少次一定记多了? 题解: 就是求和,最后如果大于和就输出1,否则0. 代码: #include <bits/std ...

  5. HDU5808Price List Strike Back (BestCoder Round #86 E) cdq分治+背包

    严格按题解写,看能不能形成sum,只需要分割当前sum怎么由两边组成就好 #include <cstdio> #include <cstring> #include <c ...

  6. HDU5807 Keep In Touch (BestCoder Round #86 D ) 分布式dp

    #include <cstdio> #include <cstring> #include <cmath> #include <vector> #inc ...

  7. HDU5806 NanoApe Loves Sequence Ⅱ (BestCoder Round #86 C)二分

    分析:大于等于m的变成1,否则变成0,预处理前缀和,枚举起点,找到第一个点前缀和大于m即可 找第一个点可以二分可以尺取 #include <cstdio> #include <cst ...

  8. HDU5805 NanoApe Loves Sequence (BestCoder Round #86 B)前后缀预处理

    分析:维护空隙的差,然后预处理前缀最大,后缀最大,扫一遍 #include <cstdio> #include <cstring> #include <cmath> ...

  9. HDU5804 Price List (BestCoder Round #86 A)水题

    分析:大于总和输出1 #include <cstdio> #include <cstring> #include <algorithm> using namespa ...

随机推荐

  1. ADMM与one-pass multi-view learning

    现在终于开始看论文了,机器学习基础部分的更新可能以后会慢一点了,当然还是那句话宁愿慢点,也做自己原创的,自己思考的东西.现在开辟一个新的模块----多视图学习相关论文笔记,就是分享大牛的paper,然 ...

  2. entity1

  3. 在.net中使用GAC

    转自:http://blog.log4d.com/2011/01/gac/ GAC GAC是什么?是用来干嘛的?GAC的全称叫做全局程序集缓存,通俗的理解就是存放各种.net平台下面需要使用的dll的 ...

  4. .NET 多个程序配置文件合并到主app.config

    .NET 多个程序配置文件合并到主app.config

  5. 《大道至简》第一章读后感--JAVA语言伪代码形式

    import.java.大道至简.*; //一·愚公移山 import.java.愚公移山.*; public class YuGongYiShan { //原始需求:惩山北之塞,出入之迂 //项目沟 ...

  6. PAT MOOC dataStructure 4-1

    数据结构练习 4-1 AVL 树 1. 题目: Input Specification: Each input file contains one test case. For each case, ...

  7. Apache不重新编译,利用apxs工具给Apache添加模块,如cgi模块

    想实践下Apache是如何运行cgi程序的,却发现先前编译安装Apache的时候,没有安装Apache的cgi模块. 附:CentOS6.x编译安装LAMP(2):编译安装 Apache2.2.25 ...

  8. PHP用curl伪造IP和来源

    以前没有这么搞过. 今天群里一个朋友在问这个问题. 查了下,CURL确实很强悍的可以伪造IP和来源. 1.php 请求 2.php . 1.php代码: $ch = curl_init(); curl ...

  9. iOS开发——高级篇——二维码的生产和读取

    一.二维码的生成 从iOS7开始集成了二维码的生成和读取功能此前被广泛使用的zbarsdk目前不支持64位处理器 生成二维码的步骤:导入CoreImage框架通过滤镜CIFilter生成二维码 二维码 ...

  10. 启动调试IIS时,vs无法在 Web 服务器上启动调试。Web 服务器未能找到请求的资源。 有关详细信息,请单击“帮助”。

    问题截图 1.检查 是否设置了本地IIS 2.检查IIS端口是否为80 3.默认网站设置是否正确 可参考,查看网站绑定是否正确