随笔分类 -  模板

摘要:题目传送门 解题思路: 一维解01背包,突然发现博客里没有01背包的板子,补上 AC代码: 阅读全文
posted @ 2019-08-15 19:46 Mr^Simon 阅读(175) 评论(0) 推荐(0)
摘要:1 int dp[MAX_N], a[MAX_N], n; 2 int ans = 0; // 保存最大值 3 4 for (int i = 1; i <= n; ++i) { 5 dp[i] = 1; 6 for (int j = 1; j < i; ++j) { 7 if (a[j] < a[i 阅读全文
posted @ 2019-08-11 17:17 Mr^Simon 阅读(144) 评论(0) 推荐(0)
摘要:题目传送门 解题思路: 一道欧拉回路的模板题,详细定理见大佬博客,任意门 AC代码: 阅读全文
posted @ 2019-08-04 22:45 Mr^Simon 阅读(168) 评论(0) 推荐(0)
摘要:题目传送门 本题相对于模板1多了乘法,但是代码里面加入了要考虑优先级的因素,所以并不是很好写. AC代码: 1 #include<cstdio> 2 #include<iostream> 3 4 using namespace std; 5 6 int n,m,p; 7 long long a[10 阅读全文
posted @ 2019-08-03 21:02 Mr^Simon 阅读(114) 评论(0) 推荐(0)
摘要:题目传送门 解题思路: 一道裸的最小生成树,题解传送门 AC代码: 阅读全文
posted @ 2019-08-01 23:41 Mr^Simon 阅读(171) 评论(0) 推荐(0)
摘要:题目传送门 逆元定义 逆元和我们平时所说的倒数是有一定的区别的,我们平时所说的倒数是指:a*(1/a) = 1,那么逆元和倒数之间的区别就是:假设x是a的逆元,那么 a * x = 1(mod p),也就是只多了一个取余的操作,这个取余的操作,就会保证a的逆元不一定只是a的倒数。那么我们的逆元有什么 阅读全文
posted @ 2019-07-29 23:22 Mr^Simon 阅读(435) 评论(0) 推荐(0)
摘要:题目传送门 解题思路: 因为推导过程过于复杂,懒得写,所以题解传送门 AC代码: 1 #include<iostream> 2 #include<cstdio> 3 4 using namespace std; 5 6 long long a,b,x,y; 7 8 void exgcd(long l 阅读全文
posted @ 2019-07-28 22:19 Mr^Simon 阅读(214) 评论(0) 推荐(0)
摘要:题目传送门 解题思路: 传送门 AC代码: 阅读全文
posted @ 2019-07-27 22:52 Mr^Simon 阅读(203) 评论(0) 推荐(0)
摘要:题目传送门 解题思路: 自己懒得写,看一位大佬写的不错(三种方法)。//任意门 AC代码: 倍增做法: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 5 using namespace std; 6 7 int n,m,s 阅读全文
posted @ 2019-07-25 09:45 Mr^Simon 阅读(162) 评论(0) 推荐(0)
摘要:原题目链接:http://poj.org/problem?id=2559 解题思路: 用单调栈求任意每个区间的最小值及区间长度,为什么记录区间最小值呢?(木桶装水原理,装水量取决于最短木板长)。枚举每个区间,维护最大答案。 //自行百度单调栈 AC代码: 阅读全文
posted @ 2019-07-24 12:48 Mr^Simon 阅读(132) 评论(0) 推荐(0)
摘要:原题传送门 题目中文翻译: Description 字符串的前缀是从给定字符串的开始处开始的子串。 “carbon”的前缀是:“c”,“ca”,“car”,“carb”,“carbo”和“carbon”。请注意,空字符串在此问题中不被视为前缀,但每个非空字符串都被认为是它自己的前缀。在日常用语中,我 阅读全文
posted @ 2019-07-07 14:41 Mr^Simon 阅读(267) 评论(0) 推荐(0)
摘要:题目原网址:http://acm.hdu.edu.cn/showproblem.php?pid=6183 题目中文翻译: Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others) Tota 阅读全文
posted @ 2019-06-02 00:34 Mr^Simon 阅读(287) 评论(0) 推荐(0)
摘要:离散化是什么呢? 百度百科给的资料:https://baike.baidu.com/item/%E7%A6%BB%E6%95%A3%E5%8C%96/10501557 但其实通俗一点就是给定一个序列,将其转化为每个元素在序列中的序数的绝对值. 再说白一点就是看序列中的每一个元素大小在序列中排第几. 阅读全文
posted @ 2019-05-11 21:03 Mr^Simon 阅读(182) 评论(1) 推荐(0)
摘要:题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的值 输入输出格式 输入格式: 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含2或4个 阅读全文
posted @ 2019-05-07 20:58 Mr^Simon 阅读(146) 评论(0) 推荐(0)
摘要:题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3或 阅读全文
posted @ 2019-03-15 21:10 Mr^Simon 阅读(167) 评论(0) 推荐(0)
摘要:题目链接: https://www.luogu.org/problemnew/show/P3865 st表: 倍增的思想 ST[i][j]维护i到i+2^j-1区间内的答案。 代码: 阅读全文
posted @ 2019-03-15 20:59 Mr^Simon 阅读(167) 评论(1) 推荐(0)
摘要:1 #include<iostream> 2 #include<string> 3 #include<cstring> 4 using namespace std; 5 int main() 6 { 7 int a[2010],b[2010],c[40100];//数组开大一点,以防RE 8 int 阅读全文
posted @ 2019-02-23 11:26 Mr^Simon 阅读(2103) 评论(0) 推荐(0)
摘要:1 #include 2 using namespace std; 3 int a[506],b[506],lena,lenb,js;string a1,b2; 4 int main() 5 { 6 cin>>a1>>b2; 7 lena=a1.length(); 8 lenb=b2.length(); 9 for(int i=0;i=lenb)... 阅读全文
posted @ 2019-02-23 11:08 Mr^Simon 阅读(216) 评论(0) 推荐(0)
摘要:题目描述 输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出“b^p mod k=s” s为运算结果 输入输出样例 输入样例#1: 2 10 9 输出样例#1: 2^10 mod 9=7算法原理:b^p = 阅读全文
posted @ 2019-02-23 07:25 Mr^Simon 阅读(152) 评论(0) 推荐(0)
摘要:题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: 第一行包含一个整数N,表示操作的个数 接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下: 阅读全文
posted @ 2019-02-17 22:28 Mr^Simon 阅读(124) 评论(0) 推荐(1)