Java板子备份

Java BigInteger

import java.math.*;
import java.util.*;
import java.io.*;
public class JavaBigInteger{
	public static void main(String [] arg){
		Scanner cin=new Scanner(System.in);
		BigInteger a;
		BigInteger b=new BigInteger("101",2);
		BigDecimal c;
		a=BigInteger.valueOf(4);
		a=cin.nextBigInteger();
		b=cin.nextBigInteger(2);
		c=cin.nextBigDecimal();
		BigInteger[] Ar=new BigInteger[10];
		BigInteger[][] Arr=new BigInteger[10][10];
		int x=a.intValue();
		a=a.min(b);
		a=a.add(b);
		a=a.subtract(b);
		a=a.divide(b);
		a=a.multiply(b);
		a=a.mod(b);
		a=a.pow(b.intValue());
		a=a.gcd(b);	
		a=a.abs();
		a=a.negate();
		a=a.shiftLeft(3);
		a=a.xor(b);
		int y=a.signum();
		int l=a.bitLength();
		int bt=a.bitCount();
		boolean prim=a.isProbablePrime(50);
		boolean eq=a.equals(b);
		if(a.compareTo(b)<0){
			//	equals a.subtract(b).signum , I think.
		}
		System.out.println(b);
	}
}

Java Fast Input

import java.io.*;
import java.util.*;
public class IO{
  
  public static void main(String[] args) {
    
    InputReader cin = new InputReader(System.in);
	PrintWriter cout=new PrintWriter(System.out);
	int n=10000000;
	for(int i=0;i<n;i++){
		cout.write(String.valueOf(i)+"\n");
	}
	cout.flush();
	cout.close();
  }
  private static class InputReader {

      public BufferedReader rea;
      public StringTokenizer tok;

      public InputReader(InputStream stream) {
          rea = new BufferedReader(new InputStreamReader(stream), 32768);
          tok = null;
      }

      public String next() {
          while (tok == null || !tok.hasMoreTokens()) {
              try {
                  tok = new StringTokenizer(rea.readLine());
              } catch (IOException e) {
                  throw new RuntimeException(e);
              }
          }
          return tok.nextToken();
      }

      public int nextInt() {
          return Integer.parseInt(next());
      }
  }
}

vimrc备份(windows)

set ruler
set number
set smartindent
set autoindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set hlsearch
set incsearch
set autoread
set backspace=2
set mouse=a

set guifont=Consolas:h14

syntax on

nmap <C-A> ggVG
vmap <C-C> "+y

filetype plugin indent on

autocmd FileType cpp set cindent
autocmd FileType cpp map <F9> :!g++ % -o %< -g -std=c++11 <CR>
autocmd FileType cpp map <C-F9> :!g++ % -o %< -std=c++11 -O2 && size %< <CR>
autocmd FileType cpp map <F8> :!%< < %<.in <CR>
autocmd FileType cpp map <F5> :!%< <CR>

map <F3> :vnew %<.in <CR>
map <F4> :!write % <CR>

autocmd FileType java set cindent
autocmd FileType java map <F9> :!javac % <CR>
autocmd FileType java map <F8> :!java %< < %<.in <CR>
autocmd FileType java map <F5> :!java %< <CR>

某无聊的线性求逆元

队友@idy002今天突然发现了一个求1!,2!..n!的逆元的方法,我脑洞了一下,发现居然可以搞线性逆元……虽然和以前的方法复杂度一样就是了……

首先O(n+log(p))暴力求$n!^{p-2}$,得到n!的逆元

然后依次乘n,n-1..1,就得到了$\forall i\in [1,n]_{\mathbb Z}~i!$的逆元

再暴力一遍阶乘……用(i-1)!去乘i!的逆元……

然后我们就得到了1..n的逆元了……

这种方法比inv[i]=(p-p/i)*inv[p%i]的优点在于……好记……?

当然以上都是在$\mathbb Z_p$下的