社区讨论
0分,但样例过了,求问大佬哪有问题
P3405[USACO16DEC] Cities and States S参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo140f5x
- 此快照首次捕获于
- 2023/10/22 14:50 2 年前
- 此快照最后确认于
- 2023/11/02 14:21 2 年前
CPP
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
const int mod=2333,base=130;
vector <string> v[mod+2];
int ans=0;
void insert(string x)
{
int tmp=0;
for(int i=0;i<4;i++)
{
tmp=tmp*base+x[i];
}
int hash=tmp%mod;
for(int i=0;i<v[hash].size();i++)
{
if(v[hash][i]==x)
{
ans++;
return;
}
}
//如果倒过来的没有,就把原先的放进来
char r[12];
r[0]=x[2];
r[1]=x[3];
r[2]=x[0];
r[3]=x[1];
int tmp1=0;
for(int i=0;i<4;i++)
{
tmp1=tmp1*base+r[i];
}
int hash1=tmp1%mod;
v[hash1].push_back(r);
}
int main()
{
char a[12],b[12],c[12];
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a>>b; //怎么把a的前两位和b合并成一个字符串
if((a[0]!=b[0])||(a[1]!=b[1]))
{
c[0]=b[0];
c[1]=b[1];
c[2]=a[0];
c[3]=a[1];
//cout<<c<<endl;
insert(c);
}
}
cout<<ans;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...