![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
kicksilver7
人丑多读书!!!
展开
-
PKU 3468
题目链接:http://poj.org/problem?id=3468题解 :线段树区间更新模版题。代码:#include <string>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a,b) memset(a,b,siz原创 2017-02-27 22:32:58 · 275 阅读 · 0 评论 -
1051 最大子矩阵和
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1051题解:一道很好的思维题,主要是将二维的数组压缩称为一维的数组,然后就按常规的做法就行了。(这里有一个坑点,这里的输入的时候,是m在前,n在后的。)代码:#include <cstdio>#include <cstring>#include <iostrea原创 2017-05-06 20:00:07 · 186 阅读 · 0 评论 -
POJ 1469 COURSES
题目链接:http://poj.org/problem?id=1469题意:给你P门课程,对于每一门课程,有一个K,表示有K个学生选择这门课程,然后显示出选择该门课程学生的学号。最后问你,能不能使得每个学生所选择的课程均不相同。题解:典型的匈牙利,但是这个处理的时候需要注意一下,课程号是1~P,同时学生号也是从1开始的。代码:#include <cmath>#include <cstdio>#i原创 2017-07-13 10:26:36 · 162 阅读 · 0 评论 -
RMQ算法详解(持续更新 )
一维RMQ算法模版:void RMQ(){ for(int i=1;i<=n;i++) dp1[i][0]=dp2[i][0]=num[i]; for(int j=1;(1<<j)<=n;j++) { for(int i=1;i+(1<<j)-1<=n;i++) { dp1[i][j]=max(dp1[原创 2017-07-05 10:35:39 · 365 阅读 · 0 评论 -
POJ 2100 Graveyard Design
题目链接:http://poj.org/problem?id=2100题解:尺取代码:#include #include #include #include #include #include using namespace std;#define inf 0x3f3f3f3ftypedef long long ll;#define met(a,b) me原创 2017-07-08 21:31:05 · 135 阅读 · 0 评论 -
HDU 5328 Problem Killer
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5328题意:给你一串数字,找出里面最长的连续等差数列或则等比数列题解:尺取代码:#include #include #include #include #include using namespace std;#define met(a,b) memset(a原创 2017-07-09 09:18:29 · 178 阅读 · 0 评论 -
POJ 3601 Subsequence
题目链接:http://poj.org/problem?id=3061题意:给你一串数字和一个M,让你找到不小于M的最小连续序列的长度。代码:#include #include #include #include #include using namespace std;#define met(a,b) memset(a,b,sizeof(a))#define原创 2017-07-09 09:59:35 · 185 阅读 · 0 评论 -
LeetCode Longest Substring Without Repeating Characters
题目链接:https://leetcode.com/problems/longest-substring-without-repeating-characters/description/题解:心累,没想到还有这种操作。 直接放set可以保证不重复,下一个如果没出现过,就放,不然就删除。 自己的代码还是打的太少了。 代码:class Solution {public: int leng原创 2017-07-30 21:41:27 · 110 阅读 · 0 评论 -
codeforces Sagheer, the Hausmeister 812B
题目链接:http://codeforces.com/problemset/problem/812/B题意:某一个楼有N层,每一层层M+2个房间,第一个房间和最后一个房间表示的是左楼梯和右楼梯。现在管理员处于最底层的左楼梯处,管理员关灯的时候有两个原则:1.必须要将一层楼的灯全部关闭以后,才可以去上面的楼层。2.管理员每次移动一个位置的时间均为1S,并且关灯的动作时不算时间原创 2017-07-10 09:21:04 · 224 阅读 · 0 评论 -
codeforces An express train to reveries 814B
题目链接:http://codeforces.com/contest/814/problem/B题意:找到一串数字,它跟A,B串(互相)只有一个不同。题解:通过贪心的思想可以知道,如果要满足条件,那么就只会出现两种情况,要么一个不同,要么两个不同。得到这个以后就简单很多了,直接进行暴力就行了。代码:#include #include #include #i原创 2017-07-10 14:15:08 · 201 阅读 · 0 评论 -
hihoCoder #1014 : Trie树
题目链接:https://hihocoder.com/problemset/problem/1014题解:字典树模版代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a,b) memset(a,b,sizeof(a))#d原创 2017-07-27 10:55:05 · 150 阅读 · 0 评论 -
POJ 3630 Phone List
题目链接:http://poj.org/problem?id=3630题意:给你一串长度小于等于10的电话号码,问你,其中的一个是不是其他的前缀,如果是的话,就输出NO,不然就YES。题解:典型的字典树的题目,但是如果之间动态建树,会超时,这里我们需要采用静态建树。 什么是动态建树,什么是静态建树,这里安利一个大佬的链接: http://www.cnblogs.com/George1994/p/原创 2017-08-03 09:35:40 · 150 阅读 · 0 评论 -
LeetCode 3Sum
题目链接:https://leetcode.com/problems/3sum/description/题解:用二分的思想去做,先对所有的数字进行排序。然后优先确定一个数字,在对其他的两个数字直接二分就行了。这里对于重复的情况,我们可以使用set直接避免。代码:class Solution {public: vector<vector<int>> threeSum(vector<int>&原创 2017-08-05 21:16:35 · 135 阅读 · 0 评论 -
SCU 4438
题目链接:http://acm.scu.edu.cn/soj/problem.action?id=4438题解:变形kmp代码:#include <cstdio>#include <cstring>#include <stack>#include <iostream>#include <algorithm>using namespace std;#define met(a,b) mems原创 2017-05-06 19:32:18 · 1568 阅读 · 0 评论 -
多重背包模版
普通的多重背包:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a,b) memset(a,b,sizeof(a))#define inf 0x3f3f3f3fconst int maxn = 5*1e4+10;int w原创 2017-05-06 10:07:36 · 143 阅读 · 0 评论 -
PKU Trick or Treat
题目链接:http://poj.org/problem?id=3873题解:给你n点的坐标,让你求出这些点到x轴上一点的最大值的最小值。让你输出这个点在x轴上的x的坐标,以及离这个点最远的点的距离。 本来以为是模拟退火,结果有人说是用三分做出来的。(今天好好学了一波三分)代码:#include <cmath>#include <cstdio>#include <cstring>#includ原创 2017-02-20 15:24:33 · 323 阅读 · 0 评论 -
数据结构——线段树
方便简写的头文件#define lchild rt << 1, l, m#define rchild rt << 1 | 1, m + 1, r节点数据向上更新1.区间求和:void push_up(int rt) { tree[rt] = tree[rt << 1] + tree[rt << 1 | 1];}2.区间取最大值:void push_up(int rt) { tre原创 2017-03-04 21:48:42 · 192 阅读 · 0 评论 -
字符串分割函数——C语言
函数定义:char * strtok ( char * str, const char * delimiters ); 参数说明:str即为要分解的字符串,delimiters为要分割的字符串。 返回值:从str的头部开始的一个个被分割的字串,没有分割的子串的时候,返回NULL。 具体网址: http://www.cplusplus.com/reference/cstring/strtok/原创 2017-03-18 19:58:14 · 727 阅读 · 0 评论 -
pku 2255
题目链接: http://poj.org/problem?id=2255题意: 已知二叉树的前序和中序,让你求后序。 二叉树递归模板题。 代码:#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define m原创 2017-03-19 09:40:39 · 175 阅读 · 0 评论 -
Kruskal 模板
今天打一道最小生成树的水题,但是自己犯了个错误(不该啊),看来是最近的题目打了太少了。模板:#include <bits/stdc++.h>using namespace std;#define met(a,b) memset(a,b,sizeof(a))#define inf 0x3f3f3f3ftypedef long long ll ;const ll maxn = 1e5+10;原创 2017-03-11 10:53:07 · 136 阅读 · 0 评论 -
CSU - 1804
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1804题解:用拓扑的思想去进行转移 ,值得注意的是,这里的单个cout一直恒定为1,多个的话,可以使用加法的组合定理。代码:#include <cstdio>#include <vector>#include <queue>#include <cstring>#include <原创 2017-04-03 20:40:33 · 221 阅读 · 0 评论 -
HUST 1563 - A Very Simple Problem
题目链接:http://acm.hust.edu.cn/problem/show/1563题解:使用的是坐标分解的方法。代码:#include <cstdio>#include <cmath>#include <cstring>#include <iostream>#include <algorithm>#define met(a,b) memset(a,b,sizeof(a))#def原创 2017-04-30 19:43:50 · 170 阅读 · 0 评论 -
51nod 1101 换零钱
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1101题解:一道完全背包的问题。代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a,b原创 2017-04-16 09:55:06 · 175 阅读 · 0 评论 -
ZOJ 8th Anniversary Contest Unrequited Love
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3310题解:一道比较水的dp,一开始没有想到用两次dp来解决成环的这个问题。 具体看代码。代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using n原创 2017-04-15 10:01:34 · 293 阅读 · 0 评论 -
fzu 2107 Hua Rong Dao
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2107题意:给你四个单位的物体,一个2*2的曹操,2*1的兵种,1*2的兵种,以及1*1的兵种,让你计算3*4,以及4*4的矩阵中,有且仅含有一个曹操,并且其他的随意放入,只要最终全部放满的总的次数。 一共只有4组案例,其实可以手动算答案(只要你不出错,真的!!!)代码:#include <cmath>#in原创 2017-04-04 20:37:05 · 280 阅读 · 0 评论 -
01背包问题
01背包的具体的原理(推荐dd大牛的《背包九讲》) 例题:HDU 2602 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2602 题解: 题目大意: 给你N个物品,一个容量为M的背包。并且给出你N个物品的价值,以及他们的容量,让你求出不超过背包容量的条件下最大的价值。 一道非常典型的01背包的模板题目。 没有优化空间的代码:#inc原创 2017-03-07 20:50:28 · 140 阅读 · 0 评论 -
51NOD 1021 石子归并
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1021题解:区间dp。 区间dp的样子大致都差不多。模版: for(int i=1;i<=n;i++) dp[i][i]=0; // 初始化 for(int len=2;len<=n;len++) //原创 2017-04-16 10:41:37 · 342 阅读 · 0 评论 -
KMP 算法持续更新
1.HDU1711 KMP模版题 代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define inf 0x3f3f3f3#define met(a,b) memset(a,b,sizeof(a))const int maxn = 1e原创 2017-08-20 22:13:01 · 232 阅读 · 0 评论