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

电子商务网站运营与管理杭州市建设工程招标平台

电子商务网站运营与管理,杭州市建设工程招标平台,创意策划网站,网站建设维护岗位职责AB略 C 答案没有单调性,无法用二分答案写。b比a多的得分s1*0s2*1.......sn*(n-1),s代表这一段中b比a多的数量。这里s的处理可以想到用前缀和来,于是得到(s1-0)*0(s2-s1)*1(s3-s2)*2......(sn-sn-1)*(n-1)-s1-s2-s3.....sn*(n-1)&#xff0c…

AB略

C

答案没有单调性,无法用二分答案写。b比a多的得分=s1*0+s2*1+.......+sn*(n-1),s代表这一段中b比a多的数量。这里s的处理可以想到用前缀和来,于是得到(s1-0)*0+(s2-s1)*1+(s3-s2)*2......+(sn-sn-1)*(n-1)=-s1-s2-s3.....+sn*(n-1),这里还是没办法确定n的值,毕竟sn*(n-1)很难确定。于是可以想到后缀和。(s1-s2)*0+(s2-s3)*1+(s3-s4)*2.....sn*(n-1)=s2+s3+....+sn。预处理出所有位置的后缀和降序排序,大于k停止即可。

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10;
int T,n,k,s[N],sum;
char c[N];
void init()
{sum=0;
}
void solve()
{cin>>n>>k;init();for(int i=1;i<=n;i++)cin>>c[i];s[n+1]=0;for(int i=n;i>=1;i--){if(c[i]=='1') s[i]=s[i+1]+1;else s[i]=s[i+1]-1;}sort(s+2,s+n+1);for(int i=n;i>=2;i--){sum+=s[i];if(sum>=k) {cout<<n-i+2<<endl; return ;}}cout<<-1<<endl;
}
signed main()
{std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>T;while(T--) solve();
}

D

对于每一段来说,找到所有完全包含这一段的段的交集再减去这一段剩下的整数数量。先将左端点升序相等时再右端点降序排序,这样按顺序处理每个段时,可以保证它的所有预言段都处理完了,利用set可知道它的所有预言段右端点的最小值,减去这个段的右端点。在按照这个逻辑处理左端点,左右相加就是答案。

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10;
int T,n,ll[N],rr[N],bj[N];
struct node{int l,r,id;
}a[N],b[N];
bool cmp(node x,node y)
{if(x.l==y.l) return x.r>y.r;return x.l<y.l;
}
bool cmp1(node x,node y)
{if(x.r==y.r) return x.l<y.l;return x.r>y.r;
}
void init()
{for(int i=1;i<=n;i++)ll[i]=rr[i]=bj[i]=0;
}
void solve()
{cin>>n;init();multiset<int> s;for(int i=1;i<=n;i++){cin>>a[i].l>>a[i].r;a[i].id=i;b[i].l=a[i].l;b[i].r=a[i].r;b[i].id=i;}if(n==1) {cout<<0<<endl; return ;}sort(a+1,a+n+1,cmp);for(int i=2;i<=n;i++)if(a[i].l==a[i-1].l&&a[i].r==a[i-1].r) bj[a[i].id]=bj[a[i-1].id]=1;s.insert(a[1].r);for(int i=2;i<=n;i++){multiset<int>::iterator it;it=s.lower_bound(a[i].r);if(it!=s.end()) rr[a[i].id]=*it-a[i].r;s.insert(a[i].r);}sort(b+1,b+n+1,cmp1);s.clear();s.insert(-b[1].l);for(int i=2;i<=n;i++){multiset<int>::iterator it;it=s.lower_bound(-b[i].l);if(it!=s.end()) ll[b[i].id]=*it+b[i].l;s.insert(-b[i].l);}for(int i=1;i<=n;i++)if(bj[i]) cout<<0<<endl;else cout<<ll[i]+rr[i]<<endl;
}
signed main()
{std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>T;while(T--) solve();
}

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

相关文章:

  • 网站建设案例的公司做外贸的基本流程
  • 网站前台和后台设计大型网站建设哪家快
  • 义乌网站建设技巧培训精品应用下载安装
  • 武安市网站建设费用粉色大气妇科医院网站源码
  • Topaz Gigapixel AI(图片无损放大软件) 英文便携版
  • 网站域名空间费用网站 建设理由
  • 微信广告推广价格表seo网站推广培训
  • 网站图片属性是什么怎么看网站是否被k过
  • 大港网站建设公司wordpress目录权限设置密码
  • 网站建设业务提成山东聊城做网站
  • 公关网站建设宁夏建设教育协会网站
  • 网站运营刚做时的工作内容金融类网站建设
  • 荥阳企业网站建设空壳网站清理通知
  • 搜狐快站装修网站建设痘痘怎么去除有效果
  • php网站上做微信支付功能抖音代运营法律案件
  • 涿州市网站建设广告文化网站建设
  • 网站建设类公司龙岗注册公司
  • 小说下载网站哪个好wordpress获取用户id
  • 品牌网站建设權威大蝌蚪wordpress收款生成源码
  • php做直播网站网站优化seo四个建议
  • 城阳做网站网站优化推广平台
  • 做单页网站驻马店做网站建设的公司
  • 深圳网站制作哪家便宜wordpress dopt函数
  • 唐山网站制作软件关于门户网站建设讲话
  • asp做网站阿里绿网网站违规
  • 做一个网站能挣多少钱行业协会网站建设的方案
  • 杭州做肉松饼的网站有多少家网站推广工具
  • 企业网站html大众点评如何做团购网站
  • 网站制作建设模板做软测的网站
  • SMT 卡扣治具如何使用?