• Codeforces-Round#614 Div2


    A题 ConneR and the A.R.C. Markland-N

    题解:

    在当前点左右对称的尝试走即可

    int t;
        cin>>t;
        for(int i=1;i<=t;i++)
        {
            int n,s,k;cin>>n>>s>>k;
            set<int>seq;
            for(int j=1;j<=k;j++){
                int num;scanf("%d",&num);
                seq.insert(num);
            }
            bool find=false;int st=0;
            while(!find)
            {
                if(seq.find(min(n,s+st))==seq.end()||seq.find(max(1,s-st))==seq.end()){
                    find=true;
                    break;
                }
                st++;
            }
            cout<<st<<endl;
        }
        return 0;
    

    B题 JOE is on TV!

    题解:

    看题意,盲猜调和级数

        int n;cin>>n;
        double res=0.0;
    
        for(int i=1;i<=n;i++)
        {
            res+=1.0/i;
        }
        printf("%.9lf
    ",res);
        return 0;
    

    C题 NEKO's Maze Game

    题解:

    使用映射的思想,每个点要挡住路径,需要与对面三个相邻的点匹配。使用(cnt)计数匹配的对数。因为匹配相当于无向边,只需计数一次即可。

    #include<bits/stdc++.h>
    #define MAXN 100010
    using namespace std;
    map<int,vector<int>>m;
    int f[2][MAXN];
    int main()
    {
        memset(f,0,sizeof(f));
        int n,q;cin>>n>>q;
        int cnt=0;
        for(int i=1;i<=q;i++)
        {
            int a,b;scanf("%d%d",&a,&b);
            a--;
            if(f[a][b]){
                if(f[a^1][b])cnt--;
                if(f[a^1][b+1])cnt--;
                if(f[a^1][b-1])cnt--;
            }
            else{
                if(f[a^1][b])cnt++;
                if(f[a^1][b+1])cnt++;
                if(f[a^1][b-1])cnt++;
            }
            f[a][b]=!f[a][b];
            cnt==0?printf("Yes
    "):printf("No
    ");
            
        }
        return 0;
    }
    
  • 相关阅读:
    日期帮助类
    校验帮助类
    缓存帮助类
    数据转换帮助类
    枚举帮助类
    sql 不常用的知识点记录
    反射实例化不同类型的实例
    xml读取
    读取字段别名
    动态类型赋值处理
  • 原文地址:https://www.cnblogs.com/tldr/p/12222045.html
Copyright © 2020-2023  润新知