HDU5912模拟

来源:互联网 发布:lcd1602读取数据 编辑:程序博客网 时间:2024/06/15 06:10





The second line contains n integers: a1,a2,an(1ai10).
The third line contains n integers: b1,b2,,bn(1bi10).
C语言课后习题

import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.math.BigInteger;import java.util.Scanner;import java.util.StringTokenizer;public class Main {    public static void main(String[] args) {    new Task().solve(); ;     }}class  Task{  Scanner in = new Scanner(new BufferedInputStream(System.in)) ;PrintWriter out = new PrintWriter(System.out) ;void solve(){int t = in.nextInt() ;for(int ca = 1 ; ca <= t ; ca++){int n = in.nextInt() ;BigInteger[] a = new BigInteger[n+1] ;BigInteger[] b = new BigInteger[n+1] ;for(int i = 1 ; i <= n ; i++) a[i] = in.nextBigInteger() ;for(int i = 1 ; i <= n ; i++) b[i] = in.nextBigInteger() ;BigF tm = new BigF(b[n] , a[n]) ;for(int i = n-1 ; i >= 1 ; i--){tm = new BigF(a[i]).add(tm) ;tm = new BigF(b[i] , tm) ;}out.println("Case #" + ca + ": " + tm.zi + " " + tm.mu) ;}out.flush() ; }class BigF{BigInteger mu , zi ;BigF(BigInteger zi , BigInteger mu){    BigInteger g = mu.gcd(zi) ;mu = mu.divide(g) ;zi = zi.divide(g) ;    this.mu = mu ;    this.zi = zi ;}BigF(BigInteger zi , BigF mu){this.mu = mu.zi ;this.zi = zi.multiply(mu.mu) ;BigInteger g = this.mu.gcd(this.zi) ;this.mu = this.mu.divide(g) ;this.zi = this.zi.divide(g) ;}BigF(BigInteger zi){    this.zi = zi ;    this.mu = BigInteger.ONE ;}BigF(){}BigF add(BigF o){BigF res = new BigF() ;res.mu = this.mu.multiply(o.mu) ;res.zi = this.zi.multiply(o.mu) .add( o.zi.multiply(this.mu) ) ;BigInteger g = res.mu.gcd(res.zi) ;res.mu = res.mu.divide(g) ;res.zi = res.zi.divide(g) ;return res ;}} } class InputReader {      public BufferedReader reader;      public StringTokenizer tokenizer;        public InputReader(InputStream stream) {          reader = new BufferedReader(new InputStreamReader(stream), 32768);          tokenizer = new StringTokenizer("");      }        private void eat(String s) {          tokenizer = new StringTokenizer(s);      }        public String nextLine() {          try {              return reader.readLine();          } catch (Exception e) {              return null;          }      }        public boolean hasNext() {          while (!tokenizer.hasMoreTokens()) {              String s = nextLine();              if (s == null)                  return false;              eat(s);          }          return true;      }        public String next() {          hasNext();          return tokenizer.nextToken();      }        public int nextInt() {          return Integer.parseInt(next());      }        public long nextLong() {          return Long.parseLong(next());      }        public double nextDouble() {          return Double.parseDouble(next());      }        public BigInteger nextBigInteger() {          return new BigInteger(next());      }    }  


0 0
原创粉丝点击