(java)普及组 2.10

M honor 2023-02-10 23:42:55

 

P1130 红牌 

动态规划:

状态表示:f[i][j]  第i个步骤在第j组的时间

属性: 时间的min

状态转移: f[i][j] = Math.max(f[i - 1][j] , f[i - 1][j - 1])           j = 第一组时,f[i][j] = Math.max(f[i - 1][j] , f[i - 1][m]   第m组可选择第1组

用Scanner读入数据会出现内存溢出

 

package luogu210;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;

public class Main{
	static int N = 2010;
		static int[][]days = new int[N][N];
		static int[][] dp = new int[N][N];
	public static void main(String[] args) throws IOException {
		StreamTokenizer sc = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		sc.nextToken();
		int n = (int)sc.nval;
		sc.nextToken();
		int m = (int)sc.nval;

		
		for(int i = 1; i <= m; i ++)
			for(int j = 1; j <=n;  j ++) {
				sc.nextToken();
				days[j][i] = (int) sc.nval;
			}
		
		for(int i = 1; i <= n; i ++)
			for(int j = 1; j <= m; j ++)
			dp[i][j] = Math.min(dp[i - 1][j], j == 1 ? dp[i - 1][m] : dp[i - 1][j - 1]) + days[i][j];
			
		int res = Integer.MAX_VALUE;
		for(int i = 1;i <= m; i ++)
			res = Math.min(res, dp[n][i]);
		System.out.println(res);
		
	}
}

 

P1296 奶牛的耳语

 

package luogu210;

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	static int N = 1000010;
	static int[] p = new int[N];
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		int d = sc.nextInt();
		for(int i = 0; i < n; i ++) {
			p[i] = sc.nextInt();
		}
		Arrays.sort(p,0,n);
		int res = 0;
		for(int i = 0; i < n - 1 ; i ++) {
			for(int j = i + 1; j < n; j ++) {
				if((p[j] - p[i]) <= d)
					res ++;
				else 
					break;
			}
		}
		System.out.println(res);
	}
}

 

...全文
29 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,778

社区成员

发帖
与我相关
我的任务
社区描述
和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
算法数据结构leetcode 个人社区
社区管理员
  • 执 梗
  • Dream-Y.ocean
  • ღCauchyོꦿ࿐
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

 刷题!

试试用AI创作助手写篇文章吧