爆零全哇求助

P1116 车厢重组

@[coder_1746](/user/682471) 核心是这么扫的 ```cpp for (i = n; i >= 2; i--) for (j = 1; j <= i - 1; j++) if (a[j] > a[j + 1]) { swap(a[j], a[j + 1]); ans++; } ``` 附详解[冒泡排序动态](https://visualgo.net/zh/sorting) ###### ~~哇是什么?~~
by __er @ 2022-07-01 15:13:27


``` for(int j=0;j<n;j++){ if(A[j]>A[i]) sum++; } ``` $\to$ ``` for(int j=0;j<i;j++){ if(A[j]>A[i]) sum++; } ```
by 迟暮天复明 @ 2022-07-01 15:13:40


@[coder_1746](/user/682471) 我swap了,本题可以不swap
by __er @ 2022-07-01 15:14:28


@[YMXX](/user/713955) 感谢神犇! ~~哇就是WA~~
by coder_1746 @ 2022-07-01 15:15:29


@[迟暮天复明](/user/222865) ok感谢大佬!
by coder_1746 @ 2022-07-01 15:16:09


@[coder_1746](/user/682471) 啊,大草
by __er @ 2022-07-01 15:22:11


第八行改i<j ac等你
by SHU_YSY @ 2022-07-08 15:25:04


```cpp #include <bits/stdc++.h> using namespace std; stack<int>q;//栈q vector<int>a,b;//队列a,b int p,n;//n是序列长度 int main(int argc, char** argv) { cin>>n; int sum=0; for(int i=1; i<=n; i++) {//读入数据 a.push_back(i); } //储存目标出栈顺序 for(int i=0; i<n; i++) { int t; cin>>t; b.push_back(t); } //尝试是否存在指定的出栈顺序 for(int i=0; i<n; i++) { q.push(a[i]);//入栈 //当栈顶元素与b中当前元素相同时出栈 while(!q.empty()&&(q.top())==b[sum]) { q.pop();//尝试出栈 sum++;//sum到b下一个元素 } } if(q.empty()) {//如果栈为空说明出栈序列b正确 cout<<"YES"<<endl; } else { cout<<"NO"<<endl; } return 0; } ```
by lixuhui20120805 @ 2022-08-08 17:23:12


|