社区讨论
9#测试点RE
P1245电话号码参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m2vb88e7
- 此快照首次捕获于
- 2024/10/30 11:21 去年
- 此快照最后确认于
- 2025/11/04 15:43 4 个月前
9#测试点到底是啥?
我的思路很简单,b[i]为到i号位置为止可能的方案,在此基础上接就行了。然后9#RE了
CPP#include<bits/stdc++.h>
using namespace std;
struct st
{
string s;
int len,a[21];
};
int main()
{
int n,m,i,j,k,w[26]={1,1,1,2,2,2,3,3,3,4,4,4,5,5,6,6,6,7,7,7,8,8,8,9,9,9};
cin>>n;
string s;
cin>>s;
m=s.size();
st a[n];
for(i=0;i<n;i++)
{
cin>>a[i].s;
a[i].len=a[i].s.size();
for(j=0;a[i].s[j];j++)
a[i].a[j]=w[a[i].s[j]-'a'];
}
string b[m+1];
for(i=0;i<=m;i++)
b[i]="A";
for(i=0;i<n;i++)
{
for(j=0;a[i].s[j];j++)
if((s[j]-'0')!=a[i].a[j])
break;
if(a[i].s[j]==0)
b[j-1]=a[i].s;
}
for(i=0;i<m;i++)
if(b[i]!="A")
{
for(j=0;j<n;j++)
{
for(k=0;i+k+1<=m && a[j].s[k] && a[j].a[k]==s[i+k+1]-'0';k++);
if(a[j].s[k]==0)
b[i+k]=b[i]+" "+a[j].s;
}
}
if(b[m-1]=="A")
cout<<"No Solutions!";
else
cout<<b[m-1];
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...