package AAA;
import java.math.*;
import java.util.*;
public class D {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
BigInteger mod = BigInteger.valueOf(1);
for(int i = 1; i <= 100; i++)//乘一百次
mod = mod.multiply(BigInteger.valueOf(10));
while(in.hasNext()){ //当有数字输入的时候
int n = in.nextInt();
BigInteger ans = BigInteger.valueOf(1);
BigInteger ret = BigInteger.valueOf(1);
for(int i = 1; i<= n; i++){
ans = ans.multiply(BigInteger.valueOf(i));
ans = ans.multiply(BigInteger.valueOf(i+1));
//ans = ans.divide(BigInteger.valueOf(i));
//ans = ans.divide(BigInteger.valueOf(i+1));
ret = ret.add(ans);
}
in.close();
// cin.close();
ret = ret.mod(mod);
System.out.println(ret);
}
BigInteger a[] = new BigInteger[1005];
a[1] = a[2] = BigInteger.valueOf(5);
for (int i =3; i< 1005; i++){
a[i] = a[i-1].add(a[i-2]);
}
//String s="-123459999999999999999999";
//BigInteger c=new BigInteger(s,10);
//把字符串转换成10进制的大数;
//toString()将BigDecimal对象的数值转换成字符串。
//Scanner cin = new Scanner(System.in); //定义一个输入
//BigInteger num2=cin.nextBigInteger();
//BigInteger num3=cin.nextBigInteger();
//System.out.println(num2.add(num3));
//int T=cin.nextInt(); //输入整数
//System.out.println(T); //输出
// BigInteger a, b;
// b=BigInteger.valueOf(T); //直接赋值给大数字
// a=BigInteger.valueOf(3);
// System.out.println(a); //大数字可以直接输出
// System.out.println(a.add(b));//大整数加法
// System.out.println(a.subtract(b));//大整数减法
// System.out.println(a.multiply(b));//大整数乘法
// System.out.println(a.divide(b));//大整数除法,取整
//除法(在divide的时候就设置好要精确的小数位数和舍入模式)
// System.out.println(num1.divide(num2,10,BigDecimal.ROUND_HALF_DOWN));
// System.out.println(a.remainder(b));//大整数取模
// System.out.println(a.abs());//对大整数a取绝对
/* System.out.println(num1.gcd(num2));
//取绝对值
System.out.println(num1.abs());
//取反
System.out.println(num1.negate());
//取最大值
System.out.println(num1.max(num2)); //取最大值
System.out.println(num1.min(num2)); *///取最小值
// int x=2;
// System.out.println(a.pow(x));//大整数a的x次幂
// int y = 8;
// System.out.println(a.toString(y));//返回大整数a的p进制用字符串表现的形式
// System.out.println(a.toString());//返回大整数a的十进制用字符串表现的形式
// //大整数之间的比较
// if(a.compareTo(b)==0)System.out.println("a==b");
// else if (a.compareTo(b)>0) System.out.println("a>b");
// else if (a.compareTo(b)<0) System.out.println("a<b");
// BigDecimal c,d;
// c=BigDecimal.valueOf(55.55);
// d=BigDecimal.valueOf(3.789);
// System.out.println(c.add(d));//浮点数相加
// System.out.println(c.subtract(d));//浮点数相减
// System.out.println(c.multiply(d));//浮点数相乘
}
}
P1005
注意包名/类名/RE一定是未初始化
2 3
1 2 3
3 4 2
82
package AAA; //提交时注意删除包名
import java.math.*;
import java.util.*;
public class Main{ //提交时的class为Main
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt(),m = in.nextInt();
BigInteger a[][] = new BigInteger[105][105];
for(int i=0;i<=n+1;i++)
for(int j=0;j<=m+1;j++)
a[i][j]=BigInteger.valueOf(0); //初始化数组后才可以进行使用
for(int i=1;i<=n;i++) { //注意初始化所有元素
for(int j=1;j<=m;j++) {
int t1=in.nextInt();
a[i][j]=BigInteger.valueOf(t1);
}
}
BigInteger dp[][] = new BigInteger[105][105];
BigInteger Sum1 = BigInteger.valueOf(0);
BigInteger res1,res2;
for(int i=1;i<=n;i++) {
for(int ii=0;ii<=100;ii++)//初始化的元素注意是否完全包含在里面了
for(int jj=0;jj<=100;jj++)
dp[ii][jj]=BigInteger.valueOf(0);
BigInteger max1 = BigInteger.valueOf(0);
BigInteger is = BigInteger.valueOf(1);
BigInteger num = BigInteger.valueOf(2);
for(int j=1;j<=m;j++) {
is=is.multiply(num);
for(int k=0;k<=j;k++) { //k从0开始是因为有可能这一行一个都没有取
BigInteger new1 = a[i][k].multiply(is);
BigInteger new2 = a[i][m-(j-k)+1].multiply(is);
if(k==0){
res1 = BigInteger.valueOf(0);
}else{
res1 = dp[j-1][k-1].add(new1);
}
res2 = dp[j-1][k].add(new2);
dp[j][k]=res1.max(res2);
max1=max1.max(dp[j][k]);
}
}
Sum1=Sum1.add(max1);
}
System.out.println(Sum1);
return ;
}
}