自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021.CCPC-1009Command Sequence

2021.CCPC-1009Command Sequence来源:HDU1009Command Sequence题不题的不重要,比赛时候服务器真的太卡了,真的很搞心态题意ULDR分别代表向上左下右四个方向走一格给定长度为n的字符串,然后找子串,需要满足的条件是,我遍历这个子串,可以正好回到起始位置思路看到其他人用的都是前缀和维护,我这里用的是图将运动看成一个轨迹,起始在(0,0)的位置上,然后遍历数组,如果我在遍历过程中重复到达一个点,那么我一定可以从这个点出发再回到这个点,这就是对答

2021-08-29 08:59:06 435

原创 5844. 数组元素的最小非零乘积(图文解析)

5844. 数组元素的最小非零乘积LeetCode来源 :5844. 数组元素的最小非零乘积思路数学问题吧,我这里是找规律找出来的1、首先我们明确,找1和0交换,要不然没有意义2、我们希望乘积越小越好,那么数之间的差距就越大越好,我们尽量去补一个大的数出来3、我们肯定希望1越多越好,因为1对我们的结果没有影响其实当我们做个图,找到最多的1的时候,就可以发现2和3其实是一个问题,问题就迎刃而解了将三个第一位是1的,单独弄出来,那么余出来的部分A就可以去补到B部分去,构成三个6,最后剩

2021-08-15 19:23:24 291

原创 576. 出界的路径数

576. 出界的路径数LeetCode576. 出界的路径数思路暴力递归肯定是不能的,都要对1e9 + 7取模了,暴力肯定超时,但是又确确实实是递归问题,考虑优化记忆化递归利用re数组记录下来曾经走过的路,当下一次遍历到这个点的时候,利用以前得到的数据,直接相加,不再继续遍历class Solution {public: typedef long long ll; const int MOD = 1e9 + 7; ll re[52][52][52]; i

2021-08-15 10:33:00 100

原创 166. 数独(深搜+剪枝)

166. 数独AcWing来源:166. 数独深搜+剪枝思路9 * 9的格子,一个格子九种填法,暴搜肯定TLE考虑优化1、选择优化,由于肯定有解,我们先搜索可选条件少的点#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 9;int ones[1 << N], map[1 << N];in

2021-08-11 09:17:11 200 1

原创 LeetCode253周赛

LeetCode253周赛LeetCode来源:LeetCode253周赛第一题遍历判断就可以了class Solution {public: bool isPrefixString(string s, vector<string>& words) { string c = ""; for(auto i : words){ c += i; if(c == s) return true;

2021-08-10 17:34:53 58

原创 LeetCode252周赛

LeetCode252周赛LeetCode来源: LeetCode252周赛以为是晚上十点半开始,结果傻眼了,是中午十二点半第一题暴力直接过class Solution {public: bool isThree(int n) { int res = 0; for(int i = 1;i <= n;i++){ if(n % i == 0) res++; } return res == 3;

2021-08-02 12:29:26 74

原创 P3574 [POI2014]FAR-FarmCraft(树形dp)

P3574 [POI2014]FAR-FarmCraft洛谷来源: P3574 [POI2014]FAR-FarmCraft由于我也是这道题的被害人,所以前来提醒后来人----------------------------------------------------------------------------------------------------在看洛谷题解的时候相信很多人看到了或者有很多类似的,其实是有点不准确的这个真的很误导人,我也是看了一下午,试了又试才搞明白这里明

2021-07-27 10:50:27 258 3

原创 P2962 [USACO09NOV] Lights G(双向搜索)

P2962 [USACO09NOV]Lights G题意:给定n个点,初始值为0,m条无向边,每次操作一个点,将自身和于自己相连的的点1变0、0变1,问最少操作次数,使得全为1思路:贪心:每个点最多操作一次暴力搜索:先考虑暴力搜索每种状态,时间复杂度就是2^n,这里n最大35,很明显会超时双向搜索:那么我们使用双向搜索时,就会将时间复杂度减低很多,达到大概n*2^(n/2),这个降低是很多的#include <iostream>#include <algorithm&g

2021-07-25 13:12:47 261

原创 AcWing 数组补全 环图做法

数组补全AcWing来源: 3775.数组补全这里难度给出是困难,但其实并不难,可能写的稍微麻烦一点,读懂的话很就很简单了题意大概就是给出n个数,如果这个数为0,那么表示缺失,需要我们补一个数,最后将补好的数组输出限制就是,这n个数是1-n中的数,并且第i个数不能为i我这里的做法是转换成环图,将题意转换一下,其实就是构建环图,但是不可以有自环,就是自己指向自己的环,如果还是不太明白,那么看下面这张图,对于第一个样例可以看出有一个缺口,第2个数没有连向下一个,第一个数也没有上一个数,第三个数既

2021-07-24 12:08:18 96

原创 AcWing 八数码 A*广搜

八数码每天问自己一遍,自己真的会搜索吗AcWing来源:179.八数码这是一道中等难度的搜索题怎么考虑题目呢,首先考虑暴力每种情况,那就是9!也就是362,880,其实这个数还好,没有大到离谱,但是搜起来,重复太多,也是过不了的,写完可以试试把预估函数去掉,会TLE的这是一道搜索题没得事,但是暴搜又不行,那就考虑A*1、建立预估函数,求出曼哈顿距离,也就是说每一个点到最后它应该在的那个点的距离,我们最后求出来距离一定是大于这个预估函数的,可以用这个来缩小搜索范围2、还要明白一个八数码的性质

2021-07-23 21:14:07 120

原创 java实现贪吃蛇小游戏(简洁)

贪吃蛇学习了半年的算法,多少有点凌乱了,所以最近痴迷于java做一些小的项目,做一些小的项目,这种节奏还是很舒服的本次文章是我看麦叔编程学习的贪吃蛇,代码很简洁,一共也就二百来行代码做好以后就是这样,然后开始吧首先在IDEA上创建一个java项目,我是用的IDEA,eclipse也一样,都是工具,按照自己的工具来就行,还有就是我的用的JDK16版本,因为我胆子比较大(其实是我懵懂无知),大家最好还是用JDK1.8起名Msnake,因为我们要用的图形界面,这里选择的是JFrame,然后导入impor

2021-06-29 13:58:43 811 4

原创 1007 Maximum Subsequence Sum (25 分) PAT甲级

1007 Maximum Subsequence Sum (25 分)链接: 1007 Maximum Subsequence Sum (25 分)来源: PTA程序设计类实验辅助教学平台题目大意:给你一个K长度的数组,要求你去找到这个数组中 最大连续子序列的和 ,然后输出这个最大的和、这个序列第一个数、这个序列最后一个数,如果这个序列都为负数,那么输出0和这个数组第一个数和最后一个数,题意还是很好理解的,具体就是怎么去做了。我们定义maxx为我们的最大和,startx为输出的序列中第一个数,e

2021-06-23 12:35:45 230

原创 1095 解码PAT准考证 (25 分)

1095 解码PAT准考证 (25 分)链接: 1095 解码PAT准考证 (25 分)来源:PTA程序设计类实验辅助教学平台题目的有些长,第一眼看上去有点烦,但是慢慢读完题,发现问题还是比较好理解的,毕竟是乙级,但是作为95道的最后一道,我真的,WA了很多很多次…这道题需要注意一下的就是时间卡着呢,用map或者全用cin、cout的话那就很容易超时,我试过很多优化cin和cout的,都无济于事,还是超时,最后还是换成了scanf和printf,其他就没什么好说的,按照题意模拟,具体解释写在代码里

2021-06-17 23:06:08 344

原创 1094 谷歌的招聘 (20 分)

1094 谷歌的招聘 (20 分)链接: 1094 谷歌的招聘 (20 分)来源:PTA程序设计类实验辅助教学平台作为乙级题目95个中的倒数第二个,还是有一点点小坑的,当然大佬当我没说,题意很简单,直接模拟学好STL大法,我辈义不容辞,substr求出第二位开始到最后的子集,再加上我们所枚举到的数,得到新的K位的数,当然,预处理第一个数别忘了因为K可以等于9,那么得到的这个数就可以超过int,所以我们用long long来接收,由于这个数很大,在判断素数时稍微优化个i *i <= n即可

2021-06-14 20:26:22 409

原创 河南省第十三届icpc-J-甜甜圈

J-甜甜圈链接: 甜甜圈来源:牛客网思路:树状数组将两叠甜甜圈想象成两个 头对着头 的柱子,这样就可以把两个合成一个数组,离散化存一下位置,以第一叠的最后一个为初始位置,第二叠的最后一个为末尾位置;之后为每个位置赋值为1表示这个位置上有甜甜圈,以其中一叠的最顶端最为标记为flag1,以最大值的位置标记为flag2,每次将最大的吃掉就是把最大的位置赋值成0,并计算flag1和flag2之间1的个数,这个修改和获得1的个数均可用树状数组来维护;具体的看代码了#include <iost

2021-06-10 17:33:46 338 1

原创 dd爱探险(状压DP)

dd爱探险题目描述:输入描述:输出描述:示例1 :输入:输出:题目描述:星际中有n个空间站,任意两个空间站间可以相互跳跃,由空间站x跳跃到空间站y所需要的代价为P[x][y],注意不保证p[x][y]=p[y][x],dd可以任意选择出发的空间站,并通过恰好n−1次跳跃把所有空间站跳完,并且dd必须选择2次跳跃,其中一次跳跃中进行重力加速,另一次跳跃中进行反重力加速,重力加速会导致当前跳跃代价变为0,反重力加速会导致当前跳跃代价翻倍(乘2),问跳完所有空间站所需要最小代价输入描述:第一行一个数

2021-06-10 11:29:10 124

原创 [HNOI2013]数列(牛客竞赛)

[HNOI2013]数列题目描述:链接: [HNOI2013]数列来源:牛客网小T最近在学着买股票,他得到内部消息:F公司的股票将会疯涨。股票每天的价格已知是正整数,并且由于客观上的原因,最多只能为N。在疯涨的K天中小T观察到:除第一天外每天的股价都比前一天高,且高出的价格(即当天的股价与前一天的股价之差)不会超过M,M为正整数。并且这些参数满足M(K-1) < N。 小T忘记了这K天每天的具体股价了,他现在想知道这K天的股价有多少种可能输入描述:只有一行用空格隔开的四个数:N、K、

2021-04-23 14:35:56 202

空空如也

空空如也

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

TA关注的人

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