- 博客(22)
- 问答 (7)
- 收藏
- 关注
原创 java:多线程_生产者消费者模式_wait()和notify()方法理解与使用。
文章目录生产者消费者模式题目要求知识储备思路代码实现输出结果结果解释生产者消费者模式 生产线程负责生产,消费线程负责消费。 生产线程和消费线程要达到均衡。 这是一种特殊的业务需求,在这种特殊的情况下需要使用wait方法和notify方法。博主最近一直在跟着杜老师的Java网课进行学习,本题将以杜老师的课堂作业作为范例对wait()和notify()方法进行讲解。题目要求 使用生产者和消费者模式实现,交替输出: 假设只有两个线程,输出以下结果: t1–>1
2021-05-29 15:07:39 298 4
原创 拷贝目录:Java老杜IO流作业新思路。
博主最近一直在跟着杜老师的Java课程进行学习,最近学习到 IO流,也终于能写出些有意思的代码,在此与各位互相交流学习,如果有错误的地方,还望及时指正,以免误导他人。文章目录题目涉及知识我的代码总结题目 用IO流等相关知识做出类似于复制粘贴文件的操作。 涉及知识 1、File类的部分方法。 2、字节流的使用。 3、递归思想。我的代码Copy_目录_博客测试 这里是主要的代码,注释我已经尽量写的详尽,如果仍有疑问,可以在评论区留言,或者直接私信我。packag.
2021-05-20 20:22:03 266
原创 Java:Iterator迭代器的底层实现原理
博主是刚刚学习到集合的小白,如有谬误,请及时在评论区更正,以免误导他人。迭代器的使用package Test;import java.util.ArrayList;import java.util.Iterator;public class Test7 { public static void main(String[] args) { // 创建一个集合对象 ArrayList a1 = new ArrayList(); // 向集.
2021-04-25 20:45:07 2296 3
转载 动态规划入门
声明:本篇文章是对b站up万诺coding的视频记录,故为转载文章。视频地址:一个视频彻底搞懂 动态规划! 动态规划:就是将问题与已知的结果组成等式,从而得出未知的结果。 例题: 由此可知,该算法有重复的计算,也就是有优化空间,我们用一个记忆数组来解决这个问题。 优化结束,开始转变为动态规划 又发现可以继续优化空间(仅仅使用某一状态的前两个状态,且该状态后面又作为已知状态使用) 总结:递归写法→利用记忆数组优化时间→dp写.
2022-03-29 19:56:40 528
原创 2021全国高校计算机能力挑战赛决赛Java组
题目题目一题目二题目三题目四题目五题目一代码如下import java.io.*;public class Main{ static BufferedReader ins = new BufferedReader(new InputStreamReader(System.in)); static StreamTokenizer in = new StreamTokenizer(ins); static PrintWriter out = new PrintWriter(n
2021-12-26 17:39:01 886 3
原创 java:P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two
洛谷题目:P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two题目如下: 思路:简单的模拟,不过像这种上下左右的移动方式倒是可以留意下,我是用%的方式来改变的。我的代码import java.io.*;public class Main { static char[][] chars = new char[10][10]; static int rx = 0,ry = 0; // 记录人的位置
2021-12-15 19:28:34 1292
原创 java:P1088 [NOIP2004 普及组] 火星人
洛谷题目:P1088 [NOIP2004 普及组] 火星人题目如下: 思路一:全排列后找到火星人表示的排序,然后再往后排序m次即可。看了下数据,肯定超时,放弃。思路二:改进思路一,直接在全排列中找到外星人的排序。可以试试我的代码:import java.io.*;public class Main { static int n; static int m; static boolean bool = true; static int ct
2021-11-19 23:00:33 1307 3
原创 java:P1157 组合的输出
洛谷题目:P1157 组合的输出题目如下: 我的代码:import java.io.*;/*思路:dfs思想,其中改进下即可,这样就能够得到不重复的组合。递归代码提醒:t代表当前函数找第几个数,l接收上一个函数的i+1,从而实现不重复组合。 */public class Main{ static int k = 0; // 接收几个数据 static int ct = 0; // 指向cc【】的存储数据的下一个位置
2021-11-18 20:22:43 487
原创 java:P1036 [NOIP2002 普及组] 选数
洛谷题目:P1036 [NOIP2002 普及组] 选数题目如下: 我的代码:package 算法竞赛;import java.io.*;/*思路:dfs思想,其中改进下即可,这样就能够得到不重复的组合。然后就好办了,符合条件的判断sum是否为质数。 */public class Test1{ static boolean ky = false; static int k = 0; // 接收几个数据 static int ct =
2021-11-18 19:28:43 809
原创 java:P1618 三连击(升级版)
洛谷题目:P1618 三连击(升级版)题目如下: 我的代码:package 算法竞赛;import java.io.*;import java.util.Arrays;/*思路:由i得出其余两个数,然后判断即可,别忘了count=0时,输出No!!! */public class Test3{ static StringBuilder str = new StringBuilder(); static BufferedReader ins = new BufferedR
2021-11-16 21:17:00 620
原创 java:P1706 全排列问题
题目描述: 思路提供: 我的代码:import java.io.*;public class Main{ // 静态的成员变量看作是全局变量理解就好了 static int k = 1; // 用来记录已经选取的数字有几个 static int n = 0; // 接收数据,因为是递归中都需要使用,所以设置为全局变量,也即java中的静态成员变量 static boolean[] pd =
2021-11-16 20:10:38 546
原创 java:P1249 最大乘积
洛谷题目:P1249 最大乘积题目描述:一个正整数一般可以分为几个互不相同的自然数的和,如 3=1+2,4=1+3,5=1+4=2+3,6=1+5=2+4。现在你的任务是将指定的正整数 nn 分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。输入格式只一个正整数 n,( 3 ≤ n ≤ 10000 )。输出格式第一行是分解方案,相邻的数之间用一个空格分开,并且按由小到大的顺序。第二行是最大的乘积。输入输出样例输入:10输出:2 3 530我的代码:package
2021-11-16 19:07:10 666
原创 java算法竞赛:StringBuilder更省空间更快速
参考文章:Java StringBuffer 和 StringBuilder 类 String、StringBuffer与StringBuilder之间区别用java写代码时,总会一不小心超出内存限制,这时候就需要摒弃String,考虑多使用可变长字符串了。String:每次拼接都会生成个新的变量,遇见多次拼接的情况极容易超出内存限制!StringBuffer:改变字符串,不产生新的对象,线程安全。StringBuilder:改变字符串,不产生新的对象,线程不安全,但是速度更快!因为算法
2021-11-14 21:20:03 224
原创 java算法竞赛:快速读入输出
我们在使用java写算法题时,常常会因为超时而苦恼,明明是和C++一样的思路,甚至代码实现都极为相似,但是却比它慢上一大截,这时候不妨试试IO流读入输出数据,提升速度。参考文章Java写算法题中那些影响你效率的细节(关于暴力破解算法题的细节处理)Java在算法竞赛中的一些技巧Java算法竞赛常用模板我的模板package 算法竞赛;import java.io.*;public class Interface1{ static BufferedReader ins = new.
2021-11-09 20:16:07 2826
原创 Java:P1093 [NOIP2007 普及组] 奖学金
洛谷题目:P1093 [NOIP2007 普及组] 奖学金题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金
2021-11-09 18:54:34 388
原创 7-37 (带注释)A-B (20分)
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入格式:输入在2行中先后给出字符串A和B。两字符串的长度都不超过10的4次方,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。输出格式:在一行中打印出A−B的结果字符串。输入样例:I love GPLT! It's a fun game!aeiou输出样例:I lv GPLT! It's fn gm!我的代码:
2020-12-15 15:23:07 1927
原创 7-34 (带注释) 猴子选大王 (20分)
一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:输入在一行中给一个正整数N(≤1000)。输出格式:在一行中输出当选猴王的编号。输入样例:11输入样例:7我的代码:// 整体思路:数组下标记录初始位置,循环修改数组值, // 直到修改了 N-1个数组值,剩
2020-12-11 15:28:56 403
原创 7-13 (带注释 )删除重复字符 (20分)
本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。( 20分 )输入格式:输入是一个以回车结束的非空字符串(少于80个字符)。输出格式:输出去重排序后的结果字符串。输入样例:ad2f3adjfeainzzzv输出样例:23adefijnvz 解题思路:读入 ---- 依据码值改写另一个数组 ---- 字符形式输出另一个数组 #include <stdio.h>int main(){ char a[90]={0}; a[0]
2020-12-06 15:13:11 1297 3
原创 7-4 (有注释)求n以内最大的k个素数以及它们的和 (20分)
本题要求计算并输出不超过n的最大的k个素数以及它们的和。输入格式:输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。输出格式:在一行中按下列格式输出:素数1+素数2+…+素数k=总和值其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。输入样例1:1000 10输出样例1:997+991+983+977+971+967+953+947+941+937=9664输入样例2:12 6输出样例2:// 关于一组输出不是那种连续类似的,可以控制输出,
2020-12-01 17:13:15 2738 1
原创 求[100,200]之间的弦数
题目:若某整数平方等于某两个正整数平方之和的正整数称为“弦数”,例如:3 * 3 + 4 * 4 = 5 * 5,所以5为弦数。代码如下:#include <stdio.h>#include <math.h>int main(){ int count=0,a=0; for(int i=100;i<=200;i++) // 从100到200的判断 { for(int z=1;z<=i;z++) { for(int h=1;h<=i;
2020-11-15 10:53:57 1700 10
原创 【c语言】有4个圆塔。圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1。
// 有4个圆塔。圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1,这4个塔的高度为10,// 塔以外无建筑物,今输入任意一点的坐标,求该点的建筑高度(塔外高度为0)#include <stdio.h>int main(){ double x,y; scanf("%lf %lf",&x,&y); //其实既然是四个相同的圆塔,所以在相应的对应位置,结果是 if(x<0) //
2020-11-14 22:54:57 8747 15
原创 7-114 谁先倒 (15分) 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。输入格式:输入第一行先后给出甲、乙两人的酒量(不超过100的非负整数),以空格分隔。下一行给出一个正整数N(≤100),随后N行,每行给出一轮划拳的记录,格式为:甲喊 甲划 乙喊 乙划其中
2020-11-13 17:27:29 6260 1
空空如也
java子类调用了父类的私有方法?这段代码有些困惑。
2021-12-03
Mysql中的汉字是否是必须加上单引号?
2021-10-04
通用获取绝对路径的方法为什么对java文件提取会报错?
2021-05-31
质数算法优化问题,一道落谷算法题。
2021-05-12
关于多级指针和数组名的使用
2021-03-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人