当前位置: 首页 > news >正文

【Luogu】P5094 [USACO04OPEN] MooFest G 加强版

P5094 [USACO04OPEN] MooFest G 加强版 - 洛谷

思路:

对于这种求 max 的操作好像很麻烦,但是如果我们排序后就好求了

对于第 i 个位置,前 i - 1 个位置肯定都小于当前位置,所以我们直接就知道本位置的 v[i] 了

那么对于绝对值呢?我们可以拆成两部分,一部分是大于,一部分是小于

实际求的过程中我们只需要计算一部分即可,因为另一部分可以利用前缀和求出来

具体的,我们求 i 前所有小于 x[i] 的数的 总和 big 和数量 cnt

那么小于 x[i] 的奉献就是 x[i] * cnt - big,对于大的则是 sum - big - x[i] * (i - cnt)

对于求 big 和 cnt 我们可以使用树状数组快速求出

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count());
//小于等于 i 的数量
int tree[50005];
//小于等于 i 的和
int tree2[50005];int lowbit(int x)
{return x & -x;
}void update(int x,int val)
{for(;x <= 50000;x += lowbit(x)){tree[x]++;tree2[x] += val;}
}pair<int,int> query(int x)
{int sum = 0,cnt = 0;for(;x;x -= lowbit(x)){cnt += tree[x];sum += tree2[x];}return {cnt,sum};
}void solve()
{int n;cin >> n;vector<pair<int,int>> a(n);int ans = 0;for (int i = 0; i < n; i++){cin >> a[i].first >> a[i].second;}sort(a.begin(),a.end());int sum = 0;for (int i = 0; i < n; i++){auto [cnt,big] = query(a[i].second);int add = (a[i].second * cnt) - big;add += (sum - big) - (a[i].second * (i-cnt));ans += add * a[i].first;sum += a[i].second;update(a[i].second,a[i].second);}cout << ans << endl;
}signed main()
{cin.tie(0)->sync_with_stdio(0);int t = 1;while (t--){solve();}return 0;
}

http://www.dtcms.com/a/416908.html

相关文章:

  • 网站建设前期目标如何制作班级网站
  • 关于网站建设方案的案例中国建设招标工程网站
  • 如何自己做优惠券网站中国建筑有限公司
  • 企业网站推广服务深圳建设工程交易平台
  • 酒店网站的建设爱游戏app下载官方网站
  • 深圳网站建设哪家强宁德网站建设公司
  • 网站建设的合理建议上海网站设计公司 静安
  • 做雕塑网站wordpress漫画主题推荐
  • 建设企业网站官网下载中心wordpress 全站备份
  • 企业如何在自己的网站上做宣传网站建设费用计入哪个科目
  • 网站设计二级页面怎么做海口网站建设优化案例
  • Transformer 中的并行和串行
  • 手机网站建设最新报价成都网站开发建设推广
  • 网站空间到期影响已有网站做移动网站
  • 网站建设选信达互联wordpress 后台密码错误
  • 做网站一般像素wordpress旧编辑器
  • 怎样建设企业网站平安银行官方网站
  • 建设网站的运行费包括什么地方免费在线咨询软件
  • 做服装找工作网站电子商务网站设计成功的要素
  • 北京网站优化公司如何wordpress 雅黑字体
  • 做网站的接私活犯法吗合肥企业快速建站
  • 怎么在wordpress建英文网站如何查看网站的访问量
  • 网站设计与开发范本东莞市建设网站
  • 聊聊Bert模型输出的pooler_output与last_hidden_state
  • 颍上县住房和城乡建设局网站提供网站建设服务平台
  • 交互做的很好的网站无锡seo报价
  • 有没有专门帮人做图的网站个人养老金保险查询
  • VCU开发——热平衡测试流程
  • 哪个网站注册域名好一级a做爰网站下载
  • 与设计行业相关的网站扁平化蓝色网站模板