• Codeforces Round #590 (Div. 3)


    A:

    注意:a题的题意即是直接找到平均值像上取整,而不是在原有的序列里面找第一个比它大的数。

    求x/n的平均值向上取整 : (x+n-1)/n

    B1/2:

    题意:

    (模拟操作) 给出长为n的序列,以及一个容量为k的序列容器。如果容器中已经装有则不再放入,如果没有且容器还未装满则填入,否则把最早放入容器的值拿出,并放入新的值。

    所以就可以使用set来记录是否重复,deque进行双端队列出列操作。(算对stl的基本使用的复习了)

    //模拟操作
    #include <bits/stdc++.h>
    using namespace std;
    #define ios std::ios::sync_with_stdio(false) , std::cin.tie(0) , std::cout.tie(0)
    set<int>qq;
    depp<int>pp;
    depp<int>::iterator it;
    int a[105];
    int main(){
        int n,k;
        cin>>n>>k;
        cin>>a[1];
        qq.insert(a[1]);
        pp.push_front(a[1]);
        for(int i=2;i<=n;i++){
            cin>>arr[i];
            if(qq.count(a[i])) continue;
            if(qq.count(a[i]) == 0&&qq.size()<k){
                qq.inset(a[i]);
                pp.push_front(a[i]);
            }else if(qq.count(a[i])==0&&qq.size()==k){
                it = pp.end(); it--;
                qq.erase(*it);
                pp.pop_back();
                pp.push_front(a[i]);
                qq.insert(a[i]);
            }
        }
        cout<<pp.size()<<endl;
        for(it = pp.size();it!=pp.end();it++){
            cout << *it <<" "endl;
        }
        return 0;
    }
    View Code

    求x/n的平均值:(x+n-1)/n

    C:

    题意:

    #include <bits/stdc++.h>
    //问从左上到右下是否能够走通
    //利用dfs进行搜索
    //对于1,2管道只能从左到右(不能从上到下)
    //建图向下为x正方向,向右为y正方向
    //首先确定能够走的方向:x=1时,(向右,向下)
    //x=2时,(向右向上)
    using namespace std;
    string pipe[2];
    int flag ;
    int n;
    //to=1时向右,to=2向上,to=3向下
    int getval(int x){
        if(x==1||x==2) return 1;
        else return 0;
    }
    //上下层,进入位置,进入方向
    void dfs(int st,int pos,int to){
        int val = getval(pipe[st][pos]-'0');
        if(flag||(st==1&&pos==n&&to==1)) {flag = 1; return;}
        if(pos>n) return;
        if(val){
            if(to==1) dfs(st,pos+1,1);
            else return ;//走不通
        }else{
            if(st==0){
                //如果在当前块上向右,则转移到向下(接口)
                if(to==1){
                    dfs(1,pos,3);
                }else if(to==2){
                    dfs(0,pos+1,1);
                }
            }else{
                if(to==1){
                    dfs(0,pos,2);
                }else if(to==3){
                    dfs(1,pos+1,1);
                }
            }
    
        }
    }
    int main(){
        int q;
        cin>>q;
        while(q--){
            cin>>n;
            for(int i=0;i<2;i++){
                cin>>pipe[i];
            }
            flag = 0;
            dfs(0,0,1);
            if(flag) puts("YES");
            else puts("NO");
        }
        return 0;
    }
    View Code


     

  • 相关阅读:
    sqlilab less19-less22
    sqlilab less11-less18
    逆向——序列号相关总结
    xctf攻防世界——crackme writeup
    ESP定律脱壳——NsPack3.x脱壳
    避免全局变量漫天飞
    C语言实现队列
    STM32中的C语言知识点
    超时事件时间戳
    STM32-电源控制、低功耗模式
  • 原文地址:https://www.cnblogs.com/Tianwell/p/11667446.html
Copyright © 2020-2023  润新知