您当前的位置: 首页 >  游戏

*DDL_GzmBlog

暂无认证

  • 2浏览

    0关注

    605博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[补题|总结] 第一届河北工业大学程序设计竞赛校赛 C 标枪游戏

*DDL_GzmBlog 发布时间:2021-05-03 21:42:54 ,浏览量:2

在这里插入图片描述

目录
  • 写在前头
  • 题意要求概括
  • 树状数组模板
    • 代码详解
  • 暴力做法
  • 非暴力(二分+思维)
  • 总结

写在前头

这题过了人挺多的,我从大根堆跑到二叉搜索树最后又打算二分, 结果都TLE(二分还没写)了, 给我搞的心态爆炸,结果题解竟然是树状数组,我真就哈哈哈哈哈

题意要求概括

就是给你一个数组,对于数组每次读入数, 你对当前这个数都要判断前面比他大的数的个数,和比他小的数的个数

树状数组模板 代码详解
```cpp
int getid(int x)
{
    return lower_bound(g.begin(),g.end(),x)-g.begin()+1;
     二分查找第一个比x大或等于的数 并返回该下标+1
}
int lowbit(int x)
{
    return x&(-x);
}

void update(int x)
{
    while(x>n;
for(int i=1; i>n;
    vectorq;
    for(long long  i=0; i>a[i];
        long long  sum=upper_bound(q.begin(),q.end(),a[i])-q.begin();
        q.insert(q.begin()+sum,a[i]);
        这里加一个Sum真的太666666666了 %%%%%%%% 
        num=i-sum;
        if(i%2==0)
        j+=1+sum-num;
        else h+=1+sum-num;
    }
 
    if(j>h)
        cout            
关注
打赏
1657615554
查看更多评论
0.2593s