zoukankan      html  css  js  c++  java
  • AtCoder Beginner Contest 187 C

    C - 1 - SAT

    看了官网提供的题解,发现这个思路很巧妙,同时也作为对STL中的set容器的学习吧

    题目分析

    这道题需要一个set容器来储存输入的字符串。

    测试数据无非有两类:以!开头的字符串和没有以!开头的字符串 。输入的如果是以!开头的字符串,那么把!去掉后再在set容器查找一下是否有匹配的元素,如果存在的话,输出匹配的元素,结束程序运行;对于非!开头的元素,那么在容器查找一下加上!后是否有匹配的元素,如果存在的话,输出匹配的元素,结束程序运行。如果无匹配元素,那么将输入的字符串储存在容器中。

    我原本的思路是储存完字符串之后,再遍历一遍 好暴力qwq ,但这个思路完全是反过来了:判断完再储存。对于我这蒟蒻来说这个思路确实是想不到,顺便也学习了set的一些用法。

    AC代码

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    string ss;
    set<string> s;
    int main(){
        ios_base::sync_with_stdio(false);
        ios::sync_with_stdio(false);
       
        cin >> n;
        for(int i = 0; i < n; i++){
            cin >> ss;
            if(ss[0] == '!'){
                string t = ss; 
                t.erase(t.begin());
                if(s.count(t)){
                    cout << t << endl; return 0;
                }
                
            }
            else {
                string t = "!" + ss;
                if(s.count(t)){
                    cout << ss << endl; return 0;
                }
            }
            s.insert(ss);
        }
        cout << "satisfiable" << endl;
    
        return 0;
    }
    
  • 相关阅读:
    Boost线程库学习笔记
    sizeof运算符
    用法char ch=getchar()正确性详解
    C语言中的缓冲输出
    算术运算的溢出行为 and 一个数内存中表示1的个数
    ARP、RARP、ICMP、ping
    http和https协议
    关于宋词频率统计(R语言)
    Backbone.js API中文文档
    腾讯小Q书桌图标怎么实现的啊?
  • 原文地址:https://www.cnblogs.com/FrankOu/p/14226691.html
Copyright © 2011-2022 走看看