
算法
文章平均质量分 50
菜鸡本鸡。
路人A:“哎呀这个辣鸡没打过ACM怎能蹭ACM热度”
蓝冰lanbing
Talk is cheap
展开
-
由一个“双指针题目”引起的对平台的思考
由一个“双指针题目”引起的对平台的思考(“三数之和“)先说题目吧,今天做了道“三数之和”给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]我“定眼”一看!豁,好熟悉,dfs,然后一顿做,我的思路是这样的:确定好dfs参数原创 2021-10-08 17:20:46 · 121 阅读 · 0 评论 -
前缀和算法
前缀和算法写在前面:前缀和算法是一种重要的预处理算法,能大大降低查询的时间复杂度。最简单的题目就是:给定n个数和m次询问,每次询问一段区间的和。查找一个区间的和我们可以从加法转换为减法,查询从L到R区间数字的和,其实可以转换为前R之和减去前L-1项之和。如下所示:例题引入:P3406 海底高铁题目背景大东亚海底隧道连接着厦门、新北、博艾、那霸、鹿儿岛等城市,横穿东海,耗资 100010001000 亿博艾元,历时 15 年,于公元 2058 年建成。凭借该隧道,从厦门可以乘坐火车直达台湾、原创 2021-09-18 10:01:24 · 268 阅读 · 3 评论 -
蓝桥七段码旧题新思路
蓝桥七段码旧题新思路(纯深搜)小蓝要用七段码数码管来表示一种特殊的文字。上图给出了七段码数码管的一个图示数码管中一共有 7 段可以发光的二极管,分别标记为 a, b, c, d, e, f, g。小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符的表达时,要求所有发光的二极管是连成一片的。例如:b 发光,其他二极管不发光可以用来表达一种字符。例如:c 发光,其他二极管不发光可以用来表达一种字符。这种方案与上一行的方案可以用来表示不同的字符,尽管看上去比较相似。例如:a, b原创 2021-04-15 14:20:48 · 138 阅读 · 0 评论 -
【PAT】对字符串的快速操作秘诀
【PAT】对字符串的快速操作秘诀当需要对String字符串增添或删除字符时,用StringBuilder或StringBuffer类来替代String类。由于StringBulider速度比StringBuffer快,所以StringBulider在OJ比赛中更常用。Java中,String对象是不可变的,所以利用+会建立一个新字符串对象,这是十分费时的,而StringBuilder或StringBuffer类对象是可变的,可以添加、删除和修改字符。StringBuilder的常用方法如下://建立一个转载 2021-03-02 22:12:16 · 172 阅读 · 0 评论 -
【PAT】超时问题及处理方案(改进输入输出)
【PAT】超时问题及处理方案(改进输入输出)Pat考试中,很多题目都是需要读取大量的数据,而java的Scanner对于读取大量数据效率低,如果选择不当,即使算法写的再好,也是无功而返,读取数据时间超时已经gg了1、一般情况下用BufferedReader类读取数据即可,尽量避免使用scanner2、数据量大,而且都是相同类型数据,可以考虑使用StreamTokenizer封装BufferedReader效率更好static StreamTokenizer in = new StreamToke转载 2021-03-02 22:07:59 · 904 阅读 · 0 评论 -
Stream Tokenizer的用法
Stream Tokenizer的用法转载自:https://www.cnblogs.com/likailiche/p/4462062.html详情见转载。关键点:类java.io.StreamTokenizer可以获取输入流并将其分析为Token(标记)。StreamTokenizer的nextToken方法将读取下一个标记默认情况下,StreamTokenizer认为下列内容是Token:字母、数字、除C和C++注释符号以外的其他符号。如符号“/”不是Token,注释后的内容也不是,而“转载 2021-01-13 08:56:28 · 364 阅读 · 0 评论 -
数论
数论关于约数相亲数:题目:https://www.luogu.com.cn/problem/P1851数学中的相亲数,也就是说两个数中任意一个的所有因子(除本身外)之和等于另外一个数。1.O(n sqrt(n))算法:考虑约数成对出现,注意完全平方数(该方法已经可以AC(76ms))。int j;for(register int i=1;i<=100000;i++){ for(j=1;j*j<=i;j++) { if(i%j==0)转载 2020-12-02 15:33:49 · 324 阅读 · 0 评论 -
矩阵压缩&降维&动态规划&递推【P1719 最大加权矩形】
矩阵压缩&降维&动态规划&递推【P1719 最大加权矩形】题目描述为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没有马上答应他们,而是先给她们出了一道数学题,并且告诉她们:你们能获得的运动场地的面积就是你们能找到的这个最大的数字。校长先给他们一个N*N矩阵。要求矩阵中最大加权矩形,即矩阵的每一个元素都有一权值,权值定义在整数集上。从中找原创 2020-12-02 15:25:21 · 304 阅读 · 0 评论 -
借助数字三角形理解三种解题方法:递推、记忆化搜索、动态规划
经典算法——数字三角形的三种解题方法:递推、记忆化搜索、动态【题目】:如下图所示的数字三角形,从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。编写一个程序求出最佳路径上的数字之和。 【使用备忘录法实现】 7 3 8 8 1 2 2 7 4 4 4 5 2 6 5 放在开头:本md会借助“数字三角形”(hnucm:1436:原创 2020-12-02 15:24:24 · 518 阅读 · 0 评论 -
记录结果再利用的“动态规划”
记录结果再利用的“动态规划”记忆化搜索书中以背包为例子,和树状dp 不同,是种一维dp.如果不记忆化,复杂度为O(n^2)只不过,这种方法的搜索深度是n,而且每一层的搜索都需要两次分支,最坏就需要O(2”)的时间,当n比较大时就没办法解了。所以要怎么办才好呢?为了优化之前的算法,我们看一下针对样例输入的情形下rec递归调用的情况。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dz4iuIwJ-1606893759569)(C:\Users\Gumption\Ap原创 2020-12-02 15:23:06 · 158 阅读 · 0 评论 -
二叉树:暴力LCA&T a r j a n(离线)算法
二叉树重要性质:经过前人的总结,二叉树具有以下几个性质:二叉树中,第 i 层最多有 2^(i-1 )个结点。如果二叉树的深度为 K,那么此二叉树最多有 2^K-1 个结点。二叉树中,终端结点数(叶子结点数)为 n0,度为 2 的结点数为 n2,则 n0=n2+1。满二叉树除了满足普通二叉树的性质,还具有以下性质:满二叉树中第 i 层的节点数为 2^(i-1) 个。深度为 k 的满二叉树必有 2^k-1 个节点 ,叶子数为 2^(k-1)。满二叉树中不存在度为 1 的节点,每一个分支原创 2020-12-02 15:21:39 · 459 阅读 · 0 评论 -
图论:并查集求最小环
图论:并查集求最小环概念:图、路、环:一个有向图由G=(N,A)表示,其中N表示节点集,A表示边集边(i,j)为一有序对,i为出发节点,j为终止节点。在无向图中(i,j)与(j,i)一致。路是由节点及其对应的边依次相连构成。环是出发节点和终止节点相同的路。如果一条路不含重复边和重复节点,就被称做简单路,出发节点和终止节点相同的简单路就被称为简单环。对于有向图而言 可以使用拓扑排序的方式找出图中的环引入例题:P2661 信息传递题目描述有 nnn 个同学(编号为 111 到 nnn )原创 2020-12-02 14:52:59 · 4640 阅读 · 12 评论 -
第七届 蓝桥杯 java B组第6题
第七届 蓝桥杯 java B组第6题我的解法://0-9 全排列public class Main2{ public static void main(String[] arg) { int[] arr={0,1,2,3,4,5,6,7,8,9}; dg(arr, 0); } static int sum=0; private stat...原创 2020-03-01 10:49:17 · 134 阅读 · 0 评论 -
p1876 开灯吧,别枚举了,灯会开爆
开灯吧,别枚举了,灯会开爆▄︻┻┳═一…… ☆(>○<)题目: 首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的灯开的关上,关的开起来……直到第N个人为止。给定N,求N轮之后,还有哪几盏是开着的。输入格式一个数N,表示灯的个数和操作的轮数输出格式若干数,表示开着的电灯编...原创 2020-01-23 11:50:56 · 213 阅读 · 0 评论 -
递归题小结—HNUCM:递归求解 汉诺塔问题 字母全排列 九数组分数
湖南中医药 递归题1:湖南中医药 递归求解使用递归编写一个程序,求以下数列的前n项:s=1−12+13−14+15−16+....+1ns=1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+\frac{1}{5}-\frac{1}{6}+....+\frac{1}{n}s=1−21+31−41+51−61+....+n1package acm;im...原创 2019-11-28 20:39:34 · 796 阅读 · 0 评论 -
湖南中医药 1402 蜂房 递归
01:湖南中医药 1402 蜂房题解#include <iostream>using namespace std;//大神思想int f(int start,int end){ if(end==2) return 1; if(end==3) return 2; return f(1,end-1)+f(1,end-2);...原创 2019-11-20 17:28:49 · 254 阅读 · 0 评论 -
P1059 明明的随机数:Set巧用等
P1059 明明的随机数:Set巧用等解法一特点:不是拿出(同时查重),排序。而是放在坐标轴(完成排序,查重),flag法查重;#include<bits/stdc++.h>using namespace std;int main(){ int n,x,sum=0; int a[1000],b[1000]; cin>>n; memset(a,0,size...原创 2019-11-05 14:39:11 · 357 阅读 · 2 评论 -
洛谷 P1028 数的计算【递推】
洛谷 P1028 数的计算【递推】P1028 数的计算题目描述我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:1.不作任何处理;2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;3.加上数后,继续按此规则进行处理,直到不能再加自然数为止.输入输出格式输入格式:一个自然数n(n<...转载 2019-11-02 00:00:57 · 271 阅读 · 0 评论