社区讨论
TLE+WA,62pts求调
P6687 论如何玩转 Excel 表格参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @loz9woln
- 此快照首次捕获于
- 2023/11/15 12:39 2 年前
- 此快照最后确认于
- 2023/11/15 13:49 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e6+10;
map<int,int> m;
int n,ans,a[3][N],b[3][N],s[N],tree[N];
int lowbit(int x)
{
return x&(-x);
}
void update(int pos)
{
for(;pos<=n;pos+=lowbit(pos))
tree[pos]++;
}
int query(int pos)
{
int ans=0;
for(;pos;pos-=lowbit(pos))
ans+=tree[pos];
return ans;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=2;i++)
for(int j=1;j<=n;j++)
scanf("%d",&a[i][j]);
for(int i=1;i<=2;i++)
for(int j=1;j<=n;j++)
scanf("%d",&b[i][j]);
for(int i=1;i<=n;i++)
m[a[1][i]]=i;
if(n==1)
{
if(a[1][1]==b[1][1]||a[2][1]==b[2][1])
puts("0");
else
puts("dldsgay!!1");
return 0;
}
else if (n == 2)
{
if (a[0][1] == b[0][1] && a[1][1] == b[1][1] && a[0][2] == b[0][2] && a[1][2] == b[1][2])
puts("0");
else if (a[0][1] == b[1][2] && a[1][2] == b[0][1] && a[0][2] == b[1][1] && a[1][1] == b[0][2])
puts("1");
else
puts("dldsgay!!1");
return 0;
}
for(int i=1;i<=n;i++)
{
if(m[b[1][i]])
{
if((i-m[b[1][i]])&1)
{
puts("dldsgay!!1");
return 0;
}
s[i]=m[b[1][i]];
update(s[i]),ans+=query(n)-query(s[i]);
continue;
}
else
{
if(m[b[2][i]])
{
if(!(i-m[b[2][i]])&1)
{
puts("dldsgay!!1");
return 0;
}
s[i]=m[b[2][i]];
update(s[i]),ans+=query(n)-query(s[i]);
continue;
}
}
puts("dldsgay!!1");
return 0;
}
for(int i=1;i<=n;i++)
if(!s[i])
{
puts("dldsgay!!1");
return 0;
}
printf("%d\n",ans);
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...