zoukankan      html  css  js  c++  java
  • Codeforces Round #394 (Div. 2)

    题目链接:http://codeforces.com/contest/761/problem/B

    题意:给定一个环形跑道。里面有n个障碍,跑道长度为L。然后有两个人在两个起点(起点可能相同),每个人都按逆时针走。现在给出这两个人遇到这n个障碍时走的步数。问是否存在合法的障碍分布。
    思路:我们假设第一个人的起点为原点。那么对于第一个人来说n个障碍的位置就是对于他的输入序列。然后枚举第二个人的起点。根据第二个人的序列来判断是否和第一个人的位置一样。一样则说明存在合法分布。 注意由于跑道是环形所以要进行取模。

    import java.io.PrintWriter;
    import java.util.*;
    
    public class Main {
        public static final int MAXN=100+5;
        public static int v[]=new int [MAXN];
        public static int pa[]=new int [MAXN];
        public static int pb[]=new int [MAXN];
        public static void main(String[] args) {
            Scanner cin = new Scanner(System.in);
            PrintWriter out = new PrintWriter(System.out);
            int n=cin.nextInt(),L=cin.nextInt();
            boolean flag=false; 
            Arrays.fill(v, 0);
            for(int i=0;i<n;i++){
                pa[i]=cin.nextInt();
                v[pa[i]]=1;
            }
            for(int i=0;i<n;i++){
                pb[i]=cin.nextInt();
            }
            for(int i=0;i<L;i++){
                Set<Integer>se=new HashSet<Integer>();
                for(int j=0;j<n;j++){
                    if(v[(i+pb[j])%L]==1){
                        se.add((i+pb[j])%L);
                    }else{
                        break;
                    }
                }
                if(se.size()==n){
                    flag=true; break;
                }
            }
            out.printf(flag?"YES":"NO");
            cin.close();
            out.flush();
        }
    }
  • 相关阅读:
    项目管理系列(其他):国际工程承包项目风险识别与分析
    公司注册之简化版
    公司注册之百度百科
    有效投标不足三家不应是重新招标的必要条件
    CPU频率
    集成电路
    晶体管
    Oracle问题之ORA-01609、ORA-00362
    Oracle问题之ORA-12560TNS:协议适配器错误
    Oracle问题之字符集问题,登陆sqlplus出现问号
  • 原文地址:https://www.cnblogs.com/kirito520/p/6420271.html
Copyright © 2011-2022 走看看