zoukankan      html  css  js  c++  java
  • ural 1818 Fair Fishermen

    题意:

      有n个人分鱼,第一个人先来拿,检查一下总数,如果不能恰好分成n份,则扔掉多余的部分,然后拿走自己应得的1/n,第二个人也重复这个步骤,直到第n个人,然后告诉你每次扔掉鱼的数量,求一开始最少有多少鱼。

    方法:

      对于例子

      4

      1 1 1 2

      假设第三个人拿完以后的状态是还有X条鱼,设X = A[n]+K = 2+K,那么要满足X%(N-1)==0,且K的出现不会影响多余鱼的条数,也就是说,把这个K单独当成一部分,它可以正好分给n个人1次,那我们现在要找到这个最小的K,易知最小的K就是N*(N-1-A[N]%(N-1)),这样我们就推出了X,带入得X=6。

      则第三个人拿之前的个数就是Y = X/(N-1)*N+a[3],设Z是第二个人拿完之后的条数,假设Z = Y + K2,和上一次要求一样,则K2=N^2*(N-1-Y%(N-1)),系数是N^2,这样可以保证它下面2层都正好足够分给N个人,且不可能存在比这个更小的满足条件的系数。

      其实还是有点小混乱,先记录下来,回头脑袋清醒了再来研究一番~

    代码:

     1 import java.math.BigInteger;
     2 import java.util.Scanner;
     3 
     4 public class Main{
     5     static int[]a = new int[2013];
     6     public static BigInteger V(int v){
     7         return BigInteger.valueOf(v);
     8     }
     9     public static void main(String[] args){
    10         Scanner cin = new Scanner(System.in);
    11         int n = cin.nextInt();
    12         for(int i=0;i<n;i++){
    13             a[i] = cin.nextInt();
    14         }
    15         BigInteger ans=V(a[n-1]),now=V(n),mod=V(n-1);
    16         for(int i = n-2;i >= 0;i--){
    17             int dif = ans.mod(mod).intValue();
    18             if(dif!=0) dif = n-1-dif;
    19             ans = ans.add(now.multiply(V(dif))).divide(mod).multiply(V(n)).add(V(a[i]));
    20             System.out.println(ans);
    21             now = now.multiply(V(n));
    22         }
    23         if(ans.equals(V(0))) ans = now;
    24         System.out.println(ans);
    25     }
    26 }
    ural 1818

      

  • 相关阅读:
    关于程序员认知和编程学习,没有任何一篇文章会讲得如此透彻
    Found 1 slaves: Use of uninitialized value in printf at /usr/local/percona-toolkit/bin/pt-online-schema-change line 8489
    alert 多语言的处理
    #!/bin/sh & #!/bin/bash区别
    mysql 常用
    java.io.FileNotFoundException
    struts1 & jquery form 文件异步上传
    简单的数据库连接池实例(java语言)
    null id in com.rocky.** entry 错误处理
    java unsupported major.minor version 51.0 解决
  • 原文地址:https://www.cnblogs.com/SolarWings/p/3439545.html
Copyright © 2011-2022 走看看