SYSU_1620

5887 ワード

省試合前の最後の練習試合
J題:
水の問題、左右は互いに打って残りの数の水の問題を求めて当てません.
C題
nを与える、sigma(A(2,n)+A(3,n)+…+A(n,n))の高精度を求める.何度も間違えたのは最小加数(longlong)の妥当性を検査しなかったからだ
E題
逆パスワード...要求通りに行ってください
G題
与えられた数より大きい最小の数1を求める.右から左に掃くと、最初に減らすことができる数2が得られる.減算可能な数から左に掃く第1加算可能な数3を得る.加算できる数の右端の最小配列
H題
求‘1’,’2’组成的可以2^n整除的数测高精度除算+乗算..たくさんの人がJava/Pythonで過ごしました.JavaBig
//java
http://lavasoft.blog.51cto.com/62575/228705

package lavasoft; 

import java.math.BigInteger; 
import java.util.Random; 

/** *   BigInteger * * @author leizhimin 2009-11-17 12:49:41 */ 
public class TestBigInteger { 
        public static void main(String[] args) { 
                System.out.println("-------------------  BigInteger---------------------"); 
                //  byte     BigInteger 
                BigInteger bi1 = new BigInteger(new byte[]{1, 1}); 
                System.out.println("bi1=" + bi1.toString()); 
                //      BigInteger 
                BigInteger bi2 = new BigInteger(-1, new byte[]{1, 1}); 
                System.out.println("bi2=" + bi2.toString()); 
                //      BigInteger    
                BigInteger bi3 = new BigInteger(128, 20, new Random()); 
                System.out.println("bi3=" + bi3.toString()); 
                //  10           BigInteger 
                BigInteger bi4 = new BigInteger("12342342342342123423423412341"); 
                System.out.println("bi4=" + bi4.toString()); 
                //  10           BigInteger 
                BigInteger bi5 = new BigInteger("88888888888888888888888888888", Character.digit('a', 33)); 
                System.out.println("bi5=" + bi5.toString()); 
                System.out.println("BigInteger   :"); 
                System.out.println("BigInteger.ZERO=" + BigInteger.ZERO); 
                System.out.println("BigInteger.ONE=" + BigInteger.ONE); 
                System.out.println("BigInteger.TEN=" + BigInteger.TEN); 

                System.out.println("-------------------  BigInteger---------------------"); 
                System.out.println("bi1    =" + bi1.negate()); 
                System.out.println("bi1    =" + bi1.negate()); 
                System.out.println("bi1+bi2=" + bi1.add(bi2)); 
                System.out.println("bi1-bi2=" + bi1.subtract(bi2)); 
                System.out.println("bi1*bi2=" + bi1.multiply(bi2)); 
                System.out.println("bi1/bi2=" + bi1.divide(bi2)); 
                System.out.println("bi1 10  =" + bi1.pow(10)); 
                System.out.println("bi1 10  =" + bi1.pow(1)); 
                BigInteger[] bx = bi4.divideAndRemainder(bi1); 
                System.out.println(">>>:bx[0]=" + bx[0] + ",bx[1]=" + bx[1]); 
                System.out.println("bi2    =" + bi2.abs()); 
        } 
}

D題
N日目に配るのではなく、N日目に配るのではなく、締め切りから逆さに掃くのが主な考え方で、最後から逆さに掃くのではなく
sort(D,D+tot);
    for (int i = 0; i < tot; ++i) {
        for (int j = D[i].day; j >= 1; j--) {
            if (cnt[j] == 0) {
                cnt[j] = D[i].ori;
                break;
            }
        }
    }