社区讨论
70pts MLE on #6#8#9求条
P1098[NOIP 2007 提高组] 字符串的展开参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhizc5ax
- 此快照首次捕获于
- 2025/11/03 18:10 4 个月前
- 此快照最后确认于
- 2025/11/03 18:10 4 个月前
从WA+MLE 30pts改到了MLE 70pts 求dalao调(可怜
CPP#include <bits/stdc++.h>
using namespace std;
bool is_num(char a) {
return a>='0'&&a<='9';
}
bool is_ltt(char a) {
return a>='a'&&a<='z';
}
bool tlx(char a,char b) {
if (is_num(a)&&is_num(b)) return true;
if (is_ltt(a)&&is_ltt(b)) return true;
else return false;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int p1,p2,p3;
cin>>p1>>p2>>p3;
string s,ans="";
cin>>s;
for (int i=0;i<s.size();i++) {
if (s[i]!='-') ans+=s[i];
else if (s[i]=='-') {
char c1=s[i-1],c2=s[i+1];
if (tlx(c1,c2)&&c1>=c2) {
ans+='-'; continue;
}
else if (tlx(c1,c2)&&c1==c2-1) {
ans=ans+c2; i++; continue;
}
else if (!tlx(c1,c2)) {
ans=ans+'-'+c2; i++; continue;
}
if (p3==1) {
for (int j=c1+1;j<c2;j++) {
for (int k=1;k<=p2;k++) {
if (p1==1) {
ans+=(char)(j);
}else if (p1==2) {
ans+=(char)(j-32);
}else if (p1==3) {
ans+='*';
}
}
}
}else if (p3==2) {
for (int j=c2-1;j>c1;j++) {
for (int k=1;k<=p2;k++) {
if (p1==1) {
ans+=(char)(j);
}else if (p1==2) {
ans+=(char)(j-32);
}else if (p1==3) {
ans+='*';
}
}
}
}
}
}
cout<<ans;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...