03 2019 档案
摘要:前缀和问题 k倍区间 给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗? 统计前缀和 sum[1] = a1; sum[2] = a1+
阅读全文
摘要:入门: 题意:杭电1520 先输入n个人,接下来n行输入他们的快乐值,再接下来输入一些数对<a,b>,表示b是a的上司(别看反了)! 要求直属上司和员工不能同时出席宴会,求宴会最大的快乐值。
阅读全文
摘要:快速幂形式 快速乘法幂(优化) 幂转换成乘法,乘法转化成加法 矩阵快速幂 将快速幂里边的1换成一个单位矩阵,然后利用矩阵相乘。 例题:蓝桥杯 --加强的斐波那契 斐波那契数列大家都非常熟悉。它的定义是: f(x) = 1 .... (x=1,2) f(x) = f(x-1) + f(x-2) ...
阅读全文
摘要:什么是尾递归呢?(tail recursion), 顾名思议,就是一种“不一样的”递归,说到它的不一样,就得先说说一般的递归。对于一般的递归,比如下面的求阶乘,教科书上会告诉我们,如果这个函数调用的深度太深,很容易会有爆栈的危险。 尾递归就可以大大缩小了栈的深度,可以出栈 例题:切面条 蓝桥杯 标题
阅读全文
摘要:BigInteger abs() 返回大整数的绝对值BigInteger add(BigInteger val) 返回两个大整数的和BigInteger and(BigInteger val) 返回两个大整数的按位与的结果BigInteger andNot(BigInteger val) 返回两个大
阅读全文
摘要:求树直径原理:以任意点w开始,先做一次DFS(BFS),找到最远点v,然后以此点v,进行一次DFS(BFS),找到最远点u,u到v就是树的直径,记做d(u,v)。 下边两道题堪称树直径模板! TOJ 3517 The longest athletic track 大臣的旅费(java)-蓝桥杯
阅读全文
摘要:方法一:自然数a,b互质,则不能表示成ax+by(x,y为非负整数)的最大整数是ab-a-b. 证明: a或者b是1的情况下容易证明. 以下情况都是a>1且b>1的情况. 首先证明ab-a-b不能表示成ax+by 假设ab-a-b=ax+by,那么ab=am+bn (m,n都大于等于1) 左边是a的
阅读全文
摘要:蓝桥杯真题,不过感觉这种方法挺好,是个思路,虽然先排序后输出前五个简单
阅读全文
摘要:Poj2531 首先把所有节点都放在一组,然后采用深度优先搜索的方法,对每一个节点都做判断是否应该移到另一组去,判断的依据是移过去和不移过去哪个得到的和值比较大(这里移去B组后的计算方法就是加上该点和在A组中的所有点的间距,和减去原本就在B组中的所有点的间距),如果移过去变小了,那么则不移过去,并剪
阅读全文
摘要:记忆化搜素,即是dfs+dp,保存每次搜素到的结果,可以当模板记住 入门:http://poj.org/problem?id=1088 http://acm.hdu.edu.cn/showproblem.php?pid=1078
阅读全文
摘要:归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 算法:
阅读全文
摘要:2^k求法 lowbit()的返回值就是 2^k 次方的值。 基本树形数组的模板 例题: hihocoder1524 树形数组求逆序对,用树形数组可以快速统计出ai>aj对的数量,时间复杂度可以很好的提升,先感慨一个大小为a的最大值的数组c,每当读入一个数时,我们可以用桶排序思想,将c[a[i]]加
阅读全文
摘要:给定一个矩阵 matrix,其中矩阵中的元素可以包含正数、负数、和0,返回子矩阵的最大累加和。例如,矩阵 matrix 为: 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 拥有最大和的子矩阵为: 9 2 -4 1 -1 8 其和为15。
阅读全文
摘要:代码如下 <?php // Connect to localhost:8888 to get the flag if($_GET['👉🏻'] == '👌🏻') die(phpinfo()); $_ = $_GET['']; highlight_file(__FILE__); if(preg
阅读全文
摘要:LIS LIS的优化说白了其实是贪心算法,比如说让你求一个最长上升子序列把,一起走一遍。 比如说(4, 2, 3, 1, 2,3,5)这个序列,求他的最长上升子序列,那么来看,如果求最长的上升序列,那么按照贪心,应该最可能的让该序列的元素整体变小,以便可以加入更多的元素。现在开辟一个新的数组,arr
阅读全文
摘要:分组背包是LC(01)背包的一种变形。分组背包中物品被分成几组,每组中只能挑选出一件物品加入背包,这是与01背包的区别。 在01背包中,我们以每一件物品作为动态规划的每一阶段,但是在分组背包中我们要以每一组作为每一阶段。 这是分一组里边有两种情况,比较这两种情况哪种最优 例题:杭电1712 这道题就
阅读全文
摘要:SQL注入 1. 什么是sql注入 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 2. sql注入类型 按照注入点类型来分类 (1)数字型注入点 许多网页链接有类似的结构 http://xxx.com/users.php?id=1 基
阅读全文
摘要:二维背包问题有N件物品和一个容量为V,载重为U的背包。第i件物品的体积是a[i],重量是b[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大 二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。问怎
阅读全文
摘要:代码: <?php include($_GET['for'].‘.php’);//用于测试本地包含漏洞 ?> Linux test.php?for=/etc/passwd%00 Win test.php?for=D:\readme.txt%00 Log Injection 访问任意页面payload
阅读全文
摘要:多重背包 有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值 是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大母函数的思想也是如此 给你 价值, 物品数量的限制, 然后凑, hdu2191 第一种写法 第二种写法: 优化写法
阅读全文
摘要:题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选 择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N 块岩石(不含起点和终 点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达 终点。
阅读全文
摘要:public class Main128 { public static int f(int a, int b) { int i; for(i=a;;i+=a){ // 填空 if(i%b==0) return i; } ...
阅读全文
摘要:四方定理 数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示。 我们可以通过计算机验证其在有限范围的正确性。
阅读全文
摘要:package test3; import java.*; import java.util.*; public class Main112 { public static int value(char x){ if(x>='0'&&x='a'&&x='A' && x<='F') return x-'A'+10; return 0; } ...
阅读全文
摘要:最大值最小化 即是当存在一个x为最大值的最小化,则x-1不成立,x+1可行,但他不满足最小,所以设边界最小值L,最大值R,二分查找第一个满足题意的, 例子: 把一个包含n个正整数的序列划分成m个连续的子序列。设第i个序列的各数之和为S(i),求所有S(i)的最大值最小是多少? 例如序列1 2 3 2
阅读全文
摘要:问题:设有n=2^k个选手参加循环赛,要求设计一个满足以下要求比赛日程表: 1)每个选手必须与其它n-1个选手各赛一次; 2)每个选手一天只能赛一次。 这题刚开始乍一看是全排列,可是想多了,全排列的话太太复杂,递归是最好的方法,比较容易理解 这种解法是把求解2^k个选手的比赛日程问题划分为2^1,2
阅读全文
摘要:排列的一种好方法,用链表来记录数据,简单明了,简称模板,值得记录
阅读全文
摘要:并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在
阅读全文
摘要:/* 方块填数 “数独”是当下炙手可热的智力游戏。一般认为它的起源是“拉丁方块”,是大数学家欧拉于1783年发明的。 如图[1.jpg]所示:6x6的小格被分为6个部分(图中用不同的颜色区分),每个部分含有6个小格(以下也称为分组)。 开始的时候,某些小格中已经填写了字母(ABCDEF之一)。需要在
阅读全文
浙公网安备 33010602011771号