自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java web学习记录(二)数据库的使用

通过语句创建一个数据库CREATE DATABASE 数据库名称为了保障数据库的唯一性所以可以通过添加语句来判断是否存在CREATE DATABASE IF NOT EXISTS 数据库名称DROP DATABASE IF EXISTS 数据库名称也可以将数据库的编码格式修改为utf-8ALTER DATABASE 数据库名称 CHARACTER SET utf8。

2023-04-10 15:32:59 644

原创 Java web学习记录(一)Java网络编程

复习完JavaSE以后,终于开始了Java Web的学习生涯。

2023-03-26 21:36:27 411 2

原创 #847(Div3)E. Vlad and a Pair of Numbers

题目有公式 a ⊕ b = (a + b) / 2 = x, 给你的是 x,让输出一组满足题目要求的 a,b,没有就输出-1。

2023-03-10 19:43:16 628

原创 Codeforces Round 854 by cybercats (Div. 1 + Div. 2) C、D1

分析不难发现在没达到一个关键的点的时候肯定是对称是最好的,这样肯定能保证得到的字符串是最小的,而关键点到了之后就不需要平分了,全部放前面就好了。做 C 题的时候把自己绕晕了,之间明白是这样做的,但是做起来不是这里不行就哪里不行,做题之前需要把自己的思路逻辑理清楚,然后再去写。,你可以把它按任意顺序组合,保留的是你组合的字符串和它的倒序之间大的那一个,问你在满足上面条件的前提下字典序最小的字符串。,你有两个CPU,如果你选择的CPU的上一个进程和当前的进程一样,所用时间就是。的时候CPU1最后处理的进程是。

2023-03-09 15:45:09 472

原创 #853 C. Serval and Toxel‘s Arrays

与其说是反思倒不如说是提醒,我在做这道题的时候压根就没有去想这道题怎么做,我一直在琢磨我写的暴力输出的结果为什么和样例不一样了,所以之后做题不要把时间浪费在没有必要的地方。个数组,两两组合,将这些组合里面有多少个不同的元素加起来,输出。,这个很好想,画图模拟一下就可以了。个数组里面出现,那他的贡献就是。次操作,每一次操作有两个数。个数(下标从1开始),

2023-03-05 15:59:38 161 2

原创 SWERC 2022-2023 - Online Mirror B, G

和左端点(右端点)的差,然后我们通过实例可以发现用用差值大的和用差值小的结果是一样的,那么就用大的,因为式子里面是减。怎么去算,首先这个题里面要从底部到目标点的最短路径肯定是等腰三角形的斜边外加。, 原因就说当两部分合并的时候一定有重合的部分,斜着的轨迹不可能重合,所以。个评委,还有一个由W和R组成的字符串,字符串的长度为。个不同的连续的子字符串的最大W含有量是多少。个不同的连续的子字符串,那肯定用长度为。轴的部分的最小值就是我们要求的。轴的距离有一部分的重合,另外。的最小需要的方格数,设。

2023-03-05 15:46:49 653

原创 AcWing4865. 有效类型

代码思路参考intXYpair现有一行若干个单词,每个单词要么是pair,要么是int,并且其中int的数量恰好为n个。你可以在不改变单词顺序的前提下,在这一行中任意添加符号。你的任务是构造出一个有效类型字符串。输出这个有效类型字符串。第一行包含整数n,表示给定单词中int的数量。第二行包含若干个单词,每个单词要么是pair,要么是int。输出满足条件的有效类型字符串,如果不存在,则输出。注意,有效类型字符串中空格或其它多余字符。前61≤n≤5。1≤n。

2023-03-03 19:20:08 225

原创 AcWing 4656. 技能升级

这道题我们一开始去想肯定是优先队列,但是M的数值过大,足足有2e9,所以不可行。通过观察我们发现如果操作完的数组的每一个数都大于。二分的思路没有思考到,也被惯性思维给束缚住了,总想着二分答案,之后不能总想着二分答案,多锻炼自己曲线救国的思维。的话,那他也一定大于所有小于x的数,所以考虑二分。点攻击力,以后每次升级增加的点数都会减少。次技能,他可以任意选择升级的技能和次数。二分的对象就是操作完以后每一个数的底线。请你计算小蓝最多可以提高多少点攻击力?个可以加攻击力的技能。现在小蓝可以总计升级。

2023-01-09 10:58:39 92

原创 AcWing 4519. 正方形数组的数目

因为这道题的数据范围很少,只有12,那么所有的情况最大就是12的阶乘,也就是 4e8 左右,所以需要剪枝优化,然后不难发现重复的数字会有大量的相同排列,根据这一点可以进行优化。优化原理:对排完序以后的序列只用不同数的第一个数。题目规定任意两个相邻数相加都是完全平方数的排列称为正方形数组,问数组A的正方形排列的数目。

2023-01-05 19:57:37 71

原创 牛客小白月赛64 Karashi的生日蛋糕

因为一开始每一行是全相等的,然后发现第1行加1还是满足,所以我们就按从1到m依次加1就可以了。然后不难发现每一列加1的数都是1,2,3,4 …m ,1的增加,这样就构造出来了。这样去思考,假设全部元素都是取的下取整,那么只要在特定的元素上面加1就可以了。所以题目变成要用什么方式加一,才能保证满足第2条和第1条。博客讲的不清楚建议还是去听一下官方题解,讲的很明了。就是构建一个m * n 的矩阵,要求。

2023-01-03 19:37:05 246

原创 P1877 音量调节(动态规划)

一个和01背包差不多的用法,做题的时候要先看一下数据范围。我一开始想当然的把状态表示成第 i 首音乐要上升还是下降了,这种做法不可行。

2023-01-03 10:31:09 96

原创 Codeforces#831 C. Bricks and Bags

以为是a选,所以她一定会选相差最小的,所以放石头的时候就要有两个袋子只放一个石头,并且这两个袋子的里的石头相差的重量最大,这样就一定是最大的了。把 n 个石头放入 3 个袋子,然后从3个袋子中依次拿出一个石头,value为 |w1−w2|+|w2−w3|,wi 代表第 i 个袋子拿出的石头的重量。其中a会选出最小的结果,你是b,问你如何安排每一个袋子里的石头,可以让a选出来的结果最大。还有就是想当然的认为两边界相减加一个最小的就是最大的了,没有进行推导,这是最大的问题。,也就是最大值或最小值,还有。

2022-12-12 19:46:39 198

原创 股票买卖问题(动态规划)

目录一、股票买卖 二、股票买卖 II三、股票买卖 III给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。第一行包含整数 N,表示数组长度。第二行包含 N 个不大于 1e9 的正整数,表示完整的数组。输出一个整数,表示最大利润。这道题目就简单了,他只要一次最大,所以我们可以记录一下从1~n之间的最小和n~1之间的最大,找出相距最大的

2022-12-08 10:13:14 991

原创 AcWing 80周赛C题 摆放棋子(动态规划)

原题链接定义dp[i][j][a][b]dp[i][j][a][b]dp[i][j][a][b]:已经用了iii个黑棋, jjj个白棋,且以当前放置的棋子颜色来算,黑棋连续a个,白棋连续b个的方案数(当前若为黑那么白棋连续为0)分析可得dp[i+1][j][k+1][0]dp[i + 1][j][k + 1][0]dp[i+1][j][k+1][0]可由dp[i+1][j][k+1][0]+dp[i][j][k][u]dp[i + 1][j][k + 1][0]+dp[i][j][k][u]dp[i+1]

2022-12-07 19:16:32 119

原创 2020-2021 ICPC银川站 B - The Great Wall(动态规划)

在做题的时候我只是单纯的将当前的数看成是否要从这里新开一段,导致没有一点思路,看了答案才知道应该是将这个时候都有什么状态表示出来,而不是强硬地去凑结果,这里要重点反思。做题经验不够,应该继续加油。

2022-11-29 19:47:20 349

原创 AcWing 77周赛 C题 4718. 弹球线路

每一个大主教出发点都在边上,所以可以用并查集来进行划分。因为并查集以为比较方便,所以离散化为一维,共有。个点,最后求一下连通块。

2022-11-25 20:45:15 91

原创 D. Factorial Divisibility #829 (Div. 2)

那么这道题就可以转化为统计各个数出现次数然后不断的向上转化的问题了。长度为n的数组,问数组元素的阶乘之和是否可以被x的阶乘除尽。这道题其实没这么难,通过观察和验证我们可以得到结成之间的关系。

2022-11-12 19:53:31 103

原创 J - Prime Game (Gym - 101981J)

单个数的质因数一定是一堆数相乘的质因数(这个用纸分开写一下就能明白了)。那么这道题就可以转变为去找这个数的质因数对答案的贡献度了。这里需要一个算法:分解质因数(不懂得可以去了解一下,不是很难这里就不讲了)。这组数里面,第一个3的贡献度就是n - 1 + 1,到第二个三就是上一个三的位置到这个位置的距离乘上(n - i + 1),原因就是。那一列用了一次(n - i + 1),,对应的数累乘的结果的质因数的个数。fac(i, j)是从下标。也用一次,以此类推,就是。

2022-11-12 19:38:55 148

原创 P4552 [Poetize6] IncDec Sequence (差分)

(没学过差分的建议去学习一下)针对这道题,我们的差分数组的结果一定是 0 …所以就可以正负相消,然后多的直接改变(右区间是n + 1,不用管的 )。所以最少次数就是差分数组的正数相加与负数的绝对值相加的最大值。有几种情况就是我上面说的正负相消以后多出来的部分再加上全部为第一个数的情况。请问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。通过差分我们可以知道在一段区间里面加上一个数或减去一个数的方法是。行,每行一个整数,第 $i+1 $行的整数表示。

2022-10-13 11:53:27 105

原创 2022 CCPC Henan Provincial Collegiate Programming Contest(补题)

这道题比赛的时候想用bfs去写,最后T了,赛后听别人说好像用bfs要剪枝?这道题用dfs还是很省力的。分析题目可以发现走过的没有必要去走,所以dfs每个地方不会超过两遍。方法也是直接不断往后走就行。这道题要画一下图,鉴于文字表达不够完全,并且手边没有画图的工具,所以暂时推荐大佬的博客供大家参考。

2022-10-08 14:46:43 817

原创 ICPC2022网络赛第二场

的位置是终点)就可以得到所有的情况了。具体的操作就是不断改变k的长度。所以我们就可以得出最后的结果就是。结尾的所有的情况呢?emm,大家来看题解应该都明白题意,就不写了。的两个状态分别表示为从开头到以。首先我们怎么找出所有的以。通过不断调整起点的位置(,pos的值后面会说。

2022-09-26 20:36:41 291

原创 关于二进制变十进制

浅浅的记录一下,二进制的01字符串怎么变成十进制的数。

2022-09-13 09:14:50 106

原创 P2678 [NOIP2015 提高组] 跳石头

一年一度的“跳石头”比赛又要开始了!

2022-09-07 20:03:48 61

原创 G - Edge Groups

接下来进入正题,对于一个父亲节点我们需要统计一下他的儿子节点里面有多少是可以用的,有多少是要把这条边给他的儿子的。我们想一下,如果他的儿子节点连接的点有奇数个(不包含原先的父亲节点),那么加上原先的就是偶数个。所以我原父亲节点的周围的边数就不能加上这一条,否则就加上。对于这道题,我们可以发现一个规律,就是一个点连接的边的数量必须是偶数个才能构成两两相连,记住了这个就可以开始分析了。首先我们要先证明一个数学原理:当一个点和多个点连在一起的时候,你要把他们每两个连在一起一共有几种办法。

2022-09-03 19:58:02 181

原创 [NOIP2001 提高组] 数的划分

针对这个方案我们可以先往每一个划分的区域里面先放一个1,然后再进行划分。份,且每份不能为空,任意两个方案不相同(不考虑顺序)。当划分的数里面有 1 的时候 方案数为。代表把数字 i 划分成 j 个数。,下面三种分法被认为是相同的。个整数,即不同的分法。问有多少种不同的分法。...

2022-08-05 21:32:48 209 1

原创 P5019 [NOIP2018 提高组] 铺设道路

原题链接NOIP2018 提高组 D1T1春春是一名道路工程师,负责铺设一条长度为 nnn 的道路。铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 nnn 块首尾相连的区域,一开始,第 iii 块区域下陷的深度为 did_idi​ 。春春每天可以选择一段连续区间 [L,R][L,R][L,R] ,填充这段区间中的每块区域,让其下陷深度减少 111。在选择区间时,需要保证,区间内的每块区域在填充前下陷深度均不为 000 。春春希望你能帮他设计一种方案,可以在最短的时间内将整段道路的下陷深度都变为 00

2022-07-30 21:31:28 165

原创 AcWing 92. 递归实现指数型枚举

从1∼n这n个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤153。......

2022-07-23 11:31:44 81

原创 字符串匹配的KMP

部分图片参考转载自大佬的KMP讲解KMP是一种字符串模式匹配算法,目的是快速的帮助我们找到字符串b是否是字符串a的连续子串。规定i是主串的下标,j是想要被匹配的字符串的下标。下面是代码二、KMP(O(n + m))介绍KMP之前,首先先看一张图片,这张图片会帮你理解KMP是怎么来运行的。原图片链接,侵权必删next数组记录的是一个字符串前缀和后缀相同的最大的长度。例子:字符串abababca,长度为6匹配过程匹配过程上图已经阐述的非常明显了,就是用next数组来记录位置,然后读取进行节省时间

2022-07-22 15:38:31 99

原创 ArabellaCPC 2019(补题)

D. Meeting BahosainI. Bashar and Hamadaa,b两个数组,其中b数组里面的元素都是不同的,问我们是不是可以在a里面选一个元素,用b里面的元素对其进行无限次的加减,最后让a数组元素相同。比赛时根本不懂题目意思,裂开。要让所有元素相同,那么a[i] - a[j] (i, j 为任意的数)就要等于x1 * b1 + x2 * b2 + x3 * b3 + … + xn * bn。这里就要引入一个定理:a * x + b * y = gcd(a, b) 一定有解。代入进去我们可以

2022-07-05 20:04:37 222

原创 The 16th Heilongjiang Provincial Collegiate Programming Contest

J - JOJO’s Factory 题目思路 因为题目已经给了M的范围即 小于等于2 * n - 3,所以我们可以得出一定不会有像 这样的数据,所以就可以得出只要不是A里面匹配了n个B就一定可以全部配对。K. Keep Eating 题目思路 我们可以先将全部的重量合起来 sum,然后一次就吃1重量,最后剩下k个,就直接吃 k / 2 就可以了,注意特判一下 sum 是否大于 k。......

2022-06-25 21:35:54 172

原创 B. Stone Age Problem

题目大意给你内含n个元素的数组,并有m次询问,当x为1的时候将i-th的元素改成给你的数字,x为2时候将数组内的元素全部改变。解题因为他只要所有元素的和,所以我们可以记录一下这个下标的上一步是1还是2,是2的时候要将这个数存一下。当每次经历2操作的时候清理这个表。当再次进行1操作的时候,将更新后的下表记录下来,并且维护一下原来的数组。代码如下#include <bits/stdc++.h>using namespace std;//#define For(i, k, n)

2022-05-16 19:38:41 173

原创 A. DZY Loves Chessboard

原题链接题目大意n×m个由’.’ 和 ‘-’ 组成的格子,要求在’.'上放棋子,并且相邻的格子没有相同的棋子。解题先看下面的图片,我们可以得出一个格子相邻的地方没有相同的字符,可以得出结论,只要用一个字符来标记自己当前的字符,并将周围的都变成和自己不同的就可以了,那么这道题就可以做出来了。找到 ’ . ’ 的格子,并将四周的 ’ . ’ 变成不同的字符就好了。代码#include <bits/stdc++.h>using namespace std;#define For(

2022-05-02 19:55:18 180

原创 I. Invoking the Magic

原题链接题意题目其实比较好理解,就是给定n对袜子(袜子保证有且只有两只,也就是保证数据一定合理)。我们可以把一些袜子放到洗衣机里面,但要保证这些袜子可以两两配对。让我们去求一次性最多可以弄多少双这样的袜子。题解如果要两两配对我们就可以通过画图的方式将轨迹连成一个圈,所以我们可以用并查集来进行,因为题目的条件我们最后就看最后有几组,然后在这几个组里面求一个最大的值(别忘了除以二,因为问的几双袜子)数据比较大可以用哈希表来求,但是map速度有点慢,要用unordered_map,还有就是要用解除同步的

2022-04-30 20:22:06 237

原创 B. Boboniu Plays Chess

题目大意给你一个n×m 的矩阵,给你起点(x,y)让你输出一个轨迹,保证不重不漏的走过每一个点。 x和y保证分别严格小于n和m。Examplesinput3 3 2 2output2 21 21 32 33 33 23 12 11 1input3 4 2 2output2 22 12 32 41 43 43 33 23 11 11 21 3解题思路我的思路是,先走起点的这一行,然后再走下面的所有格子,最后走上面的。具体走法是按蛇形去,

2022-04-29 11:21:30 328

原创 J - 全排列问题 (c 和 c++ 版本)

Description从n个不同元素任取m(m<=n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列,当m=n时所有的排列情况叫全排列。现输入n个递增的数,请你输出这n个数的全排列。全排列输出顺序如样例所示。Input第一行先输入一个整数n(1<=n<=10)。接下来是一行输入n个由空格分开的互不相同的整数num (1 <= num <= 90000)。Output对于每组数据,每一种排列占一行,各元素间用逗号隔开。SampleInp

2022-04-27 21:07:06 77

原创 玩转二叉树 (25 分)

给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:71 2 3 4 5 6 74 1 3 2 6 5 7输出样例:4 6 1

2022-04-23 11:07:17 600

原创 B. Vanya and Lanterns

题目大意给你 n 和 l,分别代表n个灯笼和街道的长度,第i个灯笼的位置是a[i],每个灯笼可以照射以自己为中心,距离为d的距离,问最短的光距离是多少。思路一开始看见这道题我想的是浮点数二分,结果超时了,后来就不得不再去重新分析这道题。除开端点外,中间每个灯笼的距离最大就是d * 2,再大就照不到了,所以我们就遍历一遍,找最大的距离是多少,最后再和端点进行比较。左端点和零比较,右端点和 l 比较,最后去对打就好了。#include <bits/stdc++.h>using name

2022-04-18 20:44:28 233

原创 sdut 程序设计二 链表题目汇总(c语言)

A - 数据结构实验之链表一:顺序建立链表#include <stdio.h>#include <stdlib.h>#include <string.h>struct node{ int data; struct node *next;};int main(){ int n; struct node *head, *tail, *p; head = (struct node*)malloc(sizeof (str

2022-04-13 21:35:06 795 3

原创 L1-7 前世档案 (20 分)

题目网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。现在我们把结论从左到右顺序编号,编号从 1 开始。这里假设回答都是简单的“是”或“否”,又假设回答“是”对应向左的路径,回答“否”对应向右的路径。给定玩家的一系列回答,请你返回其得到的结论的编号。输入格式:输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人数。随后 M 行,每行顺

2022-04-09 19:13:16 201

原创 L2-3 完全二叉树的层序遍历 (25 分)

题目大意一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。输入格式:输入在第一行中给出正整数 N(≤30),即树中结点个数。第二行给出后序遍历序列,为 N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。输出格式:在一行中输出该树的层序遍历序列。所有数字都以 1 个空格分隔,行

2022-04-08 20:04:00 759 2

空空如也

空空如也

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

TA关注的人

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