几百年前的东西

最近一个月左右整理的东西,基本上都是关于图论的。
最短距离
最小生成树
连通性
网络流
以及还有下面关于最短路的题目。
一些题目是来自与Vjudge上的,以下也给出了题目的链接。


/*
 *http://poj.org/problem?id=2387
 *Memory 4692
 *Time 79
*/
#include <iostream>
using namespace std;
const int MAXN = 1002;
const int INF = (1 << 30);
int Map[MAXN][MAXN];
int dis[MAXN];
bool vis[MAXN];
int Dijsktral(int s, int t, int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int T, N;
    int A, B, L;
    while(cin>>T>>N) {
        for(int i = 0; i <= N; ++i) {
            for(int j = 0; j <= N; ++j) {
                Map[i][j] = INF;
            }
        }
        for(int i = 0; i < T; ++i) {
            cin>>A>>B>>L;
            Map[A][B] = Map[A][B] < L? Map[A][B]: L;
            Map[B][A]= Map[A][B];
        }
        cout<<Dijsktral(N, 1, N)<<endl;
    }
    return 0;
}
int Dijsktral(int s, int t, int n)
{
    for(int i = 1; i <= n; ++i) {
        dis[i] = Map[s][i];
        vis[i] = false;
    }
    vis[s] = true, dis[s] = 0;
    for(int i = 1; i < n; ++i) {
        int Min = INF, index = s;
        for(int j = 1; j <= n; ++j) {
            if(!vis[j] && Min > dis[j]) Min = dis[j], index = j;
        }
        if(Min == INF) break;
        vis[index] = true;
        for(int j = 1; j <= n; ++j) {
            if(!vis[j] && dis[j] > dis[index] + Map[index][j]) {
                dis[j] = dis[index] + Map[index][j];
            }
        }
    }
    return dis[t];
}
/*
 *http://poj.org/problem?id=2253
 *Memory 596
 *Time 16
*/
#include <iostream>
#include <stdio.h>
#include <vector>
#include <math.h>
using namespace std;
const int MAXN = 201;
const int INF = (1<<30);
double Map[MAXN][MAXN];
double dis[MAXN];
bool vis[MAXN];
struct Stone{
    int x, y;
}s;
vector<struct Stone> stoneOfV;
double TDijkstra(int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, scenario = 1;
    while(cin>>n && n) {
        for(int i = 0; i < n; ++i) {
            cin>>s.x>>s.y;
            stoneOfV.push_back(s);
        }
        cout<<"Scenario #"<< scenario <<endl;
        printf("Frog Distance = %.3lf\n", TDijkstra(n));
        cout<<endl;
        scenario++;
        stoneOfV.clear();
    }
    return 0;
}
double TDijkstra(int n)
{
    int Size = stoneOfV.size();
    for(int i = 0; i < Size; ++i) {
        for(int j = 0; j < Size; ++j) {
            double x = stoneOfV[i].x - stoneOfV[j].x;
            double y = stoneOfV[i].y - stoneOfV[j].y;
            Map[i][j] = Map[j][i] = sqrt(x * x + y * y);
        }
    }
    for(int i = 0; i < Size; ++i) dis[i] = Map[0][i], vis[i] = false;
    dis[0] = 0, vis[0] = true;
    for(int i = 1; i < Size; ++i) {
        int index = 0;
        double Min = INF;
        for(int j = 0; j < Size; ++j)
            if(!vis[j] && Min > dis[j]) Min = dis[j], index = j;
        if(index == 0) break;
        vis[index] = true;
        for(int j = 0; j < Size; ++j) {
            if(!vis[j] && dis[index] >= Map[index][j]) {
                if(dis[index] < dis[j]) dis[j] = dis[index];
            } else if(!vis[j] && dis[index] < Map[index][j]) {
                if(Map[index][j] < dis[j]) dis[j] = Map[index][j];
            }
        }
    }
    return dis[1];
}
/*
 *http://poj.org/problem?id=3268
 *Memory 4692
 *Time 94
*/
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 1002;
const int INF = (1<<30);
int Map[MAXN][MAXN];
int disX[MAXN], dis[MAXN];
bool vis[MAXN];
void dijkstra(int x, int n, int *dis);
void Transform(int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n, m, x;
    int A, B;
    while(cin>>n>>m>>x) {
        for(int i = 0; i <= n; ++i)
            for(int j = 0; j <= n; ++j)
                Map[i][j] = INF;
        for(int i = 0; i < m; ++i) {
            cin>>A>>B;
            cin>>Map[A][B];
        }
        dijkstra(x, n, disX);
        Transform(n);
        dijkstra(x, n, dis);
        int Max = 0;
        for(int i = 1;i <= n; ++i) {
            disX[i] += dis[i];
            if(i != x) Max = Max > disX[i]? Max: disX[i];
        }
        cout<<Max<<endl;
    }
    return 0;
}
void dijkstra(int x, int n, int *dis)
{
    for(int i = 1; i <= n; ++i)
        dis[i] = Map[x][i], vis[i] = false;
    dis[x] = 0, vis[x] = true;
    for(int i = 1; i < n; ++i) {
        int Min = INF, index = x;
        for(int j = 1; j <= n; ++j) {
            if(!vis[j] && Min > dis[j]) Min = dis[j], index = j;
        }
        vis[index] = true;
        for(int j = 1; j <= n; ++j) {
            if(!vis[j] && dis[j] > dis[index] + Map[index][j])
                dis[j] = dis[index] + Map[index][j];
        }
    }
}
void Transform(int n)
{
    for(int i = 1; i <= n; ++i)
        for(int j = 1; j < i; ++j)
            swap(Map[i][j], Map[j][i]);
}
/*
 *http://poj.org/problem?id=1860
 *Memory 872
 *Time 110
*/
#include <iostream>
using namespace std;
const int MAXN = 102;
double MapR[MAXN][MAXN];
double MapC[MAXN][MAXN];
double dis[MAXN];
bool vis[MAXN];
void Init(int n);
void dijkstra(int s, int n, double v);
bool Floyd(int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, m, s;
    double v;
    int a, b;
    while(cin>>n>>m>>s>>v) {
        Init(n);
        for(int i = 0; i < m; ++i) {
            cin>>a>>b;
            cin>>MapR[a][b]>>MapC[a][b];
            cin>>MapR[b][a]>>MapC[b][a];
        }
        dijkstra(s, n, v);
        if(Floyd(n)) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}
void Init(int n)
{
    for(int i = 0; i <= n; ++i)
        for(int j = 0; j <= n; ++j)
            dis[i] = MapR[i][j] = MapC[i][j] = 0;
}
void dijkstra(int s, int n, double v)
{
    for(int i = 0; i <= n; ++i)
        dis[i] = (v - MapC[s][i]) * MapR[s][i], vis[i] = false;
    dis[s] = v, vis[s] = true;
    for(int i = 1; i < n; ++i) {
        double Max = 0;
        int index = s;
        for(int j = 1; j <= n; ++j) {
            if(!vis[j] && Max < dis[j]) Max = dis[j], index = j;    
        }
        vis[index] = true;
        for(int j = 1; j <= n; ++j) {
            double vk = (dis[index] - MapC[index][j]) * MapR[index][j];
            if(!vis[j] && dis[j] < vk) dis[j] = vk;
        }
    }
}
bool Floyd(int n)
{
    int k;
    bool flag = true;
    for(k = 1; flag && k <= n; ++k) {
        flag = false;
        for(int i = 1; i <= n; ++i)
            for(int j = 1; j <= n; ++j) {
                double v = (dis[i] - MapC[i][j]) * MapR[i][j];
                if(v > dis[j]) dis[j] = v,  flag = true;    
            }
    }
    return k > n;
}
/*
 *http://poj.org/problem?id=3660
 *Memory 688
 *Time 79
*/
#include <iostream>
using namespace std;
const int MAXN = 102;
bool Map[MAXN][MAXN];
void Floyd(int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, m;
    int a, b;
    while(cin>>n>>m) {
        for(int i = 0; i <= n; ++i)
            for(int j = 0; j <= n; ++j)
                Map[i][j] = false;
        for(int i = 0; i < m; ++i) {
            cin>>a>>b;
            Map[a][b] = true;
        }
        Floyd(n);
    }
    return 0;
}
void Floyd(int n)
{
    for(int k = 1; k <= n; ++k)
        for(int i = 1; i <= n; ++i)
            for(int j = 1; j <= n; ++j)
                if(Map[i][k] && Map[k][j]) Map[i][j] = true;
    int ans = 0;
    for(int j, i = 1; i <= n; ++i) {
        for(j = 1; j <= n; ++j) {
            if(i == j) continue;
            if(!Map[i][j] && !Map[j][i]) break;
        }
        if(j > n) ans++;
    }
    cout<<ans<<endl;
}
/*
 *http://poj.org/problem?id=1062
 *Memory 264kb
 *Time 32ms
*/
#include <iostream>
using namespace std;
const int MAXN = 102;
const int INF = (1<<30);
int Map[MAXN][MAXN];
int Lev[MAXN];
int dis[MAXN];
bool vis[MAXN];
void Init(int n);
int Dijkstra(int s, int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int m, n;
    int v, l, k, x;
    while(cin>>m>>n) {
        Init(n);
        for(int i = 1; i <= n; ++i) {
            cin>>v>>l>>k;
            Map[0][i] = v, Lev[i] = l;
            for(int j = 0; j < k ; ++j) {
                cin>>x>>v;
                Map[x][i] = v;
            }
        }
        int ans = INF;
        for(int i = 1; i <= n; ++i) {
            int Min = Lev[i];
            for(int j = 1; j <= n; ++j) {
                if(Min > Lev[j] || Lev[j] - Min > m) vis[j] = true;
                else vis[j] = false;
            }
            int tmp = Dijkstra(0, n);
            ans = ans < tmp? ans: tmp;
        }
        cout<<ans<<endl;
    }
    return 0;
}
void Init(int n)
{
    for(int i = 0; i <= n; ++i)
        for(int j = 0; j <= n; ++j)
            Map[i][j] = Map[j][i] = INF;
}
int Dijkstra(int s, int n)
{
    for(int i = 0; i <= n; ++i)
        dis[i] = Map[s][i];
    for(int i = 1; i < n; ++i) {
        int Min = INF, index = s;
        for(int j = 1; j <= n; ++j) {
            if(!vis[j] && Min > dis[j]) Min = dis[j], index = j;
        }
        vis[index] = true;
        for(int j = 1; j <= n; ++j) {
            if(!vis[j] && dis[j] > dis[index] + Map[index][j])
                dis[j] = dis[index] + Map[index][j];
        }
    }
    return dis[1];
}
/*
 *http://poj.org/problem?id=3169
*/
/*version one
 *Memory 412
 *Time 188
*/
#include <iostream>
using namespace std;
const int MAXE = 20004;
const int MAXN = 10002;
const int INF = (1<<30);
int head[MAXN];
bool vis[MAXN];
int cnt[MAXN];
int que[MAXN];
int dist[MAXN];

struct Edge{
    int to, v, next;
}edge[MAXE];
int tol;
void add(int a, int b, int v);
bool SPFA(int s, int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, ML, MD;
    int a, b, c;
    while(cin>>n>>ML>>MD) {
        tol = 0;
        for(int i = 0; i < MAXN; ++i) head[i] = -1;
        for(int i = 0; i < ML; ++i) {
            cin>>a>>b>>c;
            if(a > b) swap(a, b);
            add(a, b, c);
        }
        for(int i = 0; i < MD; ++i) {
            cin>>a>>b>>c;
            if(a < b) swap(a, b);
            add(a, b, -c);
        }
        if(!SPFA(1, n)) cout<<"-1"<<endl;
        else if(dist[n] == INF) cout<<"-2"<<endl;
        else cout<<dist[n]<<endl;
    }
    return 0;
}
void add(int a, int b, int v)
{
    edge[tol].to = b;
    edge[tol].v = v;
    edge[tol].next = head[a];
    head[a] = tol++;
}
bool SPFA(int s, int n)
{
    int front = 0, rear = 0;
    for(int v = 1; v <= n; ++v) {
        if(v == s) {
            que[rear++] = v;
            vis[v] = true;
            cnt[v] = 1;
            dist[v] = 0;
        }else {
            vis[v] = false;
            cnt[v] = 0;
            dist[v] = INF;
        }
    }
    while(front != rear) {
        int u = que[front++];
        vis[u] = false;
        if(front >= MAXN) front = 0;
        for(int i = head[u]; i != -1; i = edge[i].next) {
            int v = edge[i].to;
            if(dist[v] > dist[u] + edge[i].v) {
                dist[v] = dist[u] + edge[i].v;
                if(!vis[v]) {
                    vis[v] = true;
                    que[rear++] = v;
                    if(rear >= MAXN) rear = 0;
                    if(++cnt[v] > n) return false;
                }
            }
        }
    }
    return true;
}
/*version two
 *Memory 352
 *Time 157
*/
#include <iostream>
using namespace std;
const int MAXN = 10002;
const int MAXE = 20004;
const int INF = (1<<30);
int dist[MAXN];
int edge[MAXE][3];
int tol;
bool bellman(int s, int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, ML, MD;
    int a, b, c;
    while(cin>>n>>ML>>MD) {
        tol = 0;
        for(int i = 0; i < ML; ++i) {
            cin>>a>>b>>c;
            if(a > b) swap(a, b);
            edge[tol][0] = a;
            edge[tol][1] = b;
            edge[tol][2] = c;
            tol++;
        }
        for(int i = 0; i < MD; ++i) {
            cin>>a>>b>>c;
            if(a < b) swap(a, b);
            edge[tol][0] = a;
            edge[tol][1] = b;
            edge[tol][2] = -c;
            tol++;
        }
        if(!bellman(1, n)) cout<<"-1"<<endl;
        else if(dist[n] == INF) cout<<"-2"<<endl;
        else cout<<dist[n]<<endl;
    }
    return 0;
}
bool bellman(int s, int n)
{
    for(int i = 1; i <= n; ++i) dist[i] = INF;
    dist[s] = 0;
    for(int i = 1; i < n; ++i) {
        bool flag = false;
        for(int j = 0; j < tol; ++j) {
            int u = edge[j][0], v = edge[j][1];
            if(dist[v] > dist[u] + edge[j][2])
                dist[v] = dist[u] + edge[j][2], flag = true;
        }
        if(!flag) break;
    }
    for(int i = 0; i < tol; ++i)
        if(dist[edge[i][1]] > dist[edge[i][0]] + edge[i][2])
            return false;
    return true;
}
/*
 *http://poj.org/problem?id=3159
 *Memory 2428
 *Time 547
*/
#include <iostream>
#include <stdio.h>
using namespace std;
const int MAXN = 30003;
const int MAXE = 150009;
const int INF = (1<<30);
int head[MAXN];
bool vis[MAXN];
int sta[MAXN];
int dist[MAXN];
struct Edge{
    int to, v, next;
}edge[MAXE];
int tol;
void add(int a, int b, int v);
void SPFA(int s, int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, m;
    int a, b, c;
    while(~scanf("%d%d", &n, &m)) {
        tol = 0;
        for(int i = 0; i < MAXN; ++i) head[i] = -1;
        for(int i = 0; i < m; ++i) {
            scanf("%d%d%d", &a, &b, &c);
            //b-a<=c
            add(a, b, c);
            //big - small <= c, samll->big : c
        }
        SPFA(1, n);
        printf("%d\n", dist[n]);
    }
    return 0;
}
void add(int a, int b, int v)
{
    edge[tol].to = b;
    edge[tol].v = v;
    edge[tol].next = head[a];
    head[a] = tol++;
}
void SPFA(int s, int n)
{
    int top = 0;
    for(int v = 1; v <= n; ++v) {
        if(v == s) {
            sta[top++] = v;
            vis[v] = true;
            dist[v] = 0;
        } else {
            vis[v] = false;
            dist[v] = INF;
        }
    }
    while(top != 0) {
        int u = sta[--top];
        vis[u] = false;
        for(int i = head[u]; i != -1; i = edge[i].next) {
            int v = edge[i].to;
            if(dist[v] > dist[u] + edge[i].v) {
                dist[v] = dist[u] + edge[i].v;
                if(!vis[v]) {
                    vis[v] = true;
                    sta[top++] = v;
                }
            }
        }
    }
}
/*
 *http://acm.hdu.edu.cn/showproblem.php?pid=4370
 *Memory 1968
 *Time 592
*/
#include <iostream>
using namespace std;
const int MAXN = 303;
const int INF = (1<<30);
int C[MAXN][MAXN];
int dist[MAXN];
int que[MAXN];
bool vis[MAXN];
void SPFA(int s, int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    while(cin>>n) {
        for(int i = 1; i <= n; ++i)
            for(int j = 1; j <= n; ++j)
                cin>>C[i][j];
        SPFA(1, n);
        int ans = dist[n];
        int loopOfOne = dist[1];
        SPFA(n, n);
        int loop = dist[n] + loopOfOne;
        ans = ans < loop? ans: loop;
        cout<<ans<<endl;
    }
    return 0;
}
void SPFA(int s, int n)
{
    int front = 0, rear = 0;
    for(int v = 1; v <= n; ++v) {
        if(v == s) {
            dist[v] = INF;
            vis[v] = false;
        } else if(C[s][v] != INF) {
            dist[v] = C[s][v];
            que[rear++] = v;
            vis[v] = true;
        } else {
            dist[v] = INF;
            vis[v]= false;
        }
    }
    while(front != rear) {
        int u = que[front++];
        for(int v = 1; v <= n; ++v) {
            if(dist[v] > dist[u] + C[u][v]) {
                dist[v] = dist[u] + C[u][v];
                if(!vis[v]) {
                    vis[v] = true;
                    que[rear++] = v;
                    if(rear >= MAXN) rear = 0;
                }
            }
        }
        vis[u] = false;
        if(front >= MAXN) front = 0;
    }
}
/*
 *http://acm.hdu.edu.cn/showproblem.php?pid=4725
*/
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
const int MAXN = 100002;
const int INF = 1<<30;
struct qNode{
    int v, c;
    qNode(int _v = 0, int _c = 0):v(_v), c(_c){
    }
    bool operator < (const qNode &r) const{
        return c > r.c;
    }
};
struct Edge{
    int v, cost;
    Edge(int _v = 0, int _cost = 0):v(_v), cost(_cost){
    }
};
vector<struct Edge>E[MAXN];
bool vis[MAXN];
int dist[MAXN];
void addEdge(int u, int v, int w);
void Dijkstra(int s, int n);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int t, n, m, c;
    int u, v, w;
    cin>>t;
    for(int C = 1; C <= t; ++C) {
        cin>>n>>m>>c;
        for(int i = 1; i <= 3 * n; ++i) E[i].clear();
        for(int i = 1; i <= n; ++i) {
            cin>>u;
            addEdge(i, n + 2 * u - 1, 0);
            addEdge(n + 2 * u, i, 0);
        }
        for(int i = 1; i < n; ++i) {
            addEdge(n + 2*i - 1, n + 2*(i + 1), c);
            addEdge(n + 2*(i + 1) - 1, n + 2*i, c);
        }
        for(int i = 0; i < m; ++i) {
            cin>>u>>v>>w;
            addEdge(u, v, w);
            addEdge(v, u, w);
        }
        Dijkstra(3*n, 1);
        if(dist[n] == INF) dist[n] = -1;
        cout<<"Case #"<<C<<": "<<dist[n]<<endl;
    }
    return 0;
}
void addEdge(int u, int v, int w)
{
    E[u].push_back(Edge(v, w));
}
void Dijkstra(int s, int n)
{
    for(int i = 0; i <= n; ++i) dist[i] = INF, vis[i] = false;
    priority_queue<qNode> que;
    while(!que.empty()) que.pop();
    dist[s] = 0;
    que.push(qNode(s, 0));
    qNode tmp;
    while(!que.empty()) {
        tmp = que.top();
        que.top();
        int u = tmp.v;
        int Size = E[u].size();
        if(vis[u]) continue;
        vis[u] = true;
        for(int i = 0; i < Size; ++i) {
            int v = E[tmp.v][i].v;
            int cost = E[u][i].cost;
            if(!vis[v] && dist[v] > dist[u] + cost) {
                dist[v] = dist[u] + cost;
                que.push(qNode(v, dist[v]));
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
探索全栈端技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是端开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈端探索之旅,让每一个网页都成为技术与艺术的完美融合!
探索全栈端技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是端开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈端探索之旅,让每一个网页都成为技术与艺术的完美融合!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值