调试
System.exit(0);
1205. 买不到的数目
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();System.out.println((n-1)*(m-1)-1);}
}
1211. 蚂蚁感冒
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] res = new int[n+1];for(int i=1;i<=n;i++)res[i] = sc.nextInt();//判断第一个(感冒的)蚂蚁向左走还是向右走//向右走if(res[1] > 0) {//判断左边向右走的蚂蚁数目int left = 0;for(int i=1;i<=n;i++) {if(Math.abs(res[i]) < Math.abs(res[1])) {if(res[i]>0) {left++;}}}//判断右边向左走的蚂蚁数目int right = 0;for(int i=1;i<=n;i++) {if(Math.abs(res[i]) > Math.abs(res[1])) {if(res[i]<0) {right++;}}}if(right == 0) {System.out.println(1);}else {System.out.println(left+right+1);}}//向左走if(res[1] < 0) {//判断左边向右走的蚂蚁数目int left = 0;for(int i=1;i<=n;i++) {if(Math.abs(res[i]) < Math.abs(res[1])) {if(res[i]>0) {left++;}}}//判断右边向左走的蚂蚁数目int right = 0;for(int i=1;i<=n;i++) {if(Math.abs(res[i]) > Math.abs(res[1])) {if(res[i]<0) {right++;}}}if(left == 0) {System.out.println(1);}else {System.out.println(left+right+1);}}}
}
1216. 饮料换购
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int sum = n;//记录初始可以喝到的数目int t = 0;//每喝3瓶记录换一瓶while(n!=0) {n--;t++;if(t == 3) {sum++;//记录喝到的总数t = 0;//记录置空n++;//换到一瓶}}System.out.println(sum);//输出喝到的总瓶数}
}
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int sum = n;while(n>=3) {sum += n/3;n = n/3 + n%3;}System.out.println(sum);}
}
1015. 摘花生
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int t = sc.nextInt();while(t-- != 0) {int r = sc.nextInt();int c = sc.nextInt();int[][] res = new int[r+1][c+1];for(int i=1;i<=r;i++)for(int j=1;j<=c;j++)res[i][j] = sc.nextInt();//i j (i-1,j)和(i,j-1)int[][] dp = new int[r+1][c+1];for(int i=1;i<=r;i++)for(int j=1;j<=c;j++)dp[i][j] = Math.max(dp[i][j-1]+res[i][j], dp[i-1][j]+res[i][j]);//向下或者向右走System.out.println(dp[r][c]);}}
}
2. 01背包问题
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;public class Main {static final int N = 1010;static int[][] f = new int[N][N];static int[] vv = new int[N];static int[] ww = new int[N];public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));String[] s = br.readLine().split(" ");int n = Integer.parseInt(s[0]);int v = Integer.parseInt(s[1]);for(int i=1;i<=n;i++) {String[] ss = br.readLine().split(" ");vv[i] = Integer.parseInt(ss[0]);ww[i] = Integer.parseInt(ss[1]);}
// for (int i = 1; i <= n; i ++ )
// for (int j = 1; j <= v; j ++ )
// {
// f[i][j] = f[i - 1][j];
// if (j >= vv[i])
// f[i][j] = Math.max(f[i][j], f[i - 1][j - vv[i]] + ww[i]);
// }for(int i=1;i<=n;i++) {for(int j=1;j<=v;j++) {if(vv[i]>j)f[i][j] = f[i-1][j];elsef[i][j] = Math.max(f[i-1][j],f[i-1][j-vv[i]]+ww[i]);}}System.out.println(f[n][v]);}
}