作为一个CF灰名(丢脸啊,打比赛从绿名掉到了这个层次)的蒟蒻,我决定发篇文章记录一下我在洛谷上的第一道题目(A+B Problem),这道题,正常人一眼解决,但是为了凸显自己的大佬 蒟蒻身份,我要装逼,用各种毒瘤却又正确的算法来指点 迷惑一下后来人。

第一种解法:

#include <iostream>
#include <cstdio>using namespace std;int main() {int a,b;cin >> a >> b;cout << a+b;return 0;
} //相信我,这个代码是正解,没有任何问题。

第二种(Link-Cut Tree):

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstring>
using namespace std;
struct node
{int data,rev,sum;node *son[2],*pre;bool judge();bool isroot();void pushdown();void update();void setson(node *child,int lr);
}lct[233];
int top,a,b;
node *getnew(int x)
{node *now=lct+ ++top;now->data=x;now->pre=now->son[1]=now->son[0]=lct;now->sum=0;now->rev=0;return now;
}
bool node::judge(){return pre->son[1]==this;}
bool node::isroot()
{if(pre==lct)return true;return !(pre->son[1]==this||pre->son[0]==this);
}
void node::pushdown()
{if(this==lct||!rev)return;swap(son[0],son[1]);son[0]->rev^=1;son[1]->rev^=1;rev=0;
}
void node::update(){sum=son[1]->sum+son[0]->sum+data;}
void node::setson(node *child,int lr)
{this->pushdown();child->pre=this;son[lr]=child;this->update();
}
void rotate(node *now)
{node *father=now->pre,*grandfa=father->pre;if(!father->isroot()) grandfa->pushdown();father->pushdown();now->pushdown();int lr=now->judge();father->setson(now->son[lr^1],lr);if(father->isroot()) now->pre=grandfa;else grandfa->setson(now,father->judge());now->setson(father,lr^1);father->update();now->update();if(grandfa!=lct) grandfa->update();
}
void splay(node *now)
{if(now->isroot())return;for(;!now->isroot();rotate(now))if(!now->pre->isroot())now->judge()==now->pre->judge()?rotate(now->pre):rotate(now);
}
node *access(node *now)
{node *last=lct;for(;now!=lct;last=now,now=now->pre){splay(now);now->setson(last,1);}return last;
}
void changeroot(node *now)
{access(now)->rev^=1;splay(now);
}
void connect(node *x,node *y)
{changeroot(x);x->pre=y;access(x);
}
void cut(node *x,node *y)
{changeroot(x);access(y);splay(x);x->pushdown();x->son[1]=y->pre=lct;x->update();
}
int query(node *x,node *y)
{changeroot(x);node *now=access(y);return now->sum;
}
int main()
{scanf("%d%d",&a,&b);node *A=getnew(a);node *B=getnew(b);//连边 Linkconnect(A,B);//断边 Cutcut(A,B);//再连边orz Link againconnect(A,B);printf("%d\n",query(A,B)); return 0;
}

第三种(树状数组):

#include<iostream>
#include<cstring>
using namespace std;
int lowbit(int a)
{return a&(-a);
}
int main()
{int n=2,m=1;int ans[m+1];int a[n+1],c[n+1],s[n+1];int o=0;memset(c,0,sizeof(c));s[0]=0;for(int i=1;i<=n;i++){cin>>a[i];s[i]=s[i-1]+a[i];c[i]=s[i]-s[i-lowbit(i)];//树状数组创建前缀和优化}for(int i=1;i<=m;i++){int q=2;//if(q==1)//{(没有更改操作)//    int x,y;//    cin>>x>>y;//    int j=x;//    while(j<=n)//    {//        c[j]+=y;//        j+=lowbit(j);//    }//}//else{int x=1,y=2;//求a[1]+a[2]的和int s1=0,s2=0,p=x-1;while(p>0){s1+=c[p];p-=lowbit(p);//树状数组求和操作,用两个前缀和相减得到区间和}p=y;while(p>0){s2+=c[p];p-=lowbit(p);}    o++;ans[o]=s2-s1;//存储答案}}for(int i=1;i<=o;i++)cout<<ans[i]<<endl;//输出return 0;
}

第四种(Splay):

#include <bits/stdc++.h>
#define ll long long
#define N 100000
using namespace std;
int sz[N], rev[N], tag[N], sum[N], ch[N][2], fa[N], val[N];
int n, m, rt, x;
void push_up(int x){sz[x] = sz[ch[x][0]] + sz[ch[x][1]] + 1;sum[x] = sum[ch[x][1]] + sum[ch[x][0]] + val[x];
}
void push_down(int x){if(rev[x]){swap(ch[x][0], ch[x][1]);if(ch[x][1]) rev[ch[x][1]] ^= 1;if(ch[x][0]) rev[ch[x][0]] ^= 1;rev[x] = 0;}if(tag[x]){if(ch[x][1]) tag[ch[x][1]] += tag[x], sum[ch[x][1]] += tag[x];if(ch[x][0]) tag[ch[x][0]] += tag[x], sum[ch[x][0]] += tag[x];tag[x] = 0;}
}
void rotate(int x, int &k){int y = fa[x], z = fa[fa[x]];int kind = ch[y][1] == x;if(y == k) k = x;else ch[z][ch[z][1]==y] = x;fa[x] = z; fa[y] = x; fa[ch[x][!kind]] = y;ch[y][kind] = ch[x][!kind]; ch[x][!kind] = y;push_up(y); push_up(x);
}
void splay(int x, int &k){while(x != k){int y = fa[x], z = fa[fa[x]];if(y != k) if(ch[y][1] == x ^ ch[z][1] == y) rotate(x, k);else rotate(y, k);rotate(x, k);}
}
int kth(int x, int k){push_down(x);int r = sz[ch[x][0]]+1;if(k == r) return x;if(k < r) return kth(ch[x][0], k);else return kth(ch[x][1], k-r);
}
void split(int l, int r){int x = kth(rt, l), y = kth(rt, r+2);splay(x, rt); splay(y, ch[rt][1]);
}
void rever(int l, int r){split(l, r);rev[ch[ch[rt][1]][0]] ^= 1;
}
void add(int l, int r, int v){split(l, r);tag[ch[ch[rt][1]][0]] += v;val[ch[ch[rt][1]][0]] += v;push_up(ch[ch[rt][1]][0]);
}
int build(int l, int r, int f){if(l > r) return 0;if(l == r){fa[l] = f;sz[l] = 1;return l;}int mid = l + r >> 1;ch[mid][0] = build(l, mid-1, mid);ch[mid][1] = build(mid+1, r, mid);fa[mid] = f;push_up(mid);return mid;
}
int asksum(int l, int r){split(l, r);return sum[ch[ch[rt][1]][0]];
}
int main(){//总共两个数n = 2;rt = build(1, n+2, 0);//建树for(int i = 1; i <= n; i++){scanf("%d", &x);add(i, i, x);//区间加}rever(1, n);//区间翻转printf("%d\n", asksum(1, n));//区间求和return 0;
}

第五种(二分):

#include<cstdio>
using namespace std;
int a,b,c;int main(){long long l=-int(1e9)<<1,r=int(1e9)<<1;//左边界和右边界scanf("%d%d",&a,&b);while(r-l>1){c=(l+r)>>1;//二分的步骤啦if(c-b<a)l=c;else if(c-b>a)r=c;else return printf("%d\n",c),0;}if(l!=r)return printf("%d\n",r),0;}

第六种(Dijkstra+STL):

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <climits>
#include <algorithm>
#include <map>
#include <queue>
#include <vector>
#include <ctime>
#include <string>
#include <cstring>
using namespace std;
const int N=405;
struct Edge {int v,w;
};
vector<Edge> edge[N*N];
int n;
int dis[N*N];
bool vis[N*N];
struct cmp {bool operator()(int a,int b) {return dis[a]>dis[b];}
};
int Dijkstra(int start,int end)
{priority_queue<int,vector<int>,cmp> dijQue;memset(dis,-1,sizeof(dis));memset(vis,0,sizeof(vis));dijQue.push(start);dis[start]=0;while(!dijQue.empty()) {int u=dijQue.top();dijQue.pop();vis[u]=0;if(u==end)break;for(int i=0; i<edge[u].size(); i++) {int v=edge[u][i].v;if(dis[v]==-1 || dis[v]>dis[u]+edge[u][i].w) {dis[v]=dis[u]+edge[u][i].w;if(!vis[v]) {vis[v]=true;dijQue.push(v);}}}}return dis[end];
}
int main()
{int a,b;scanf("%d%d",&a,&b);Edge Qpush;Qpush.v=1;Qpush.w=a;edge[0].push_back(Qpush);Qpush.v=2;Qpush.w=b;edge[1].push_back(Qpush);printf("%d",Dijkstra(0,2));return 0;
}

第七种(SPFA):

#include<cstdio>
using namespace std;
int n,m,a,b,op,head[200009],next[200009],dis[200009],len[200009],v[200009],l,r,team[200009],pd[100009],u,v1,e;
int lt(int x,int y,int z)
{op++,v[op]=y;next[op]=head[x],head[x]=op,len[op]=z;
}
int SPFA(int s,int f)//SPFA……
{for(int i=1;i<=200009;i++){dis[i]=999999999;}l=0,r=1,team[1]=s,pd[s]=1,dis[s]=0;while(l!=r){l=(l+1)%90000,u=team[l],pd[u]=0,e=head[u];while(e!=0){v1=v[e];if(dis[v1]>dis[u]+len[e]){dis[v1]=dis[u]+len[e];if(!pd[v1]){r=(r+1)%90000,team[r]=v1,pd[v1]=1;}}e=next[e];} }return dis[f];
}
int main()
{scanf("%d%d",&a,&b);lt(1,2,a);lt(2,3,b);//1到2为a,2到3为b,1到3即为a+b……printf("%d",SPFA(1,3));return 0;
}

第八种(Floyd):

#include<iostream>
#include<cstring>
using namespace std;
long long n=3,a,b,dis[4][4];
int main()
{cin>>a>>b;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){dis[i][j]=2147483647;}}dis[1][2]=a,dis[2][3]=b;for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);//Floyd……}}}cout<<dis[1][3];
}

第九种(递归):

#include<iostream>
using namespace std;
long long a,b,c;
long long dg(long long a)
{if(a<=5){return a;}//防超时……return (dg(a/2)+dg(a-a/2));
}
int main()
{cin>>a>>b;c=dg(a)+dg(b);cout<<c;
}

第十种(高精度加法):

#include<iostream>
#include<cstring>
using namespace std;
int main()
{char a1[1000],b1[1000];int a[1000]={0},b[1000]={0},c[1000]={0},la,lb,lc,i,x;cin>>a1>>b1;la=strlen(a1);lb=strlen(b1);for(i=0;i<=la-1;i++){a[la-i]=a1[i]-48;}for(i=0;i<=lb-1;i++){b[lb-i]=b1[i]-48;}lc=1,x=0;while(lc<=la||lc<=lb){c[lc]=a[lc]+b[lc]+x,x=c[lc]/10,c[lc]%=10,lc++;}c[lc]=x;if(c[lc]==0){lc--;}for(i=lc;i>=1;i--){cout<<c[i];}cout<<endl;return 0;
}

第十一种(压位高精):

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#define p 8
#define carry 100000000
using namespace std;
const int Maxn=50001;
char s1[Maxn],s2[Maxn];
int a[Maxn],b[Maxn],ans[Maxn];
int change(char s[],int n[])
{  char temp[Maxn];   int len=strlen(s+1),cur=0;  while(len/p){  strncpy(temp,s+len-p+1,p);n[++cur]=atoi(temp); len-=p;}  if(len){memset(temp,0,sizeof(temp));  strncpy(temp,s+1,len);  n[++cur]=atoi(temp);   }  return cur;
}
int add(int a[],int b[],int c[],int l1,int l2)
{  int x=0,l3=max(l1,l2);  for(int i=1;i<=l3;i++){  c[i]=a[i]+b[i]+x;  x=c[i]/carry;c[i]%=carry;  }  while(x>0){c[++l3]=x%10;x/=10;}  return l3;
}
void print(int a[],int len)
{   printf("%d",a[len]);for(int i=len-1;i>=1;i--)printf("%0*d",p,a[i]);printf("\n");
}
int main()
{scanf("%s%s",s1+1,s2+1);int la=change(s1,a);int lb=change(s2,b);int len=add(a,b,ans,la,lb);    print(ans,len);
}

第十二种(宏定义):

#include <cstdio>
#include <iostream>
#define lol long long int
#define A using
#define Long namespace
#define time std
#define ago ;
#define Here int
#define was main
#define a ()
#define monkey {
#define called lol x,y;
#define Jack cin>>x>>y;
#define ak cout<<x+y;
#define ioi return 0;
#define Orz }
A Long time ago Here was a monkey called Jack ak ioi Orz

第十三种(字典树):

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
struct node{int str[26];int sum;
}s[1000];
char str1[100];
int t=0,tot=0,ss=0;
bool f1;
void built()
{t=0;for(int i=0;i<strlen(str1);i++){if(str1[i]=='-'){f1=true;continue;}if(!s[t].str[str1[i]-'0'])s[t].str[str1[i]-'0']=++tot;t=s[t].str[str1[i]-'0'];s[t].sum=str1[i]-'0';}
}
int query()
{int t=0;int s1=0;for(int i=0;i<strlen(str1);i++){if(str1[i]=='-') continue;if(!s[t].str[str1[i]-'0']) return s1;t=s[t].str[str1[i]-'0'];s1=s1*10+s[t].sum;}return s1;
}
int main()
{    for(int i=1;i<=2;i++){f1=false;scanf("%s",str1);built();if(f1)ss-=query();else ss+=query();}printf("%d",ss);return 0;
}

第十四种(LCA):

#include<cstdio>                                                  //头文件
#define NI 2
//从来不喜欢算log所以一般用常数 不知道算不算坏习惯 因为3个节点 所以log3(当然以2为底)上取整得2
struct edge
{int to,next,data;                                              //分别表示边的终点,下一条边的编号和边的权值
}e[30];                                                                     //邻接表,点少边少开30是为了浪啊
int v[10],d[10],lca[10][NI+1],f[10][NI+1],tot=0;      //数组开到10依然为了浪
//数组还解释嘛,v表示第一条边在邻接表中的编号,d是深度,lca[x][i]表示x向上跳2^i的节点,f[x][i]表示x向上跳2^i的距离和
void build(int x,int y,int z)                                      //建边
{e[++tot].to=y; e[tot].data=z; e[tot].next=v[x]; v[x]=tot;e[++tot].to=x; e[tot].data=z; e[tot].next=v[y]; v[y]=tot;
}
void dfs(int x)                                                        //递归建树
{for(int i=1;i<=NI;i++)                                   //懒,所以常数懒得优化f[x][i]=f[x][i-1]+f[lca[x][i-1]][i-1],lca[x][i]=lca[lca[x][i-1]][i-1];                   //建树的同时进行预处理for(int i=v[x];i;i=e[i].next)                              //遍历每个连接的点{int y=e[i].to;if(lca[x][0]==y) continue;lca[y][0]=x;                                       //小技巧:lca[x][0]即为x的父亲~~(向上跳2^0=1不就是父节点嘛)f[y][0]=e[i].data;d[y]=d[x]+1;dfs(y);                                            //再以这个节点为根建子树【这里真的用得到嘛??】}
}
int ask(int x,int y)                                             //询问,也是关键
{                                                                        if(d[x]<d[y]) {int t=x;x=y;y=t;}                  //把x搞成深的点int k=d[x]-d[y],ans=0;for(int i=0;i<=NI;i++)if(k&(1<<i))                                      //若能跳就把x跳一跳ans+=f[x][i],                              //更新信息x=lca[x][i];for(int i=NI;i>=0;i--)                                  //不知道能不能正着循环,好像倒着优,反正记得倒着就好了if(lca[x][i]!=lca[y][i])                            //如果x跳2^i和y跳2^j没跳到一起就让他们跳ans+=f[x][i]+f[y][i],x=lca[x][i],y=lca[y][i];return ans+f[x][0]+f[y][0];                           //跳到LCA上去(每步跳的时候都要更新信息,而且要在跳之前更新信息哦~)
}
int main()
{int a,b;scanf("%d%d",&a,&b);build(1,2,a);build(1,3,b);                                                       //分别建1 2、1 3之间的边dfs(1);                                                                //以1为根建树printf("%d",ask(2,3));                                         //求解2 3到它们的LCA的距离和并输出
}

第十五种(读入读出优化):

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int read(){int out=0,fh=1;char cc=getchar();if (cc=='-') fh=-1;while (cc>'9'||cc<'0') cc=getchar();while (cc>='0'&&cc<='9') {out=out*10+cc-'0';cc=getchar();}return out*fh;
}
void write(int x)
{  if (x==0){putchar('0');return;}int num = 0; char c[15];while(x) c[++num] = (x%10)+48, x /= 10;while(num) putchar(c[num--]);putchar(' ');
}
int main(){write(read()+read());return 0;
}

第十六种(线段树):

#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<iostream>
using namespace std;
struct node{int val,l,r;
};
node t[5];
int a[5],f[5];
int n,m;
void init(){for(int i=1;i<=2;i++){scanf("%d",&a[i]);}
}
void build(int l,int r,int node){//这是棵树t[node].l=l;t[node].r=r;t[node].val=0;if(l==r){f[l]=node;t[node].val=a[l];return;}int mid=(l+r)>>1;build(l,mid,node*2);build(mid+1,r,node*2+1);t[node].val=t[node*2].val+t[node*2+1].val;
}
void update(int node){if(node==1)return;int fa=node>>1;t[fa].val=t[fa*2].val+t[fa*2+1].val;update(fa);
}
int find(int l,int r,int node){if(t[node].l==l&&t[node].r==r){return t[node].val;}int sum=0;int lc=node*2;int rc=lc+1;if(t[lc].r>=l){if(t[lc].r>=r){sum+=find(l,r,lc);}else{sum+=find(l,t[lc].r,lc);}}if(t[rc].l<=r){if(t[rc].l<=l){sum+=find(l,r,rc);}else{sum+=find(t[rc].l,r,rc);}}return sum;
}
int main(){init();build(1,2,1);printf("%d",find(1,2,1));
}

第十七种(非递归):

#include <cstdio>
int m, n;
int main()
{scanf("%d%d", &m, &n);int u = m & n;int v = m ^ n;while (u) {int s = v;int t = u << 1;u = s & t;v = s ^ t;}printf("%d\n", v);
}

第十八种(人肉模拟):

#include <iostream>
#include <cmath>
using namespace std;
int fu=1,f=1,a,b,c=0;
int main()
{cin>>a>>b;if(a<0&&b>0)fu=2;if(a>0&&b<0)fu=3;if(a<0&&b<0)f=-1;if(a==0){cout<<b;return 0;}if(b==0){cout<<a;return 0;} a=abs(a);b=abs(b);if(a>b&&fu==3)f=1;if(b>a&&fu==3)f=-1;if(b>a&&fu==2)f=1;if(b<a&&fu==2)f=-1;if(fu==1)c=a+b;if(fu>1)c=max(a,b)-min(a,b);c*=f;cout<<c;return 0;
}

第十九种(二进制):

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{int a,b,s=0,s1=0,i=0,na=0,nb=0;cin>>a>>b;if(a<=0) na=1,a*=-1;while(a!=0){if(a%2!=0)s+=pow(2,a%2*i);a/=2;i++;}i=0;if(na==1) s*=-1;if(b<=0) nb=1,b*=-1;while(b!=0){if(b%2!=0)s1+=pow(2,b%2*i);b/=2;i++;}if(nb==1) s1*=-1;cout<<s+s1;;return 0;
}

第二十种(最小生成树):

#include <cstdio>
#include <algorithm>
#define INF 2140000000
using namespace std;
struct tree{int x,y,t;}a[10];
bool cmp(const tree&a,const tree&b){return a.t<b.t;}
int f[11],i,j,k,n,m,x,y,t,ans;
int root(int x){if (f[x]==x) return x;f[x]=root(f[x]);return f[x];}
int main(){for (i=1;i<=10;i++) f[i]=i;for (i=1;i<=2;i++){scanf("%d",&a[i].t);a[i].x=i+1;a[i].y=1;k++;}a[++k].x=1;a[k].y=3,a[k].t=INF;sort(a+1,a+1+k,cmp);for (i=1;i<=k;i++){//    printf("%d %d %d %d\n",k,a[i].x,a[i].y,a[i].t);x=root(a[i].x);y=root(a[i].y);if (x!=y) f[x]=y,ans+=a[i].t; }printf("%d\n",ans);
}

好了,题解不多,一共20种,希望对大家有帮助,如果有什么更好(更毒瘤)的算法, 欢迎私信联系。
qq:2983258786

信息学切题记录:永远的A+B Problem(洛谷P1001)相关推荐

  1. 洛谷——P1001 A+B Problem

    洛谷--P1001 A+B Problem 题目描述 输入两个整数 a, ba,b,输出它们的和(|a|,|b| \le {10}^9∣a∣,∣b∣≤109). 注意 Pascal 使用 intege ...

  2. python输出一个简单的田字格、用函数简化其代码_Solution Method: 洛谷 P1001 A+B Problem(Python 3 基本输入输出方法及代码简化)...

    本文从 洛谷 P1001 A+B Problem 为例,讲一讲 Python 3 在算法竞赛中的一些基本输入输出方法,以及一些利用 Python 3 特性的代码简化 以下为本文将涉及的内容: inpu ...

  3. 高精度——A+B Problem(洛谷 P1601)

    高精度算法指的是可以计算很大整数的高精度运算的方法 此题选自洛谷P1601 用数组来模拟非常长的整数,这意味着可以用数组的每一位记录那个数字上的每一位. 也就是说,可以用n位数组来记录一个n位数字. ...

  4. 洛谷P1001 A+B Problem

    题目链接:[洛谷]P1001 A+B Problem ·前言 第一篇博客(emmm-),选择了接触Code的第一道题<A + B Problem>. A+B Problem 作为语法基础第 ...

  5. A+B Problem(洛谷-P1001)

    题目描述 输入两个整数a,b,输出它们的和(|a|,|b|<=10^9). 注意 1.pascal使用integer会爆掉哦! 2.有负数哦! 3.c/c++的main函数必须是int类型,而且 ...

  6. 永远的“超级玛丽游戏”(洛谷)

    最近闲的蛋疼,来科普一道非常困难 简单的题目:超级玛丽游戏.不知道是哪个SB 大佬出的题目,打的我手都快废了,啊啊啊啊啊,下面,让我们来认真的学习一下这道题目. 先发个福利:超级玛丽 解法1: #in ...

  7. 洛谷刷题C语言:Physics Problem、PARKING、Trol、信息学竞赛、POT

    记录洛谷刷题C语言 「dWoi R1」Physics Problem 题目背景 面对白板上的物理题,王马陷入了沉思 -- 题目描述 有 nnn 个状态,编号为 111 到 nnn.这 nnn 个状态之 ...

  8. [洛谷]P2255 [USACO14JAN]记录奥林比克 (#贪心)

    题目描述 Being a fan of all cold-weather sports (especially those involving cows),Farmer John wants to r ...

  9. 记录奥林比克/课程录制 洛谷P2255 [USACO14JAN]

    题面在最下方. 本题贪心可解,我也不是很懂动规解法(双线程DP?) 先把各个课程(比赛)按结束时间从小到大排序,记录两个摄像机的结束时间. 然后枚举课程,如果某个课程的开始时间早于任何一台摄像机的结束 ...

最新文章

  1. mysql无法创建存储过程问题 ERROR 1307 (HY000)
  2. 关于标准规范的一些想法
  3. 20155330 《信息安全系统设计基础》课程总结
  4. python发邮件11002_【python发送zabbix报警邮件,SSL版本】mailman.py
  5. android管理员和普通用户登录,asp登录页如何区别管理员和普通用户,登录后跳转到不同页面?...
  6. 双指放大_便携超小手机显微镜1000倍放大!让你玩转微观世界,惊艳朋友圈
  7. python标准库 —— os模块
  8. linux笔记:shell编程-正则表达式
  9. 企业微信开发步骤 1.拿到企业的id,在我的企业,拖到最下面拿到企业id 2.拿到SECRET,这个secret只有先创建应用才会产生出来...
  10. @my_decorator
  11. 解决EXE文件无法打开的问题!
  12. Eclipse反编译插件 Enhanced Class Decompiler
  13. 【语义网】Jena框架简介及实战
  14. 深度学习之图片压缩技术
  15. Striped64 与 LongAdder
  16. MATLAB 制作抖音同款故障风海报
  17. 近视了也没关系,以后可以做手术修复,真的对吗?
  18. 产品设计中重要的用户体验_为什么好的设计对任何产品都重要?
  19. 12306高铁查询系统---设计报告
  20. 绘制曲线图origin画图

热门文章

  1. 201771010101 白玛次仁
  2. [Android开发] Xposed 插件开发之三: 编写广告去除插件
  3. 针式打印机连续打印多走纸_针织打印机以及更多开放源代码的艺术品
  4. 数学学习在计算机研究领域的作用和重要性
  5. 如何批量修改图片名称?
  6. 单片机中断系统(部分以AT89S52为例)
  7. 视频教程-2020年软考网络规划设计师案例分析软考视频教程-软考
  8. 如何将CVAT的docker镜像上传到华为云镜像中心SWR
  9. 用python解决经典羊车门问题
  10. 万物互联背景下的边缘计算安全需求与挑战