首页 > 其他分享 >The first week match's mistake-2

The first week match's mistake-2

时间:2023-01-08 15:24:29浏览次数:68  
标签:week q1 数字 st2 数组 match mistake

旋转排列

https://www.luogu.com.cn/problem/B3688)

解读一下题目:

要求从给定的数组拿出最后一个数字后
看看变化后的数组的最后一个数字是否是要求的数字
想到用栈和队
再看看例子
1.发现如果给的数组的最后一位刚好是所要求的得重新去排
2.排过一次后达到目的数字了就只输出一次
注意更新栈的栈顶就可以了还有防止越界了
我就是因为没有注意只有一个数的情况re了
上代码

queue<int> q1,q2;
    stack<int> st2;
    for (int i = 1; i <= n; i++) {
        int a; cin >> a;
        q1.push(a),st2.push(a);
    }
    if(n == 1)cout << q1.front();
    else {
        for (int ii = 1; ii <= n; ii++) {
            int t = st2.top();
            st2.pop();
            if (st2.top() == n) {
                q2.push(t);
                for (int i = 1; i <= n - 1; i++) {
                    q2.push(q1.front());
                    q1.pop();
                }
                for (int i = 1; i <= n; i++) {
                    if (i == n)cout << q2.front();
                    else {
                        cout << q2.front() << ' ';
                        q2.pop();
                    }
                }
                break;
            } else {
                for (int i = 1; i <= n; i++) {
                    if (st2.empty())break;
                    else st2.pop();
                }
                q2.push(t);
                for (int i = 1; i <= n - 1; i++) {
                    q2.push(q1.front());
                    q1.pop();
                }
                q1.pop();
                for (int i = 1; i <= n; i++) {
                    if (i == n) {
                        cout << q2.front() << endl;
                        q1.push(q2.front()), st2.push(q2.front());
                        q2.pop();
                    } else {
                        cout << q2.front() << ' ';
                        q1.push(q2.front()), st2.push(q2.front());
                        q2.pop();
                    }
                }
            }
        }
    }

把一个队换成数组好像更号,不用pop那么多次

标签:week,q1,数字,st2,数组,match,mistake
From: https://www.cnblogs.com/TFOREVERY/p/17034711.html

相关文章

  • The first week match's mistake
    比赛中的补题中的一些错误P8506标题计数(https://www.luogu.com.cn/problem/P8506)第一眼下去,嗯。。贪了,只读到一个‘#’后边跟一个空格就+1,结果wa几个了老老实实一个......
  • rayTracingTheNextWeek总结
    前言本系列总结自RayTracing:TheNextWeek,前篇为rayTracingInOneWeekend-爱莉希雅-博客园(cnblogs.com)。需要一点点的图形学基础,不懂的同学可以移至GAMES101-......
  • VBA查找、匹配函数 Find 、Match
      Range.Find方法(Excel) 表达式.Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)特别重要的......
  • 重磅直播|PatchmatchNet:一种高效的Multi-view Stereo框架(CVPR2021)
    本期由苏黎世联邦理工学院ComputerVisionandGeometryGroup王方锦华博士分享,分享的主题为《PatchmatchNet:基于传统PatchMatch算法的高效Multi-viewStereo框架》,主讲人会......
  • git 拉取新分支 error: pathspec ‘develop‘ did not match any file(s) known to gi
     git上有develop分支,branch查看分支看不到develop,checkout切换分支报错一、问题 git上有develop分支,branch查看分支看不到develop,checkout切换分支报错(一)branch查看......
  • 3week-4切片
    一.切片的特性可以切除来一个新的子片长度可变,长度元素个数容量可变,长度和容量可以不一样底层用数组,(顺序表访问快)推荐使用make定义,可以指定初始容量大小,减少......
  • profession computing -- week architecture
      Model-View-Controller(MVC)Pattern ......
  • profession week--3/4 一系列的软件开发过程
      SystemsDevelopmentLifeCycle:  waterfallapproac  Thesoftwaredevelopmentprocess     ......
  • [Leetcode Weekly Contest]326
    链接:LeetCode[Leetcode]2520.统计能整除数字的位数给你一个整数num,返回num中能整除num的数位的数目。如果满足nums%val==0,则认为整数val可以整除nums......
  • 立体匹配|Stereo Matching
    文章目录​​背景概念​​​​对极几何​​​​视觉模型​​​​基本流程​​​​匹配代价计算​​​​代价聚合​​​​视差计算​​​​视差优化​​​​References​​......