社区讨论
70WA求救
P1098[NOIP 2007 提高组] 字符串的展开参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lpdgxuld
- 此快照首次捕获于
- 2023/11/25 11:05 2 年前
- 此快照最后确认于
- 2023/11/25 12:02 2 年前
6没过
输入:
CPP1 1 1
2-43-sdf-ewr0-j-9re-j0g-9e0-9as-d09jf-9asdjf0q-w-ejr0q-59jdsnf-9z-x9v0-sd9fn--q
输出:
CPP2343-sdf-ewr0-j-9refghij0g-9e0123456789as-d09jf-9asdjf0qrstuvw-ejr0q-59jdsnf-9z-x9v0-sd9fn--q
代码:
CPP#include<bits/stdc++.h>
using namespace std;
int p1,p2,p3;
string s;
char c;
map < char , char > x;
map < char , char > d;
void csh()//可以理解为暴力打标
{
x['a']='a';
x['b']='b';
x['c']='c';
x['d']='d';
x['e']='e';
x['f']='f';
x['g']='g';
x['h']='e';
x['i']='i';
x['j']='j';
x['k']='k';
x['l']='l';
x['m']='m';
x['n']='n';
x['o']='o';
x['p']='p';
x['q']='q';
x['r']='r';
x['s']='s';
x['t']='t';
x['u']='u';
x['v']='v';
x['w']='w';
x['x']='x';
x['y']='y';
x['z']='z';
x['A']='a';
x['B']='b';
x['C']='c';
x['D']='d';
x['E']='e';
x['F']='f';
x['G']='g';
x['H']='h';
x['I']='i';
x['J']='j';
x['K']='k';
x['L']='l';
x['M']='m';
x['N']='n';
x['O']='o';
x['P']='p';
x['Q']='q';
x['R']='r';
x['S']='s';
x['T']='t';
x['U']='u';
x['V']='v';
x['W']='w';
x['X']='x';
x['Y']='y';
x['Z']='z';
x['1']='1';
x['2']='2';
x['3']='3';
x['4']='4';
x['5']='5';
x['6']='6';
x['7']='7';
x['8']='8';
x['9']='9';
d['a']='A';
d['b']='B';
d['c']='C';
d['d']='D';
d['e']='E';
d['f']='F';
d['g']='G';
d['h']='H';
d['i']='I';
d['j']='J';
d['k']='K';
d['l']='L';
d['m']='M';
d['n']='N';
d['o']='O';
d['p']='P';
d['q']='Q';
d['r']='R';
d['s']='S';
d['t']='T';
d['u']='U';
d['v']='V';
d['w']='W';
d['x']='X';
d['y']='Y';
d['z']='Z';
d['A']='A';
d['B']='B';
d['C']='C';
d['D']='D';
d['E']='E';
d['F']='F';
d['G']='G';
d['H']='H';
d['I']='I';
d['J']='J';
d['K']='K';
d['L']='L';
d['M']='M';
d['N']='N';
d['O']='O';
d['P']='P';
d['Q']='Q';
d['R']='R';
d['S']='S';
d['T']='T';
d['U']='U';
d['V']='V';
d['W']='W';
d['X']='X';
d['Y']='Y';
d['Z']='Z';
d['1']='1';
d['2']='2';
d['3']='3';
d['4']='4';
d['5']='5';
d['6']='6';
d['7']='7';
d['8']='8';
d['9']='9';
return;
}
int main()//正片开始
{
csh();
cin>>p1>>p2>>p3;
cin>>s;
int l=s.size();
for(int i=0;i<l;++i)
{
if(s[i]=='-'&&i==0)
{
cout<<"-";
}
else if(s[i]=='-')
{
if(s[i-1]+1==s[i+1])
{
continue;
}
else if((s[i-1]>='0'&&s[i+1]>='0'&&s[i-1]<='9'&&s[i+1]<='9')||(s[i-1]>='A'&&s[i+1]>='A'&&s[i-1]<='z'&&s[i+1]<='z'))
{
if(s[i-1]>=s[i+1])
{
cout<<"-";
continue;
}
if(p3==2)
{
char u;
if(p1==1)
{
c=x[s[i+1]]-1;
u=c;
}
else if(p1==2)
{
c=d[s[i+1]]-1;
u=c;
}
else
{
c=x[s[i+1]]-1;
u='*';
}
while(c!=x[s[i-1]]&&c!=d[s[i-1]])
{
for(int k=0;k<p2;++k)
{
cout<<u;
}
c--;
if(u!='*')
u=c;
}
}
else
{
char u;
if(p1==1)
{
c=x[s[i-1]]+1;
u=c;
}
else if(p1==2)
{
c=d[s[i-1]]+1;
u=c;
}
else
{
c=x[s[i-1]]+1;
u='*';
}
while(c!=x[s[i+1]]&&c!=d[s[i+1]])
{
for(int k=0;k<p2;++k)
{
cout<<u;
}
c++;
if(u!='*')
u=c;
}
}
}
else
{
cout<<"-";
}
}
else
{
cout<<s[i];
}
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...