自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wowhhhgd的Blog

No matter what you do, make it like it was.

  • 博客(41)
  • 收藏
  • 关注

原创 编译原理实验(三)—— 算符优先分析算法的设计与实现(C语言实现)

大家好,下面介绍的是我当时上编译原理所做的实验,主要内容就是根据算符优先分析法,对表达式进行语法分析,使其能够判断一个表达式是否正确。用的是最基本的C语言写的,如有不足,欢迎大家批评指正!一、 实验目的根据算符优先分析法,对表达式进行语法分析,使其能够判断一个表达式是否正确。通过算符优先分析方法的实现,加深对自下而上语法分析方法的理解。二、 实验内容1、输入文法。可以是如下算术表达式的文法(你可以根据需要适当改变):E→E+T|E-T|TT→T*F|T/F|FF→(E)|i2、对给定表达式进

2022-01-12 15:49:12 6917 1

原创 编译原理实验(二)—— 预测分析算法的设计与实现(C语言实现)

大家好,下面介绍的是我当时上编译原理所做的实验,主要内容就是根据已有的文法,构造文法的first集和follow集,然后再根据构造好的first集和follow集构造预测分析表,最后,设置一个栈,然后利用栈和预测分析表来对输入串进行分析,判断输入串是否是该文法的一个合适的语法范畴。用的是最基本的C语言写的,如有不足,欢迎大家批评指正!一、实验目的通过预测分析算法的设计与实现,加深对自上而下语法分析方法的理解,尤其是对自上而下分析条件的理解。二、实验内容输入文法及待分析的输入串,输出其预测分析过程及结

2022-01-12 13:11:46 7753 4

原创 编译原理实验(一)—— 源程序的预处理及词法分析程序的设计与实现(C语言实现)

大家好,下面介绍的是我当时上编译原理所做的实验,主要内容就是先对源程序进行预处理,然后再对处理过的程序进行词法分析。用的是最基本的C语言写的,如有不足,欢迎大家批评指正!一、实验目的设计并实现一个包含预处理功能的词法分析程序,加深对编译中词法分析过程的理解。二、 实验要求1、实现预处理功能源程序中可能包含有对程序执行无意义的符号,要求将其剔除。首先编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据);然后编制一个预处理子程序,去掉输入串中的回车符、换行符

2022-01-12 12:21:51 3071

原创 java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver的解决方法

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver或者java.sql.SQLException: No suitable driver found for jdbc:mysql…可以尝试将mysql-connector-java-###.jar这个驱动jar包放到WebContent->WEB-INF->lib目录下

2021-07-10 09:30:53 461

原创 工厂机器安排(Java)

Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task’s level yi cannot complete this task. If the company completes this task, they will

2020-08-03 11:02:13 483

原创 会场安排问题(贪心算法Java)

假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的 贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个 顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小 会场数。)输入格式:第一行有 1 个正整数k,表示有 k个待安排的活动。 接下来的 k行中,每行有 2个正整数,分别表示 k个待安排的活动开始时间和结束时间。时间 以 0 点开始的分钟计。输出格式:输出最少会场数。输入样例:51 2312 2825 3

2020-08-02 14:15:36 3033 1

原创 月饼(Java)

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。输入格式

2020-08-01 11:36:02 2707

原创 输出数据用空格分开,最后一位没有空格(for循环,set/map/list集合iterator迭代器)

如果是for循环for(int i=0;i<arr.length;i++) { System.out.print(arr[i]); if(i!=arr.length-1) System.out.print(" "); }如果使用iterator迭代器 Iterator<Integer> it = sortset.iterator(); while(it.hasNext()) { System.out.print(it.next());

2020-07-29 17:47:56 1264

原创 字符串的全排列(Java)

给定一个全由小写字母构成的字符串,求它的全排列,按照字典序从小到大输出。输入格式:一行,一个字符串,长度不大于8。输出格式:输出所有全排列,每行一种排列形式,字典序从小到大。输入样例:在这里给出一组输入。例如:abc输出样例:在这里给出相应的输出。例如:abcacbbacbcacabcba解析:可以先将输入的字符串按照全排列先排一遍,将结果存入一个容器中,然后对容器中的所有字符串进行排序代码如下import java.io.BufferedInputStream;im

2020-07-29 16:47:35 832

原创 士兵排队(Java)

在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点用整数坐标(x,y)表示。士兵们可以沿网格边往上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成(x,y),(x+1,y),…,(x+n-1,y)。如何选择x和y的值才能使士兵们以最少的总移动步数排成一行。编程计算使所有士兵排成一行需要的最少移动步数。输入格式:第1行是士兵数n,1≤n≤10000。接下来n行是士兵的初始位置,每行有2个整数x和y,-10000≤x,y≤10

2020-07-27 11:43:40 682

原创 子序列的平均值(Java)

给定一个长度为n的非负序列A,请你找出一个长度不小于L的子段(子段是序列A中一些连续的元素构成的集合),使得子段中数值的平均值最大。最终输出这个最大的平均值。输入格式:第一行两个整数n,L(1<=L<=n<=100,000)以下n行,每行一个非负整数,表示序列A中每个元素的值。输出格式:一个整数,欲求的最大平均值乘以1000后的结果(注意不要四舍五入,直接输出)。输入样例:10 664210385941输出样例:6500解析:可以用二分答案的方法来

2020-07-26 22:58:21 3693

原创 分形的递归输出(Java)

题目描述用递归求解,如何用递归把图形画出来,需要多思考思考,可以多看几遍代码,然后自己动手画一画。代码如下import java.io.BufferedInputStream;import java.util.Scanner;public class Main { public static char[][] ch= new char[2188][2188]; //快速幂 public static int Muti(int base,int up) { int result=1;

2020-07-25 17:41:08 533

原创 用矩阵快速幂求解斐波那契数列的第n项(Java)

问题描述:已知斐波那契数列 F​n=Fn−1+n−2(n>=3),F1=1,F2=1求解该数列的第n项,结果对998244353取模。提示:矩阵快速幂,unsigned long long的最大值:1844674407370955161(1.8e18)输入格式:输入一个正整数n (1<=n<=1e18)。输出格式:输出一个数,数列的第n项输入样例1:1输出样例1:1输入样例2:3输出样例2:2斐波那契数列可以通过矩阵快速幂来求解所以问题就转化为了求矩阵[

2020-07-25 16:29:19 1155 1

原创 矩阵取数游戏(动态规划)

小明经常玩一个矩阵取数游戏:对于一个给定的n x n的矩阵,矩阵中的每个元素aij表示该格子的价值,均为非负整数。游戏规则如下:小明从左上角走到右下角,只能向下向右走,经过某个格子,就能获得格子相应价值的奖励,请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大奖励值。输入格式:输入包括n+1行:第1行为一个整数n。(2 <= n <= 500)第2~n+1行为nxn矩阵,其中每行有n个用单个空格隔开的非负整数。(0 <= aij <= 10000)输出格式:仅包含

2020-06-10 10:21:31 2653 2

原创 石子合并问题(动态规划)

有N堆石子排成一排(n<=100),现要将石子有次序地合并成一堆,规定每次只能选相邻的两堆合并成一堆,并将新的一堆的石子数,记为该次合并的得分,编一程序,给出堆数n及每堆石子数(<=200);(1)选择一种合并石子的方案,使得做n-1次合并,得分的总和最少(2)选择一种合并石子的方案,使得做n-1次合并,得分的总和最多输入格式:第一行为石子堆数n第二行为每堆石子数,每两个数之间用一空格分隔。输出格式:第一行为最小合并得分,第二行是最大的合并得分。输入样例:在这里给出一组输入。例

2020-06-10 09:44:03 6667 6

原创 分苹果/分弹珠问题(动态规划)

把M个弹珠放到N个盘子里面(我们允许有的盘子为空),你能求出有多少种分法吗?(请注意,例如有三个盘子,我们将5,1,1和1,1,5,视为同一种分法)输入格式:输入包含多组测试样例。每组输入的第一行是一个整数t。 接下来t行,每行输入两个整数M和N,代表有M个弹珠和N个盘子。(0=<M<=20; 0<N<=20)输出格式:对于每对输入的M和N,输出有多少种方法。输入样例:在这里给出一组输入。例如:17 3输出样例:在这里给出相应的输出。例如:8解析:首先要写出

2020-06-07 19:09:00 1679

原创 拦截导弹(动态规划)

具体描述如下:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹?输入格式:输入只有一行,为若干个正整数(用空格隔开),依次为导弹的高度。输出格式:一行,为最

2020-06-07 11:18:25 866

原创 数字三角形,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。(动态规划)

问题描述如下给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。输入格式:输入有n+1行:第 1 行是数字三角形的行数 n,1<=n<=100。接下来 n行是数字三角形各行中的数字。所有数字在0…99 之间。输出格式:输出最大路径的值。输入样例:在这里给出一组输入。例如:573 88 1 02 7 4 44 5 2 6 5输出样例:在这里给出相应的输

2020-06-06 22:44:31 2070

原创 单调递增最长子序列问题(动态规划)

具体描述如下设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。输入格式:输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开输出格式:最长单调递增子序列的长度输入样例:在这里给出一组输入。例如:51 3 5 2 9输出样例:在这里给出相应的输出。例如:4解析:这道题考虑用动态规划的方法来求解,可以考虑用dp[i]表示以第i个数字结尾的最长子序列长度,那个以第i+1个结尾的最长子序列应该怎么找呢?我们就需要从第1个数字到第i个

2020-06-06 22:10:39 1981

原创 最长公共子串(动态规划)

题目描述:在两个字符串中找到最长公共子串,输出其长度分析:公共子串是连续的,所以要和公共子序列进行区分。用动态规划进行求解,写出递推关系式其中,C[i][j]表示的是,以a[i]和以b[j]结尾的符合要求的最优解,很显然,如果两个不相等,那么就不存在以这两个结尾的公共子串,所以值为0,如果相等,那就看去掉他们两个之后的串中的最优解具体代码如下#include<iostream>using namespace std;#define MAX 1002int dp[MAX][MAX

2020-06-05 12:24:05 426

原创 最长公共子序列问题(动态规划)

问题描述:输入格式:两行,每行一个字符串,分别表示一个DNA序列(每个字符串长度不超过1000)。输出格式:一个数,最长公共子序列元素的个数。输入样例:在这里给出一组输入。例如:AGCTATT输出样例:在这里给出相应的输出。例如:2解析:首先要明白子序列的概念是什么,就是一个序列去掉0个或者多个元素后得到的结果,这里需要强调的就是,子序列不一定是连续的,有可能是不连续的,像题目中的最长公共子序列就是AT。想要用动态规划来解题,首先要找到递推关系式,然后根据地递推关系式自底向上的进行编

2020-06-05 11:48:04 1017

原创 VS Code调试C/C++ 一闪而过/不在断点停止

之前用的好好的VS Code,昨天突然无法调试了,调试的时候,明明设置了好几个断点,但程序就是不在断点停止。啊咧?!这是要气死本王子的节奏啊!上网搜了搜,无果。。。(launch.json文件和task.json文件都按照网上的重新配置了,VS Code也在官网上下载重新安装了,但是还不行。。。)于是今天上午没有管他,下午想着再试一试,又上网搜了一下,发现我有个配置和网上的有一个地方不一样,然后就改了一下,万万妹想到,好了????,然后我又把昨天改的配置给注释掉,还是按照出事儿之前用的配置,结果,又能调

2020-05-22 15:40:38 7433 4

原创 最大子矩阵和问题(动态规划)

具体问题描述如下最大子矩阵和问题。给定m行n列的整数矩阵A,求矩阵A的一个子矩阵,使其元素之和最大。输入格式:第一行输入矩阵行数m和列数n(1≤m≤100,1≤n≤100),再依次输入m×n个整数。输出格式:输出第一行为最大子矩阵各元素之和,第二行为子矩阵在整个矩阵中行序号范围与列序号范围。输入样例1:5 660 3 -65 -92 32 -70-41 14 -38 54 2 2...

2020-03-31 17:29:58 7973

原创 最大子数组问题(动态规划)

题目描述如下:给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。要求算法的时间复杂度为O(n)。输入格式:输入有两行:第一行是n值(1<=n<=10000);第二行是n个整数。输出格式:输出最大子段和。输入样例:在这里给出一组输入。例...

2020-03-31 17:18:23 1485

原创 括号匹配-栈的应用(C++)

具体问题描述如下:该问题是栈的最经典的应用核心思想:如果接收到左括号,进栈如果接受到右括号,需要考虑两种情况(1)]],像这种情况,压根儿就没有左括号,所以这个时候要判断栈是否为空,因为在这种情况下,是没有元素进栈的,此时为空栈(2)看是否和栈顶的元素是一对儿的,如果是,则将栈顶元素出栈,否则就可以判断括号不匹配当字符串中所有的字符都已经遍历过了,再判断栈是否为空,如果为空,说明...

2020-03-26 22:38:14 287

原创 如何从根本上克制自己在电脑上刷B站,专注学习(hosts文件)

对于手机来说,想要做这件事情很容易,直接把B站卸载掉就OK了但是如果你使用的是网页版的呢?试想一下这种场景,当你好不容易下定决心要好好学习,使用浏览器准备找一些资料的时候,突然想到:“哎,自己关注的up主更新视频了没?怎么想看一会儿宅舞的冲动?”,于是乎,就在搜索框中输入了bilibili,然后,,,从此君王不早朝…讲真的,这就是我使用电脑查询资料经常干的事情。所以我想到了一个恶毒的方法...

2020-03-24 15:52:25 7485 12

原创 顺序表元素的逆置

直接上代码#include<stdio.h>#include<stdlib.h>#define LIST_SIZE1 10#define LIST_SIZE2 5#define ok 1#define no 0 typedef struct { int *elem; int length; int listsize;}Sqlist;//初始化一个顺序...

2019-10-11 11:17:05 622

原创 在非递减有序的顺序表中插入一个元素x,保持顺序表有序性。

直接上代码#include<stdio.h>#include<stdlib.h>#define LIST_INIT_SIZE 10//顺序表存储空间的初始分配量#define LISTINCREMENT 5// 顺序存储空间的分配增量 #define OVERFLOW 0#define ok 1 typedef struct{ int *element;//...

2019-10-11 10:44:57 4913 3

原创 《算法竞赛入门经典》(第2版)——习题3-7 DNA序列(DNA Consensus String)

分析:读完题目后,你是不是可以发现,只要比较每一个DNA序列的相同位置上的字母就可以了,即我们要找的新序列,就是相应位置上,出现次数最多的那一只!比如说,每个序列的第一个字母中,A ,G, C,T出现的次数分别是6,1,1,1,那么,我们要找的新的序列的第一个字母就是A,如果有出现次数相同的,那就需要按字典序来决定选哪一只啦,具体看代码传 代 码!威~武。。。#include<stdio...

2019-08-18 10:48:47 250

原创 《算法竞赛入门经典》(第2版)——习题3-5 谜题

分析:只需要根据题目走就可以啦,自己写的有点啰嗦,但是自认为思路还是比较清晰的,吼吼吼上代码!#include<stdio.h>#define maxn 5int main(){ char s[maxn][maxn]={'T','R','G','S','J', 'X','D','O','K','I', 'M',' ','V','L','N', 'W','P','A...

2019-08-18 10:33:55 230

原创 《算法竞赛入门经典》(第2版)——习题3-4 周期串(Periodic Strings)

分析:因为不知道周期到底是多少,所以就直接从1开始猜。。。首先看是否能够整除该周期,然后再看是否满足周期的条件,具体看代码,有相应的注释#include<stdio.h>#include<string.h>#define maxn 85char s[maxn];int main(){ scanf("%s",s); int i,len,j; int flag;...

2019-08-18 10:24:10 151

原创 《算法竞赛入门经典》(第2版)——分子量(Molar Mass)

分析:根据题目上的式子显示C6H5OH来看,如果分子量后面跟着一个数字的话,那么就要相应的乘以该数字,如果没有跟数字的话,那么就是默认为1,这个亚子的话,我就可以考虑在定义一个数组,里面相应的储存原子量后面跟着的数字,之后遍历的时候,乘完之后再相加就OK啦,也就是说,C 6 H 5 O H1 6 1 5 1 1 1,这样的对应关系具体看代码#include<stdio.h&g...

2019-08-18 10:10:09 278

原创 《算法竞赛入门经典》(第2版)——得分(Score)

分析:由题意可得,要计算的分数是由O来决定的,所以要对O进行判断,判断之后,需要做什么?具体看代码#include<stdio.h>#define maxn 85char s[maxn];//定义稍大的数组时,尽量定义在主函数外面int main(){ scanf("%s",s); int i,sum=0,tot=1;//tot起到一个计数器的作用 for(i=0;s[i...

2019-08-18 09:53:32 224

原创 怎么解决联想笔记本电脑待机后黑屏无法唤醒

闲着没事儿,打开了联想的键盘于是乎,就按下了Fn+4,就是使电脑待机,但问题是,无论我按什么键,电脑都是黑屏,所以就强制关机,然后再开机,最后在网上找到了解决方法。首先,打开控制面板,打开硬件和声音然后打开设备管理器找到网络适配器找到下方黄色标记的东东,然后右键单击打开属性,找到电源管理,再把允许此设备唤醒计算机前面的对勾取消就可以了再次使计算机待机,然后狂按空格键,稍等一会,就...

2019-08-08 19:58:15 115395 8

原创 《算法竞赛入门经典》(第2版)——竖式问题

直接上代码,理解在注释里#include<stdio.h>#include<string.h>int main(){ int count=0;//计数器 char s[20],buf[99]; scanf("%s",s); int abc,de,x,y,z; for(abc=111;abc<=999;abc++) for(de=11;de<=...

2019-08-08 17:59:07 220

原创 《算法竞赛入门经典》(第2版)——蛇形填数

直接将书上的代码搬上,自己对程序的理解写在注释里了#include<stdio.h>#define maxn 20int a[maxn][maxn]={0};int main(){ int n,x,y,tot; scanf("%d",&n); tot=a[x=0][y=n-1]=1;//这是多个语句合成的结果,体现出了C语言的简洁性 while(tot<n...

2019-08-08 17:51:03 157

原创 《算法竞赛入门经典》(第2版)——开灯问题

看完题目后,自己先敲了一下,运行一下是可以的,代码如下#include<stdio.h>int a[1000]={0};int main(){ int n,k; scanf("%d %d",&n,&k); int j,i; for(i=1;i<=k;i++) for(j=1;j<=n;j++) if(j%i==0) a[j]=...

2019-08-08 11:46:22 170

原创 while(scanf("%d",&x)==1)和while((c = getchar()) != EOF)如何结束循环

按Enter后,再按Ctrl+z,再按Enter就可以了

2019-08-08 10:25:41 1896

原创 《算法竞赛入门经典》(第2版)——习题2-6 排列(permutation)

分析:由于题目要求abc:def:ghi=1:2:3,并且每个数字恰好使用一次,所以ghi的最大值应为987,abc的最大值为987/3=329,所以可以缩小abc的范围,abc最小为123,这是一大关键,具体见代码,有相应的注释。#include<stdio.h>int main(){ int array[9]={0},i,j,k,abc,def,ghi; int flag;...

2019-08-07 21:05:29 435 1

原创 《算法竞赛入门经典》(第2版)——习题2-5 分数化小数(decimal)

本题的难点在于精确到小数点后c位,按照手算的方法可以解决这个题目,具体代码如下,需要注意的地方已经写了注释。#include<stdio.h>int main(){ int a,b,c,t,kase=0; while(3==scanf("%d %d %d",&a,&b,&c)){ if(a==0&&b==0&&c==0...

2019-08-07 18:10:28 370

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除