社区讨论
可能是C++原理问题(?)
学术版参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lo3ge7ej
- 此快照首次捕获于
- 2023/10/24 06:12 2 年前
- 此快照最后确认于
- 2023/10/24 06:12 2 年前
就是我有两个代码:
一个过了:
CPP node u;
while(!q.empty()){
u=q.top();
q.pop();k--;
if(!k){
cout<<u.s<<endl;
return 0;
}
if(u.nxt==n) continue;
u.s+=s[u.nxt];u.nxt++;
q.push(u);
}
一个T:
CPP while(!q.empty()){
node u=q.top();
q.pop();k--;
if(!k){
cout<<u.s<<endl;
return 0;
}
if(u.nxt==n) continue;
u.s+=s[u.nxt];u.nxt++;
q.push(u);
}
两者唯一的区别就是u的定义,一个是在循环里定义的,一个是在外面定义。外面定义就能过,并且快的不是一点半点,有人能解释一下吗。
node定义:
CPPstruct node{
int nxt;
string s;
bool operator<(const node&b) const{return s>b.s;}
};
回复
共 6 条回复,欢迎继续交流。
正在加载回复...