打卡第三天——14th蓝桥杯(今天很菜)

归辞_备赛版 归辞_备赛版 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

第一题 门牌子制作

暴力出结果,统计字符串中2的个数

package month_training;

public class 门牌号 {
	static int n = 2020;
	public static void main(String[] args) {
		int count = 0;
		for(int i=1;i<=2020;i++) {
			String s = String.valueOf(i);
			int len = s.length();
			for(int j = 0;j<len;j++) {
				if(s.charAt(j)=='2') {
					count ++;
				}
			}
		}
		System.out.print(count);
	}

}

第二题 货物摆放

求因子,然后暴力

package month_training;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;

public class 货物摆放 {
	public static void main(String[] args) {
		ArrayList<Long> list = new ArrayList<>();
		long n = 2021041820210418L ;
		for(int i=1;i<=n/i;i++) {
			if(n%i==0) {
				if(!list.contains(i)) {
					list.add((long) i);
				}
				if(!list.contains(n/i)) {
					list.add(n/i);
				}
			}
		}
		int out = 0;
		int len = list.size();
		System.out.println(len);
		for(int i=0;i<len;i++) {
			for(int j = 0;j<len;j++) {
				for(int k =0;k<len;k++) {
					if(list.get(k)*list.get(j)*list.get(i)==n) {
						out++;
					}
				}
			}
		}
		System.out.println(out);
	}

}

第三题 跳跃

这题今天折磨我很久,一开始想用贪心,就求九个坐标里面最大的,每次都挑最大的走

然后又想试试DFS,然后又想试试BFS.....还想试试动态规划。笑死,然后一个也没做出来

人麻了,菜是原罪,等会去恶补之前的知识......诶

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class 跳跃_贪心 {
	static int[] dx = new int[]{0,0,0,-1,-1,-1,-2,-2,-3};
	static int[] dy = new int[]{-1,-2,-3,0,-1,-2,0,-1,0};
	

	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[][] g = new int[10][10];
		int[][] w = new int[10][10];
		boolean[][] vt = new boolean[n][m];
		 for (int i = 0; i < n; i++) {
		        for (int j = 0; j < m; j++) {
		            g[i][j] = sc.nextInt();
		        }
		 }
		 for(int i=0;i<=n;i++) {
			 Arrays.fill(w[i], -(int)1e9);
		 }
		w[0][0] = g[0][0];
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				for(int k=0;k<9;k++) {
					int nx= i+dx[k] ;int ny = j +dy[k];
					if(nx>=0 && ny>=0) {
						w[i][j] = Math.max(w[i][j], w[nx][ny] + g[i][j]);
					}
				}
			}
		}
		System.out.println(w[n-1][m-1]);
		
	}
}

第四题

第四题的贪心思路很简单,但是我很菜,就是想不起来差分

我想怎么做呢? 哎,我会存图,你每次询问我就for循环存图,对应的值加加。

然后呢, 我还会用链表把所有键收集起来,我还会数组排序.......

哦,最重要的,我还会优先队列,了不起的是还会根据存的图的值来重排序。

然后优先队列每弹出一个,我就用数组中最大的乘它。

结果就是,一边超时,一边还有答案错误,样例就过了四个,懒得改了,今天很心累,需要仔细复习基础知识

import java.io.*;
import java.util.*;


public class 重新排序 {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
	static Map<Integer,Integer> map=new HashMap();
	public static void main(String[] args)throws IOException{
		String[] s = br.readLine().split(" "); 
		int n = Integer.parseInt(s[0]);
		int[] ori = new int[n];
		int[] qzh = new int[n+1];
		s = br.readLine().split(" "); 
		for(int i = 0 ;i<n;i++) {
			ori[i] = Integer.parseInt(s[i]);	
			qzh[i+1] = qzh[i] + ori[i];
		}
			
		s = br.readLine().split(" ");
		int m = Integer.parseInt(s[0]);
		int x=0,y=0;
		int sum = 0;
		for(int i = 0 ;i<m;i++) {
			s = br.readLine().split(" ");
			x = Integer.parseInt(s[0]);
			y = Integer.parseInt(s[1]);
			sum += qzh[y] - qzh[x-1];
			for(int j=x;j<=y;j++) {
				add(ori[j-1]);
			}
		}
		Arrays.sort(ori);
		List<Integer> nlist = new ArrayList<>(map.keySet());
		PriorityQueue<Integer> q2 = new PriorityQueue<>(new Comparator<Integer>() {
			public int compare(Integer o1,Integer o2) {
				if(map.get(o1)>map.get(o2))return -1;
				else return 1;
			}});
		for(Integer integer:nlist) {
			q2.add(integer);
		}
		int nsum = 0;
		int count = n-1;
		while(!q2.isEmpty()) {
			
			nsum += ori[count]*(map.get(q2.poll()));
			count--;
		}
		System.out.println(nsum-sum);
		
		
	}
	static void add(int a) {
		if(!map.containsKey(a)) {
			map.put(a, 1);
			return;
		}
		map.put(a, map.get(a)+1);
	}

}

 

...全文

相关推荐

基于Java语言的蓝桥杯打卡系统设计源码

本篇将详细介绍基于Java语言开发的蓝桥杯打卡系统的设计与实现,分析其源码结构以及相关的技术要点。在该打卡系统的设计中,Java语言的使用是核心。

froginwe11

第十三届蓝桥杯JavaA组省赛第二场

**文件处理与数据解析**:试题C中需要处理输入文件,解析时间格式并识别员工的打卡情况,这涉及到日期时间的处理和数据解析能力。11.

执 梗

前端开发组件示例源码_f1b6a91d详解

前端开发组件示例源码_f1b6a91d,内容包含源码/脚本与使用说明文档,结构清晰、注释完整,适合学习参考与二次开发,下载解压即可查看。

鱿鱼助手

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-Gjl4Gf1792158475

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;Gjl4Gf1792158475 www.gblp.net www.gsctlq.com gezhixq.cn www.greendalian.com wap.gxqnm.com

2601_97196179

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-5Z6jeSqI1792158476

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;5Z6jeSqI1792158476 sdhmgggw168.com www.shangliangwangye.com www.sdbing.net migu.blsxex.abxlbz.sc.cn www.safespeed.net.cn

2601_97196179
评论
收藏 已收藏
分享
返回顶部