1 给个选择

尚未进行身份认证

世界上只有10种人,一种懂二进制,一种不懂。

等级
TA的排名 4w+

把数字翻译成字符串

dp[i] 表示以第i位字符结尾的字符串 有多少种解码方式分为两种状态:1。第i位单独解码 那么dp[i]=dp[i-1];2。如果第i-1位和第i位可以组合 那么相对于前i-2位的字符串来说 就相当于加上了一个二位数此时dp[i]=dp[i]+dp[i-2];代码如下:class Solution {public: int getTranslationCount(s...

2020-02-25 17:41:26

五种最短路算思路及其代码实现【全】

刚看完Acwing上面y总的最短路视频,过来写一篇博客总结一下,也希望能帮助到别人先上一张图,刚用这个画图软件,可能画的比较拙劣根据图片我们可以知道,最短路问题分为单源最短路和多源最短路。单源最短路:只有一个出发点。求出来的应该是一个一维数组,保存该点到各点最短距离多源最短路:有多个出发点,那么求出来应该是一个二维数组,每行表示一个上面的一维数组。首先说一下多源最短路把。Floyd算是...

2020-02-24 09:30:52

单调栈【完整思路+代码】

看到这道题,首先我们会想到的肯定是暴力模拟。外层循环i是每个数,内层循环j是从i-1到最开头,找第一个比i小的数。这样做的话,如果数据是10的5次方,那么双重循环时间是非常可怕的。然后我们来分析一下上面这个思路,看看有哪里可以优化。因为找的肯定是比他小且最接近的数,那么如果第2个数比第一个数小,对于第三个数来说第一个数肯定是没用的(因为第二个距离第三个数更近),而且对于第四个第五个以至于第n个...

2020-02-23 10:24:20

数组模拟双链表【头插,尾插,中插,删除】

#include <iostream>#include <algorithm>using namespace std;const int N = 100010;int e[N], l[N], r[N], idx;void init(){ r[0] = 1, l[1] = 0; idx = 2;}void add(int k, i...

2020-02-23 09:55:03

数组模拟单链表【头插,中插,删除】

代码如下:#include<bits/stdc++.h>using namespace std;const int maxn=100010;int head,e[maxn],ne[maxn],idx,m;void add(int x){ e[idx]=x; ne[idx]=head; head=idx++;}void insert(int k,int x){...

2020-02-23 09:51:15

马的遍历【洛谷】

常规BFS,可能唯一不同的就是方向不只是常规的上下左右,不过也好控制方向,具体看下面代码把。#include<bits/stdc++.h>using namespace std;struct xy{ int x,y;}node,Top;const int dx[4]={1,-1,2,-2};const int dy[4]={1,-1,2,-2};int a[401]...

2020-02-21 09:22:02

约瑟夫问题【洛谷】

约瑟夫环有很多种解法,这里我提供一种数据结构,用队列来模拟。直接采用了STL里面队列的模板,看下面代码之前,跟我默念,STL大法好!!哈哈哈。大致思路:先把所有人都放进队列里面,然后从1开始出队,1出队再进队,这样1就从队首到了队尾,就这么一直循环,如果到了第m个就只出队不让他进队。这样队列里面人数越来越少,到最后就出完了,代码如下:#include<bits/stdc++.h>...

2020-02-21 09:13:43

队列安排【洛谷】

思路:这个就是一道模拟二叉树的题。反正我是这么理解的。首先建立一个结构体数组,包含左孩子,右孩子,以及一个变量用来标记后面他是否被删除了。然后就是插入的时候先判断p(根据题目),判断完p之后还要判断k的左右孩子。举个栗子:比如说i为2,k为3,p为1.那么现在2要往3的右边插队,你就首先要判断3原先右边有没有数,没有就直接插,有的话就是吧3的右孩子赋给2的右孩子,然后把3的右孩子变成2....

2020-02-21 09:02:01

二进制中1的个数【三种解法】

#include<bits/stdc++.h>using namespace std;int cnt(int b){ int res=0; while(b>0) { b=b&(b-1); res++; } return res;}int main(){ int n,b; cin>>n; for(int i=0;i<n...

2020-02-20 16:46:34

最长连续不重复子序列

#include<bits/stdc++.h>using namespace std;int n,a[100010],s[100010],res;int main(){ cin>>n; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0,j=0;i<n;i++) { s[a[i]]++; ...

2020-02-20 16:33:12

L2-014 列车调度 (25分)【17行极短代码】

#include<bits/stdc++.h>using namespace std;int n,x;set<int>s;int main(){ cin>>n>>x; s.insert(x); while(--n) { cin>>x; auto it=s.upper_bound(x); if(it!=s.e...

2020-02-20 09:45:59

L2-013 红色警报 (25分)

#include<bits/stdc++.h>using namespace std;const int maxn=5050;int n,m,k,a,b,c,cnt1,cnt2,f[maxn],vis[maxn];struct xy{int x,y;}node[maxn];int find(int x) {return x==f[x]?x:f[x]=find(f[x]);}...

2020-02-20 09:39:13

L2-011 玩转二叉树 (25分)

#include<bits/stdc++.h>using namespace std;int n,cnt;vector<int>in,pre,level(1000000,-1);void levelorder(int root,int start,int end,int index){ if(start>end) return ; int i=star...

2020-02-19 17:35:13

L2-008 最长对称子串 (25分)【20行极短代码】

#include<bits/stdc++.h>using namespace std;int main(){ string s; getline(cin,s); string cnt="#"; int len=s.size(); for(int i=0;i<len;i++) cnt+=s[i],cnt+='#'; len=cnt.size(); int an...

2020-02-19 17:19:26

L2-006 树的遍历 (25分)【极简代码】

#include<bits/stdc++.h>using namespace std;int n,cnt;vector<int>in,post,level(1000000,-1);void levelorder(int root,int start,int end,int index){ if(start>end) return ; int i=sta...

2020-02-19 15:49:54

L2-005 集合相似度 (25分)(极短代码 STL)

STL大法好!!!大致思路如下:建立一个外核vector内核set的二维数组。然后每个set就代表着一个集合。接收数据后,比如查集合A和集合B,首先让nc=0,nt=B的大小。然后遍历A中数在B中找(用到find函数)如果能找到说明是共有的就nc++,没找到说明在并集中让nt++;代码如下:#include<bits/stdc++.h>using namespace std;...

2020-02-19 15:34:55

最长上升子序列【线性DP】

#include<bits/stdc++.h>using namespace std;int n,m,f[1010][1010];char a[1010],b[1010];int main(){ cin>>n>>m; cin>>a+1>>b+1; for(int i=1;i<=n;i++) for(int j=...

2020-02-16 16:17:56

最长上升子序列【线性DP】

在这里插入代码片#include<bits/stdc++.h>using namespace std;const int maxn=10010;int n,a[maxn],f[maxn];int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++...

2020-02-16 16:12:44

数字三角形【线性DP】

#include<bits/stdc++.h>using namespace std;const int N=510,inf=1e9;int f[N][N],a[N][N],n;int main(){ cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) cin>>a[i][j];...

2020-02-16 16:07:48

P1449 后缀表达式【洛谷】

#include<bits/stdc++.h>using namespace std;stack<int>s;int t,x,y;char ch;int main(){ while(ch!='@') { ch=getchar(); switch(ch) { case '+':x=s.top();s.pop();y=s.top();s.po...

2020-02-14 16:53:34

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。