关注
第二题这样的,刚开始看错题目了耽误了好多时间!/(ㄒoㄒ)/~~
#include<iostream>
#include<stdio.h>
#include<string>
#include<map>
using namespace std;
map<string, int>pp;
int n,m;
void work (string s)
{
bool p=0;
int now;
if (s[0]=='a') return ;
for (int i=5;i<s.size();i++)
if (s[i]=='/')
{
p=1;
now=i;
break;
}
string ss[5];
string temp="";
int count=1;
int last;
if (!p)
{
for (int i=5;i<s.size();i++)
{
if (s[i]!='.')
temp+=s[i];
if (s[i]=='.')
{
ss[count]=temp;
temp="";
count++;
last=i;
}
}
ss[4]="";
for (int i=last+1;i<s.size();i++)
ss[4]+=s[i];
}
else
{
for (int i=5;i<s.size();i++)
{
if (s[i]!='.')
temp+=s[i];
if (s[i]=='.')
{
ss[count]=temp;
temp="";
count++;
last=i;
}
}
ss[4]="";
for (int i=last+1;i<now;i++)
ss[4]+=s[i];
}
/*cout<<s<<endl;
cout<<ss[1]<<" ";
cout<<ss[2]<<" ";
cout<<ss[3]<<" ";
cout<<ss[4]<<" "<<endl;*/
int a[9],sz,x;
sz=0;
x=0;
for (int i=0;i<ss[1].size();i++)
x=x*10+(ss[1][i]-'0');
while (x)
{
a[++sz]=x%2;
x=x/2;
}
if (sz<8)
{
for (int i=1;i<=8-sz;i++)
temp+="0";
}
for (int i=sz;i>=1;i--)
temp+=char(a[i]+'0');
sz=0;
x=0;
for (int i=0;i<ss[2].size();i++)
x=x*10+(ss[2][i]-'0');
while (x)
{
a[++sz]=x%2;
x=x/2;
}
if (sz<8)
{
for (int i=1;i<=8-sz;i++)
temp+="0";
}
for (int i=sz;i>=1;i--)
temp+=char(a[i]+'0');
sz=0;
x=0;
for (int i=0;i<ss[3].size();i++)
x=x*10+(ss[3][i]-'0');
while (x)
{
a[++sz]=x%2;
x=x/2;
}
if (sz<8)
{
for (int i=1;i<=8-sz;i++)
temp+="0";
}
for (int i=sz;i>=1;i--)
temp+=char(a[i]+'0');
sz=0;
x=0;
for (int i=0;i<ss[4].size();i++)
x=x*10+(ss[4][i]-'0');
while (x)
{
a[++sz]=x%2;
x=x/2;
}
if (sz<8)
{
for (int i=1;i<=8-sz;i++)
temp+="0";
}
for (int i=sz;i>=1;i--)
temp+=char(a[i]+'0');
//cout<<temp<<endl;
//cout<<temp.size()<<endl;
string ans="";
for (int i=ss[4].size();i<temp.size();i++)
ans+=temp[i];
//cout<<ans<<endl;
//a[ans]=0;
string t="";
for (int i=0;i<=19;i++)
t+=ans[i];
pp[t]=1;
//cout<<ans<<endl;
//cout<<t<<endl;
}
void calc (string s)
{
bool p=0;
int now;
if (s[0]=='a') return ;
for (int i=0;i<s.size();i++)
if (s[i]=='/')
{
p=1;
now=i;
break;
}
string ss[5];
string temp="";
int count=1;
int last;
if (!p)
{
for (int i=0;i<s.size();i++)
{
if (s[i]!='.')
temp+=s[i];
if (s[i]=='.')
{
ss[count]=temp;
temp="";
count++;
last=i;
}
}
ss[4]="";
for (int i=last+1;i<s.size();i++)
ss[4]+=s[i];
}
else
{
for (int i=0;i<s.size();i++)
{
if (s[i]!='.')
temp+=s[i];
if (s[i]=='.')
{
ss[count]=temp;
temp="";
count++;
last=i;
}
}
ss[4]="";
for (int i=last+1;i<now;i++)
ss[4]+=s[i];
}
/*cout<<s<<endl;
cout<<ss[1]<<" ";
cout<<ss[2]<<" ";
cout<<ss[3]<<" ";
cout<<ss[4]<<" "<<endl;*/
int a[9],sz,x;
sz=0;
x=0;
for (int i=0;i<ss[1].size();i++)
x=x*10+(ss[1][i]-'0');
while (x)
{
a[++sz]=x%2;
x=x/2;
}
if (sz<8)
{
for (int i=1;i<=8-sz;i++)
temp+="0";
}
for (int i=sz;i>=1;i--)
temp+=char(a[i]+'0');
sz=0;
x=0;
for (int i=0;i<ss[2].size();i++)
x=x*10+(ss[2][i]-'0');
while (x)
{
a[++sz]=x%2;
x=x/2;
}
if (sz<8)
{
for (int i=1;i<=8-sz;i++)
temp+="0";
}
for (int i=sz;i>=1;i--)
temp+=char(a[i]+'0');
sz=0;
x=0;
for (int i=0;i<ss[3].size();i++)
x=x*10+(ss[3][i]-'0');
while (x)
{
a[++sz]=x%2;
x=x/2;
}
if (sz<8)
{
for (int i=1;i<=8-sz;i++)
temp+="0";
}
for (int i=sz;i>=1;i--)
temp+=char(a[i]+'0');
sz=0;
x=0;
for (int i=0;i<ss[4].size();i++)
x=x*10+(ss[4][i]-'0');
while (x)
{
a[++sz]=x%2;
x=x/2;
}
if (sz<8)
{
for (int i=1;i<=8-sz;i++)
temp+="0";
}
for (int i=sz;i>=1;i--)
temp+=char(a[i]+'0');
//cout<<temp<<endl;
//cout<<temp.size()<<endl;
string ans="";
for (int i=ss[4].size();i<temp.size();i++)
ans+=temp[i];
//cout<<ans<<endl;
//a[ans]=0;
string t="";
for (int i=0;i<=19;i++)
t+=ans[i];
//cout<<t<<endl;
if (pp[t]) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
void doing ()
{
cin>>n>>m;
getchar();
string s;
for (int i=1;i<=n;i++)
{
getline (cin,s);
work (s);
}
//cout<<"!!!!!"<<pp["00000001000000010000"];
for (int i=1;i<=m;i++)
{
cin>>s;
calc (s);
}
}
int main ()
{
doing ();
return 0;
}
查看原帖
点赞 5
相关推荐
门头沟学院食堂阿姨:哈哈这人性就是这样的,真正希望自己过得好的只有自己,在核心利益面前很难有朋友,加油吧,用实力让质疑者闭嘴 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习日记 #
4138678次浏览 33162人参与
# 秋招投递记录 #
429073次浏览 3306人参与
# 第3届现代汽车Code Faster急速编程挑战赛 #
25560次浏览 462人参与
# 你投递的公司有几家约面了? #
174445次浏览 1043人参与
# 产品实习,你更倾向大公司or小公司 #
234687次浏览 2169人参与
# 你认为小厂实习有用吗? #
152630次浏览 804人参与
# 为了找工作你投递了多少公司? #
120709次浏览 766人参与
# 实习返校后,你的精神状态是__? #
47435次浏览 173人参与
# 重来一次,你会对开始求职的自己说 #
55291次浏览 515人参与
# 你投了多少家公司?进展是___ #
251917次浏览 1464人参与
# 通信/硬件求职避坑tips #
179507次浏览 1176人参与
# 如果有时光机,你最想去到哪个年纪? #
81840次浏览 863人参与
# 你小时候最想从事什么职业 #
170858次浏览 2080人参与
# 我的租房踩坑经历 #
230348次浏览 1305人参与
# 发工资后,你做的第一件事是什么 #
108963次浏览 350人参与
# 求职遇到的搞笑事件 #
209762次浏览 1083人参与
# 体制内上岸心路历程 #
42253次浏览 245人参与
# 实习生的生存小技巧 #
41872次浏览 365人参与
# 双非本科的出路是什么? #
236812次浏览 1668人参与
# 米哈游笔试 #
741633次浏览 1270人参与
# 今年形式下双非本找得到工作吗 #
339466次浏览 1795人参与
查看8道真题和解析