• Sicily 1021. Couples


    题目地址:1021. Couples

    思路:

         想清楚了这道题其实很简单。利用夫妻出现的位置作为下标,并设为同一值,第一对夫妻值为1,第二对为2,以此类推,存储完毕即可进入下一步。

         利用栈这个数据结构:遍历这个数组,当栈不为空且栈顶元素等于数组出现的元素时,pop掉栈顶元素,其余情况则入栈。循环完毕,若栈为空则为Yes,否则为No。

         具体代码如下:

     1 #include <iostream>
     2 #include <stack>
     3 using namespace std;
     4 
     5 int main() {
     6     int num;
     7     while (cin >> num && num) {
     8         int *store = new int[num*2+1];
     9         for (int i = 1; i <= num; i++) {
    10             int a, b;
    11             cin >> a >> b;
    12             store[a] = store[b] = i;
    13         }
    14         stack<int> st;
    15         for (int i = 1; i <= num*2; i++) {
    16             if (!st.empty() && st.top() == store[i]) {
    17                 st.pop();
    18             }
    19             else {
    20                 st.push(store[i]);
    21             }
    22         }
    23         st.empty() ? cout << "Yes
    " : cout << "No
    ";
    24     }
    25     
    26     return 0;
    27 }
  • 相关阅读:
    3.1C#中的命名空间
    2章总结
    2.4冒泡排序
    2.3 C#中的数组
    2.2二重循环
    2.1c#中的循环语句
    1章总结
    docker内外数据拷贝
    搭建docker环境
    centos7 部署Apache的httpd服务器
  • 原文地址:https://www.cnblogs.com/winray/p/4109530.html
Copyright © 2020-2023  润新知