当前位置:   article > 正文

【牛客网】排列计算

【牛客网】排列计算

原题链接:登录—专业IT笔试面试备考平台_牛客网

目录

1. 题目描述

2. 思路分析

3. 代码实现


1. 题目描述

2. 思路分析

如果直接涂色来计算单点权重,2e5*2e5必然超时。

所以用差分进行优化。

3. 代码实现

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. #define endl '\n'
  5. const int N=2e5+10;
  6. int b[N];
  7. signed main(){
  8. ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
  9. int n,m; cin>>n>>m;
  10. while(m--){
  11. int l,r; cin>>l>>r;
  12. b[l]+=1,b[r+1]-=1;
  13. }
  14. for(int i=1;i<=n;i++) b[i]+=b[i-1];
  15. sort(b+1,b+n+1);
  16. int ans=0;
  17. for(int i=1;i<=n;i++) ans+=i*b[i];
  18. cout<<ans<<endl;
  19. return 0;
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/532613
推荐阅读
相关标签
  

闽ICP备14008679号