5月2日,9:00-12:00,西工大校赛

Posted chengxvzhishen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5月2日,9:00-12:00,西工大校赛相关的知识,希望对你有一定的参考价值。

1.A题:

比赛的时候WA了7次,导致排名较低。

WA的7次都是用暴力和STL做的。

正确思路:先用计数法记录员工所在的号数,然后遍历数组,找到每一个工位之前的号数和与员工数量和,最后将所有工位用a,mid,b分成四部分,对每一部分求ans即可。

代码如下:

#include<bits/stdc++.h>
using namespace std;
#define maxn 100000
int arr[maxn+1]={0};
int num[maxn+1]={0};
int hao[maxn+1]={0};
int main()
{
int n,q,i,j,k,a,b,m;
scanf("%d%d",&n,&q);

for(i=0;i<n;i++)
{
scanf("%d",&j);
arr[j]++;
}
for(i=2;i<=maxn+1;i++)
{
hao[i]=hao[i-1]+arr[i-1]*(i-1);
num[i]=num[i-1]+arr[i-1];
}
while(q--)
{
scanf("%d%d",&a,&b);
if(a>b)
{
int tem=a;
a=b;
b=tem;
}
int ans=0;
int mid=(a+b)/2;
ans+=a*num[a]-hao[a];
ans+=(hao[mid+1]-hao[a+1])-a*(num[mid+1]-num[a+1]);
ans+=b*(num[b]-num[mid+1])-(hao[b]-hao[mid+1]);
ans+=(hao[maxn+1]-hao[b+1])-b*(num[maxn+1]-num[b+1]);
printf("%d ",ans);
}
return 0;
}

以上是关于5月2日,9:00-12:00,西工大校赛的主要内容,如果未能解决你的问题,请参考以下文章

2020西工大校赛 C王国(LCA)

R语言数据挖掘初高级8月5日6日上海开班

机器学习平台搭建及应用分享

立即报名 | 公益大讲堂第三期讲座:股权架构设计(动态股权)

还有多少青春可以浪费?现在就学R语言文本挖掘

递归的都好难啊!QAQ