自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 LeetCode 3. 无重复字符的最长子串

https://leetcodechina.com/problems/longest-substring-without-repeating-characters/description/ 有点dp的意思 dp[i]:末尾为i位置的不含有重复字符的 最长子串 的长度 dp[i]=max(vis[s[i]]+1,i+1-dp[i-1])~~~i t代表i-1时不含有重复字符的 最长子串的最左...

2018-02-27 22:42:34 494

原创 LeetCode 2. 两数相加

https://leetcodechina.com/problems/add-two-numbers/description/ 链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(...

2018-02-27 22:38:20 768

原创 LeetCode 1. 两数之和

https://leetcodechina.com/problems/two-sum/description/ mapclass Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> ans; ma...

2018-02-27 22:37:05 714

原创 PAT 1011. Cut Rectangles (35)

暴力求解 矩形被切一刀分为 1.矩形+矩形 2.非平行四边形+非平行四边形 3.三角形+五边形 4.三角形+四边形 5.三角形+三角形#pragma warning(disable:4996)#include<iostream>#include<algorithm>#include<vector>using namespace std;int N, k, a, b;struc

2018-02-27 14:42:06 262

原创 PAT 1010. Lehmer Code (35)

map容器+树状数组#pragma warning(disable:4996)#include<iostream>#include<algorithm>#include<map>using namespace std;typedef int LL;const int maxn = 100005;//树状数组map<int, int> ID;LL A[maxn], N, ans[ma

2018-02-27 13:06:48 294

原创 PAT 1009. Triple Inversions (35)

树状数组 A[0]数组用来求大于k的个数 A[1]数组用来求大于x的二维逆序对个数 没遍历一个数x,ans都加上到当前位置前方大于x的二维逆序对个数#pragma warning(disable:4996)#include<iostream>using namespace std;typedef long long LL;const int maxn = 100005;//树状数组

2018-02-27 12:47:35 126

原创 PAT 1008. Airline Routes (35)

用tarjan把所有的环都指向各自环中的最先访问的节点 题目询问即问两个点是否在同一个环中#pragma warning(disable:4996)#include<iostream>#include<vector>#define min(x,y) (x<y? x:y)using namespace std;const int maxn = 10005;int Vt[maxn], R[

2018-02-27 12:17:51 224

原创 PAT 1007. Red-black Tree (35)

动态规划,转移方程已在代码中注释#pragma warning(disable:4996)#include<iostream>using namespace std;typedef long long LL;const int maxn = 505, mod = 1000000007;LL B[maxn][maxn], R[maxn][maxn], ans;int N;//R[h][i

2018-02-27 10:13:40 369

原创 PAT 1006. Tree Traversals - Hard Version (35)

参考博客:http://blog.csdn.net/guojiaqi007/article/details/59155604 暴力穷举root在中序的位置,递归建树#pragma warning(disable:4996)#include<iostream>#include<string>#include<algorithm>#include<queue>using namespace

2018-02-26 14:46:42 1245

原创 PAT 1004. To Buy or Not to Buy - Hard Version (35)

先判断Yes/No,然后暴力深搜,要注意遍历时先遍历选中此字符串的情况,再不选中,否则最后两个会超时#pragma warning(disable:4996)#include<string>#include<iostream>#include<cstring>using namespace std;int ID(char x) { if (x >= '0' && x <= '9')

2018-02-24 18:30:52 220

原创 PAT 1003. Universal Travel Sites (35)

最大流问题#pragma warning(disable:4996)#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;#include&lt;queue&gt;#include&lt;vector&gt;#include&lt;string&gt;#include&lt;map&gt;

2018-02-24 16:42:12 873

原创 PAT 1002. Business (35)

动态规划dp[i][j]代表j样东西时,到i天可得最大利润,路径压缩#include<iostream>#include<algorithm>#include<vector>using namespace std;#pragma warning(disable:4996)int N;const int maxn = 999;struct node { int P, L, D;

2018-02-22 16:32:19 258

原创 PAT 1013. Image Segmentation (35)

注意D是大于任意一个H,而非两个H 把边从小到大排序,判断理由代码注释#include<iostream>#include<algorithm>#include<vector>using namespace std;#pragma warning(disable:4996)int fa[1005], Nv, Ne, A, B, C, maxedge[1005], num[1005];d

2018-02-22 14:08:26 1135

原创 PAT 1012. Greedy Snake (35)

暴力出#include<iostream>#include<cstring>#pragma warning(disable:4996)using namespace std;int N, K, a, b;const int inf = 0x3f3f3f3f;int dr[4] = { 0,0,1,-1 };int dl[4] = { 1,-1,0,0 };int T[20][20];

2018-02-21 21:58:01 280

原创 PAT 1014. Circles of Friends (35)

并查集求圈的个数,bfs求最大距离#include<iostream>#include<algorithm>#include<queue>#include<vector>#pragma warning(disable:4996)using namespace std;const int inf = 0x3f3f3f3f;int P[1005];//祖先int findroot(int

2018-02-19 15:53:51 275

原创 PAT 1015. Letter-moving Game (35)

动态规划#include<string>#include<iostream>#include<algorithm>using namespace std;int dp[1005][1005];int main() { string S, T; cin >> S >> T; int L = S.size(),_max=-1; for (int i = 1; i

2018-02-19 14:14:50 290

原创 PAT 1019. Separate the Animals (35)

参考博客 https://www.wxzuir.moe/pat-%E9%A1%B6%E7%BA%A71019-separate-the-animals-%E9%A2%98%E8%A7%A3/主要就是状态可以用long long 保存,这样才不超时,开始用set表示状态中有两个点超时#include<iostream>#include<cstring>#include<queue>#inc

2018-02-18 21:58:58 636

原创 PAT 1020. Delete At Most Two Characters (35)

动态规划 删去一个字符的话,dp[i][1] = s[i] == s[i - 1] ? dp[i - 1][1] : dp[i - 1][0] + dp[i - 1][1]; 删去两个字符的时候,分三种情况讨论,分析dp[i][2]的s[i]、s[i-1]、s[i-2]的字符abc是abb、bab、abc的那一类模式 Pabb:Pab删1【s[i]删除】+Pab删2【s[i]不删除】-重复加的

2018-02-16 15:17:52 441

原创 PAT 1021. Safe Fruit (35)

用到了最大独立集的算法#include<iostream>#include<map>#include<algorithm>#include<vector>using namespace std;const int SIZE = 105;int mat[SIZE][SIZE]; /*图矩阵*/int dp[SIZE],P[SIZE];int mx,N,M,a,b,ans_sum;i

2018-02-15 18:26:01 1260

原创 图 欧拉回路

欧拉道路:即一笔画,从图的一个结点出发走出一条道路,每条边恰好经过一次 欧拉回路:从任意点出发,最终回到该点的欧拉道路 1.前提:忽略边的方向后,图是连通的【dfs、bfs、并查集】 2.条件: 有向图:最多只有两个点的入度不等于出度,且相差的绝对值是1 无向图:最多只有两个点的度是奇数 3.若有特殊点,则特殊的点为起点,若无任意点都可为起点 寻找路径方法:DFS构造一般的版本void

2018-02-14 15:40:40 393

原创 树堆Treap、伸展树Splay Tree

//Treap树堆struct Treap { struct Node { Node *ch[2]; int prio, val; int cmp(int x) { if (x == val) return -1; return val &lt; x; } //...

2018-02-12 15:29:50 341

原创 后缀数组

#include&lt;iostream&gt;#include&lt;string&gt;using namespace std;const int maxn = 1048576+10;const int maxm = 127;string s;int sa[maxn], rak[maxn], heigh[maxn], vis[maxm], second[maxn], n, N;v...

2018-02-11 16:59:10 166

原创 BigInteger大整数类的加、减、乘、输入、输出

#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;string&gt;#define max(x,y) (x&gt;y? x:y)using namespace std;const int BASE = 1e4;const int WIDTH = 4;#pragma warning(disable:4996)stru...

2018-02-10 18:28:30 3829 1

原创 串算法1 Trie+KMP+Aho-Corasick自动机(AC自动机)

#include&amp;lt;iostream&amp;gt;#include&amp;lt;string&amp;gt;#include&amp;lt;queue&amp;gt;#define cti(x) (x-'a')#define itc(x) (x+'a')using namespace std;const int maxn = 1005;const int maxsz = 1005;const int sigma_...

2018-02-10 11:48:46 254

原创 线段树

#include&lt;iostream&gt;using namespace std;const int maxn = 100005;const int inf = 0x3f3f3f3f;//线段树#define lc(o) (o&lt;&lt;1)#define rc(o) (o&lt;&lt;1|1)#define num(L,R) (R-L+1)#define max(a,...

2018-02-09 15:25:21 123

原创 树状数组、RMQ

树状数组#include&lt;iostream&gt;using namespace std;const int maxn = 1e5 + 5;//树状数组int A[maxn] = {};int lowbit(int n) { return n &amp; -n;}int Get_sum(int index) {//1~index的和 int sum = 0;...

2018-02-08 20:46:02 258

原创 最大流 增广路算法+最小费用最大流

cap>flow代表连通,cap==flow代表不连通 最大流 不停的寻找s连通至t的路径,更新..直到找不到路径 注:p[u] ^ 1和p[u]互为方向边#include#include#include#include#includeusing namespace std;const int maxn = 1005;const int inf = 0x3f3f3f3f;

2018-02-07 20:37:17 587

原创 最短路径 Dijkstra+priority_queue优化+bellman_ford+Floyd

#include#include#include#include#includeusing namespace std;const int maxn = 1005;const int inf = 0x3f3f3f3f;struct HeapNode { int d, u; HeapNode() = default; HeapNode(int a, int b

2018-02-07 19:31:04 292

原创 计数_欧拉 phi 函数

int eluer_phi(int n) { int m = (int)sqrt(n + 0.5); int ans = n; for (int i = 2; i <= m; ++i) if (n%i == 0) { ans = ans / i * (i - 1); while (n%i == 0) n /=

2018-02-07 13:03:46 433

原创 欧几里德、扩展欧几里德、乘法逆

int gcd(int a, int b) {//最大公约数 return b ? gcd(b, a%b) : a;}int lcm(int a, int b) {//最小公倍数 return a / gcd(a, b)*b;}//扩展欧几里德算法,求ax+by=gcd(a,b)=g一组解//设a%b=r=a-[a/b]b-->g=bx1+ry1=ay1+b(x1-[a/

2018-02-06 20:37:40 243

原创 暴力求解摘

下一个序列next_permutation 123下一个是132…#include#include#includeusing namespace std;int main() { string s; cin >> s; do { cout << s<<endl; } while (next_permutation(s.begin()

2018-02-05 16:39:17 149

原创 PAT 1018. Subnumbers (35)

https://www.patest.cn/contests/pat-t-practise/1018#include#includeusing namespace std;const int mod = 1e9 + 7;long long int A[100005];int main() { string s; cin >> s; int Len = s.si

2018-02-03 20:34:39 257

原创 算法竞赛入门经典第六章例题6-20 Ideal Path UVA - 1599

https://vjudge.net/problem/UVA-1599#include#include#include#include#pragma warning(disable:4996)using namespace std;const int maxn = 100006;struct node { int v, color; node() = defaul

2018-02-01 20:31:57 224

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除