zoukankan      html  css  js  c++  java
  • 2020 11 07 天梯赛

    7-9 点赞狂魔

    之前比赛的时候之所以WA是因为忽略了n==0和n==1的情况。这提醒我要注意观察题目所给变量的取值范围,注意临界值。

    结构体排序,再按照要求格式化输出即可。

    代码如下:

    #include<bits/stdc++.h>

    using namespace std;

    struct per

    {

        string name;

        int num=0;

        int sum=0;

    }p[200];

    bool cmp(per i,per j)

    {

        if(i.sum==j.sum)

        {

            return i.num<j.num;

        }

        return i.sum>j.sum;

    }

    int main()

    {

        int n,i,j,k;

        cin>>n;

        string s;

        for(i=0;i<n;i++)

        {

            cin>>s;

            p[i].name=s;

            cin>>k;

            p[i].num=k;

            set<int>ss;

            for(j=0;j<k;j++)

            {

                int tem;

                cin>>tem;

                ss.insert(tem);

            }

            p[i].sum=ss.size();

        }

        sort(p,p+n,cmp);

        if(n<3)

        {

            bool flag=0;

            for(i=0;i<n;i++)

            {

                flag=1;

                if(i==0)

                cout<<p[i].name;

                else

                {

                    cout<<" "<<p[i].name;

                }

            }

            for(i=0;i<(3-n);i++)

            {

                if(flag==1)

                {

                    cout<<" -";

                }

                else

                {

                    cout<<"- - -";

                }

            }

            cout<<endl;

        }

        else

        {

            for(i=0;i<3;i++)

            {

                if(i==0)

                {

                    cout<<p[i].name;

                }

                else

                {

                    cout<<" "<<p[i].name;

                }

            }

            cout<<endl;

        }

        return 0;

    }

    7-11 彩虹瓶

    想复杂了。真正AC的代码比我WA的代码简单多了。如果一个题的代码太过复杂,要及时转换思路。

    用一个栈来模拟题目中的架子,然后循环模拟即可。

    代码如下:

    #include<bits/stdc++.h>

    using namespace std;

    int main()

    {

        int n,m,k,i,j;

        cin>>n>>m>>k;

        int a[1000+8];

        while(k--)

        {

            bool flag=1;

            stack<int>s;

            set<int>judge;

            int d=1;

            for(i=0;i<n;i++)

            {

                cin>>j;

                s.push(j);

                judge.insert(j);

                if(s.top()==d)

                {

                    s.pop();

                    judge.erase(d);

                    d++;

                    while(!s.empty())

                    {

                        if(s.top()==d)

                        {

                            s.pop();

                            judge.erase(d);

                            d++;

                        }

                        else

                        {

                            break;

                        }

                    }

                }

                else

                {

                    ;

                }

                if(s.size()>m)

                {

                    flag=0;

                }

                if(judge.find(d)!=judge.end())

                {

                    flag=0;

                }

            }

            if(flag==1)

            {

                cout<<"YES"<<endl;

            }

            else

            {

                cout<<"NO"<<endl;

            }

        }

        return 0;

    }

  • 相关阅读:
    Android学习——day13
    寒假周总结三
    构建之法读书笔记03
    Android学习——day12
    每日日报2020 11/18
    每日日报2020 11/17
    每日日报2020 11/16
    每日日报2020 11/15
    每日日报2020 11/13
    每日日报2020 11/12
  • 原文地址:https://www.cnblogs.com/chengxvzhishen/p/13977705.html
Copyright © 2011-2022 走看看