zoukankan      html  css  js  c++  java
  • CF 996B World Cup 【找规律/模拟】

    CF
    【题意】:圆形球场有n个门,Allen想要进去看比赛。Allen采取以下方案进入球场:开始Allen站在第一个门,如果当前门前面有人Allen会花费单位时间走到下一个门,如果没人Allen从这个门就进去了。球场的每个门,每单位时间可以进去一个人。问Allen最终是从哪个门进入球场的?
    【分析】:我们可以发现是有规律的。我们假设第i个门有a个人,Allen第x圈可以从此进入,那么有:x∗n+i=a→x=abs(a−i)/n,所以第一个最小圈数进入的那个门就是答案。
    【代码】:

    #include <bits/stdc++.h>
    using namespace std;
    const int MAXN = 1e5+5;
    const int INF = 0x3f3f3f3f;
    int n, ans;
    int main()
    {
        scanf("%d", &n);
        int MIN = INF;
        for (int i = 1; i <= n; i++)
        {
            int a; 
            scanf("%d", &a);
            if(MIN > (a-i+n)/n)//x*n+i=a =》x=abs(a-i)/n
            {
                MIN = (a-i+n)/n;
                ans = i;
            }
        }
        printf("%d
    ", ans);
        return 0;
    }
    
    
  • 相关阅读:
    Spring 注解详解01
    java 排序算法
    Java 文件拼接器
    oracle join
    Oracle 去重
    Java 笔试面试
    Oracle 笔试题02
    jvm性能查看常用命令
    关于对JMM(java内存模型)的个人理解
    RSA前端加密后端解密避免出现明文密码
  • 原文地址:https://www.cnblogs.com/Roni-i/p/9251862.html
Copyright © 2011-2022 走看看