
算法竞赛进阶指南
NoobPlayer_llke
除了编程啥都会点
展开
-
154. 滑动窗口【单调队列】
题目给定一个大小为的数组。有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。您只能在窗口中看到k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为[1 3 -1 -3 5 3 6 7],k为3。窗口位置 最小值 最大值 [1 3 -1] -3 5 3 6 7 -1 -3 1 [3 -1 -3] 5 3 6 7 ...原创 2019-03-30 20:45:02 · 234 阅读 · 0 评论 -
291. 蒙德里安的梦想【状压DP】
求把N*M的棋盘分割成若干个1*2的的长方形,有多少种方案。例如当N=2,M=4时,共有5种方案。当N=2,M=3时,共有3种方案。如下图所示:输入格式输入包含多组测试用例。每组测试用例占一行,包含两个整数N和M。当输入用例N=0,M=0时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个结果,每个结果占一行。数据范围1≤N,M≤111≤N,...原创 2019-04-19 16:36:43 · 775 阅读 · 0 评论 -
91. 最短Hamilton路径【状压DP】
给定一张nn个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数nn。接下来nn行每行nn个整数,其中第ii行第jj个整数表示点ii到jj的距离(记为a[i,j])。对于任意的x,y,zx,y,z,数据保证 a[x,x]=0,a[x...原创 2019-04-19 14:50:55 · 306 阅读 · 0 评论 -
5. 多重背包问题 II 【用二进制优化】
有NN种物品和一个容量是VV的背包。第ii种物品最多有sisi件,每件体积是vivi,价值是wiwi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数和背包容积。接下来有NN行,每行三个整数vi,wi,sivi,wi,si,用空格隔开,分别表示第...原创 2019-03-28 20:55:00 · 387 阅读 · 0 评论 -
4. 多重背包问题 I
有NN种物品和一个容量是VV的背包。第ii种物品最多有sisi件,每件体积是vivi,价值是wiwi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数和背包容积。接下来有NN行,每行三个整数vi,wi,sivi,wi,si,用空格隔开,分别表示第...原创 2019-03-28 20:52:39 · 290 阅读 · 0 评论 -
3. 完全背包问题
有NN种物品和一个容量是VV的背包,每种物品都有无限件可用。第ii种物品的体积是vivi,价值是wiwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数和背包容积。接下来有NN行,每行两个整数vi,wivi,wi,用空格隔开,分别表示第ii种物...原创 2019-03-28 20:51:40 · 194 阅读 · 0 评论 -
2. 01背包问题
01背包问题有NN件物品和一个容量是V的背包。每件物品只能使用一次。第ii件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品数量和背包容积。接下来有N行,每行两个整数vi,wi,用空格隔开,分别表示第i件物品的体积和价值...原创 2019-03-28 20:49:51 · 1530 阅读 · 4 评论 -
41.包含min函数的栈
设计一个支持push,pop,top等操作并且可以在O(1)时间内检索出最小元素的堆栈。push(x)–将元素x插入栈中 pop()–移除栈顶元素 top()–得到栈顶元素 getMin()–得到栈中最小元素样例MinStack minStack = new MinStack();minStack.push(-1);minStack.push(3);minStack.pus...原创 2019-03-28 20:45:10 · 130 阅读 · 0 评论 -
64位整数乘法【快速乘模板】
求aa乘bb对pp取模的值。输入格式第一行输入整数aa,第二行输入整数bb,第三行输入整数pp。输出格式输出一个整数,表示a*b mod p的值。数据范围1≤a,b,p≤10181≤a,b,p≤1018输入样例:345输出样例:2#include<bits/stdc++.h>using namespace std;...原创 2019-03-28 20:41:34 · 322 阅读 · 0 评论 -
89. a^b【快速幂模板】
求aa的bb次方对pp取模的值。输入格式三个整数a,b,pa,b,p,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围1≤a,b,p≤1091≤a,b,p≤109输入样例:3 2 7输出样例:2快速幂模板,交了结果WA了需要注意的是 123456789 0 1 这个数据,1%1 = 0#in...原创 2019-03-28 20:38:23 · 185 阅读 · 0 评论 -
237. 程序自动分析 【map+并查集】
题目https://www.acwing.com/problem/content/239/在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xjxi=xj或xi≠xjxi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上...原创 2019-03-27 21:53:05 · 146 阅读 · 0 评论 -
128 编辑器 【双栈】
题目你将要实现一个功能强大的整数序列编辑器。在开始时,序列是空的。编辑器共有五种指令,如下:1、“I x”,在光标处插入数值x。2、“D”,将光标前面的第一个元素删除,如果前面没有元素,则忽略此操作。3、“L”,将光标向左移动,跳过一个元素,如果左边没有元素,则忽略此操作。4、“R”,将光标向右移动,跳过一个元素,如果右边没有元素,则忽略次操作。5、“Q k”,假设此刻光标...原创 2019-03-31 10:10:12 · 208 阅读 · 0 评论