Educational Codeforces Round 160 (Div. 2) A~E

Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解 A ~ F 前四题过于简单() 后两题有点要命() 阅读详情

A.Rating Increase(思维)

题意:

给出一个仅包含数字的字符串sss,要求将该字符串按以下要求分成左右两部分a,ba,ba,b:

  • 两个数字均不包含前导000

  • 两个数字均大于000

  • b>ab > ab>a

如果有多个答案,输出任意一个均可。

分析:

既然题目要求b>ab > ab>a,且不能包含前导000,那么,将字符串中第一个数字以及之后的连续的000分配给aaa,剩余部分属于bbb,然后判断bbb是否大于aaa即可。

注:使用字符串比较时要注意不能直接使用>>>进行比较,否则比较的是两个字符串的字典序,而不是数字大小。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e5 + 5e2;

vector<int> V[30];

void solve() {
    string s;
    cin >> s;
    string a = "", b = "";
    int i, len = s.size();
    for (i = 0; i < len; i++) {
        if (i != 0 && s[i] != '0') break;
        a.push_back(s[i]);
    }
    for (; i < len; i++) {
        b.push_back(s[i]);
    }
    if (b.size() > a.size() || (b.size() == a.size() &&  a < b)) {
        cout << a << ' ' << b << endl;
    } else {
        cout << "-1" << endl;
    }
}

int main() {
    int Case;
    cin >> Case;
    while (Case--) {
        solve();
    }
    return 0;
}

B.Swap and Delete(思维)

题意:

给出仅包含010101的字符串sss,在若干次操作该字符串变为字符串ttt:

  1. 花费一个金币,并删除字符串中一个字符

  2. 免费操作,任意交换字符串中的字符

问,最少花费多少金币,能够使得最后的得到的字符串ttt与原字符串sss中等长的前缀字符串相同下标的元素全部不同。

分析:

既然操作2不需要花费金币,那么肯定要尽可能的使用操作二。

因此,先记录字符串sss中111和000的数量,然后从前往后判断,如果当前si=1s_i = 1si​=1,那么就把后面的000交换过来,并将记录的000数量减一,如果交换前发现此时后面已经没有000了,那么无论怎么交换,均无法使得这个位置上的元素与原字符串sss不同,因此所有后面的字符均需使用操作111删除,共消耗n−in - in−i个金币。

si=0s_i = 0si​=0的情况同理。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 2e5 + 5e2;


void solve() {
    string s;
    cin >> s;
    int n = s.size();
    int one = 0, zero = 0;
    int ans = n;
    for (int i = 0; i < n; i++) {
        if (s[i] == '0') {
            zero++;
        } else {
            one++;
        }
    }
    for (int i = 0; i < n; i++) {
        if (s[i] == '1') {
            if (zero == 0) {
                cout << n - i << endl;
                return;
            }
            zero--;
        } else {
            if (one == 0) {
                cout << n - i << endl;
                return;
            }
            one--;
        }
    }
    cout << 0 << endl;
}

int main() {
    int Case;
    cin >> Case;
    while (Case--) {
        solve();
    }
    return 0;
}

C.Game with Multiset(数学)

题意:

给出一个允许装下重复元素的集合,并有以下两种操作:

  1. ADD x:将2x2^{x}2x放入集合

  2. GET w:询问能否取出集合中的若干元素,满足这些元素的总和为www

分析:

对于操作111,使用数组cnt[i]cnt[i]cnt[i]表示存放的2i2^{i}2i的元素数量。

对于操作222,从大到小遍历集合中的元素,通过运算得到当前剩余数字还能减去多少2i2^{i}2i,并尽可能多的减去2i2^{i}2i。如果遍历结束后剩余数字为000表示可以组成,不为000表示不能组成。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 2e5 + 5e2;

int mul_set[35];

void add(int x) {
    mul_set[x]++;
}

void get(int x) {
    for (int i = 29; i >= 0; i--) {
        int cnt = x / (1 << i);//计算最多能减去多少个
        x -= min(cnt, mul_set[i]) * (1 << i);//注意减去的数量不能比集合中存的数量多
    }
    if (x == 0) cout << "Yes" << endl;
    else cout << "No" << endl;
}

int main() {
    int Case;
    cin >> Case;
    while (Case--) {
        int op, x;
        cin >> op >> x;
        if (op == 1) add(x);
        else get(x);
    }
    return 0;
}

D.Array Collapse(DP,前缀和)

题意:

给出一个序列,你可以对序列进行若干次以下操作:

  • 选择一段连续的子段,删除除了子段中最小元素外的所有元素

问:进行若干次操作后(可以不进行操作),能剩下多少种不同的序列?

分析:

考虑DP。

由于每次操作剩下的只有子段中最小的数字,那么可以将情况分为以下两种:

  • 一:当前数字p[j]p[j]p[j]为p[1]∼p[j]p[1] \sim p[j]p[1]∼p[j]中最小的,那么有两种方案:

      1. 只操作前面部分,将p[j]p[j]p[j]拼在前面所有方案后面
      1. 使用p[j]p[j]p[j]将前面所有数字消除,此时只剩下一种方案
  • 二:当前数字p[j]p[j]p[j]不是p[1]∼p[j]p[1] \sim p[j]p[1]∼p[j]中最小的,那么从右往左找到第一个小于p[j]p[j]p[j]的元素p[i]p[i]p[i],若想在最后的序列中保留p[j]p[j]p[j],那么能操作的区域只有[i+1,j][i + 1, j][i+1,j],此时的方案相当于在情况一的操作,但区域从[1,j][1, j][1,j]变为[i+1,j][i + 1, j][i+1,j]。

使用前缀和以及单调栈优化操作,即可在规定时间内完成本题。

代码:

#include <bits/stdc++.h>

using namespace std;
typedef long long LL;
const int N = 3e5 + 5e2;
const int MOD = 998244353;

int n, a[N], dp[N], pre[N];
stack<int> st;


void solve() {
    while (!st.empty()) st.pop();
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        dp[i] = pre[i] = 0;
    }
    int sum = 0;
    for (int i = 1; i <= n; i++) {
        while (!st.empty() && a[st.top()] > a[i]) {//维护一个递减的单调栈
            sum = (sum - dp[st.top()]+MOD) % MOD;
            st.pop();
        }
        if (st.empty()) {
            dp[i] = (pre[i - 1] + 1) % MOD;
        }
        else {
            dp[i] = ((pre[i - 1] - pre[st.top()] + MOD) % MOD + sum) % MOD;
        }
        st.push(i);
        pre[i] = (pre[i - 1] + dp[i]) % MOD;
        sum = (sum + dp[i]) % MOD;
    }
    cout << (sum + MOD) % MOD << endl;
}

int main() {
    int Case;
    cin >> Case;
    while (Case--) {
        solve();
    }
    return 0;
}

E.One-X(网络流)

题意:

给一个nnn行mmm列的矩阵aaa,矩阵的每个元素为000或111。

可以执行以下操作任意次数(可能为零次):选择矩阵中的一个元素并用000或111替换它。

给出两个数组AAA和BBB(长度分别为nnn和mmm)。执行上述操作后,矩阵应满足以下条件:

对于每个i∈[1,n]i∈[1,n]i∈[1,n],矩阵第iii行111的个数恰好为AiA_iAi​。
对于每个j∈[1,m]j∈[1,m]j∈[1,m],矩阵第jjj列111的个数恰好为BjB_jBj​。

计算满足条件的最少操作数。

分析:

本题为网络流中的最小费用最大流,设置一个源点,源点到达每一行的路径容量为AiA_iAi​,费用为000,相同的,源点到达每一列的路径容量为BiB_iBi​,费用为000。

用边代表矩阵中的元素,一条边的流量为111,若一个边是000(即这个元素是000),想要通过这个边流过去(即将这个元素变为111),需要111的费用,若不流过去,需要000的费用。若一个边是111(即这个元素是111),想要通过这个边流过去,需要000的费用,若不流过去(将其变为000),需要111的费用。本题为便于处理,实现网络流,将边是111的情况下,想要通过这个边需要的费用设置为−1-1−1,若不流过去需要的费用设置为000。

注意需要特判总流量,即∑Ai\sum\limits A_i∑Ai​和∑Bi\sum\limits B_i∑Bi​,若∑Ai≠∑Bi\sum\limits A_i \neq \sum\limits B_i∑Ai​=∑Bi​,则不可能实现,输出−1-1−1。

代码:

#include<bits/stdc++.h>

using namespace std;
const int MOD = 998244353;
const int MAXN = 1e5 + 5;
const int INF_MAX = 0x3f3f3f3f;
typedef long long LL;

struct edge {
    int v, w, c, ne;
} e[MAXN];

int cnt = 1;
int las[MAXN], cur[MAXN];
int dis[MAXN];
bool inq[MAXN], vis[MAXN];
int n, m, s, t, suma, sumb, sum;
int p, q, a[55][55], ls[55], rs[55];
queue<int> q1;

void add(int u, int v, int w, int c) {
    ++cnt;
    e[cnt].v = v;
    e[cnt].w = w;
    e[cnt].c = c;
    e[cnt].ne = las[u];
    las[u] = cnt;
    return;
}

void Add(int u, int v, int w, int c) {
    add(u, v, w, c);
    add(v, u, 0, -c);
}

bool SPFA() {
    for (int i = 1; i <= n; i++) {
        dis[i] = INF_MAX;
        inq[i] = 0;
    }
    dis[s] = 0;
    q1.push(s);
    while (!q1.empty()) {
        int u = q1.front();
        q1.pop();
        inq[u] = 0;
        for (int i = las[u]; i; i = e[i].ne) {
            int v = e[i].v;
            int val = e[i].w;
            int cost = e[i].c;
            if (val && dis[v] > dis[u] + cost) {
                dis[v] = dis[u] + cost;
                if (!inq[v]) {
                    inq[v] = true;
                    q1.push(v);
                }
            }
        }
    }
    return dis[t] < 1e8;
}

int dfs(int u, int flow) {
    vis[u] = true;
    if (u == t)
        return flow;
    int rmn = flow;
    for (int i = cur[u]; rmn && i; i = e[i].ne) {
        cur[u] = i;
        int v = e[i].v;
        int val = e[i].w;
        int cost = e[i].c;
        if (val && dis[v] == dis[u] + cost && !vis[v]) {
            int fl = dfs(v, min(val, rmn));
            rmn -= fl;
            e[i].w -= fl;
            e[i ^ 1].w += fl;
        }
    }
    vis[u] = false;
    return flow - rmn;
}

LL min_cost() {
    LL ans = 0;
    LL res = 0;
    while (SPFA()) {
        for (int i = 1; i <= n; i++) {
            cur[i] = las[i];
            vis[i] = 0;
        }
        LL flow = dfs(s, 1e9);
        ans += flow;
        res += flow * dis[t];
    }
    if (ans != suma) {
        cout << "-1" << endl;
        exit(0);
    }
    return res;
}

int main() {
    cin >> p >> q;
    s = ++n;
    t = ++n;
    for (int i = 1; i <= p; i++) {
        for (int j = 1; j <= q; j++) {
            cin >> a[i][j];
            sum += a[i][j];
        }
    }
    for (int i = 1; i <= p; i++) {
        int x;
        cin >> x;
        ls[i] = ++n;
        Add(s, ls[i], x, 0);
        suma += x;
    }
    for (int i = 1; i <= q; i++) {
        int x;
        cin >> x;
        rs[i] = ++n;
        Add(rs[i], t, x, 0);
        sumb += x;
    }
    if (suma != sumb) {
        cout << "-1" << endl;
        return 0;
    }
    for (int i = 1; i <= p; i++) {
        for (int j = 1; j <= q; j++) {
            if (a[i][j])
                Add(ls[i], rs[j], 1, -1);
            else
                Add(ls[i], rs[j], 1, 1);
        }
    }
    cout << sum + min_cost() << endl;
    return 0;
}

学习交流

以下为学习交流QQ群,群号: 546235402,每周题解完成后都会转发到群中,大家可以加群一起交流做题思路,分享做题技巧,欢迎大家的加入。

双有源桥变换器(DAB)TPS控制:从理论建模到Simulink/PSIM仿真实践 本文深入探讨了双有源桥变换器(DAB)的三重移相(TPS)控制技术,从理论建模到仿真实现。文章详细分析了TPS相比SPS和DPS的优势,阐述了其12种工况的划分逻辑与电流应力最优调制策略,并提供了在Simulink和PSIM平台搭建仿真模型的详细步骤与实战经验,帮助工程师掌握这一高效控制方法。 阅读详情

相关推荐

从0到1:提示工程架构师搭建Agentic AI系统的全流程实战手册

Agentic AI(自主智能体)是具备自主决策能力的大模型应用感知(Perceive):获取外部环境信息(比如代码仓库、用户输入、数据库数据);记忆(Memory):存储和检索历史信息(比如过去的审计记录、用户偏好);规划(Plan):将复杂任务拆解为可执行的步骤(比如“代码审计”拆成3步);行动(Act):调用工具或API完成具体操作(比如调用Git克隆仓库、调用Safety查漏洞);反馈(Feedback):根据结果调整策略(比如用户说“报告不够详细”,下次增加逻辑漏洞的分析深度)。

AI Agent Harness Engineering 1042

Educational Codeforces Round 160 (Rated for Div. 2) A - C题解

【代码】Educational Codeforces Round 160 (Rated for Div. 2) A - C题解。

m0_63322121的博客 1095

从零到一:用MSC Nastran Patran搞定悬臂翼颤振分析(附完整模型文件)

本文详细介绍了使用MSC Nastran和Patran进行悬臂翼颤振分析的完整流程,从几何建模、网格划分到模态分析和颤振求解。通过具体案例讲解关键参数设置和操作技巧,帮助工程师掌握气动弹性分析的核心方法,并附赠完整模型文件供实践参考。

weixin_42563415的博客 440

Educational Codeforces Round 171 div2(A~E)

每次 Monocarp 访问商店时,他都可以购买商店中出售的任意数量的可动人偶(当然,他不能购买尚未可供购买的可动人偶)。如果 Monocarp 在同一天购买至少两个人偶,他将获得相当于他购买的最贵人偶价格的折扣(换句话说,他可以免费获得他购买的人偶中最贵的那个)。为偶数的情况,一定是连续两个两个进行分配最优,对于奇数情况,我们可以枚举和列表外一起涂的单元格,剩下的单元格两个两个进行分配,统计最小值。,我还在想啥场次这么逆天把1500,1600的题放B的位置,幸好这种类型的dp题写的多,直接搞出来了。

Lazy_ChessPlayer的博客 1197

用PyCharm+Scrapy打造你的第一个爬虫:从安装到实战(附完整代码)

本文详细介绍了如何使用PyCharm和Scrapy框架从零开始构建高效网络爬虫。通过环境配置、项目创建、核心爬虫逻辑编写到数据处理与存储的完整流程,帮助Python开发者快速掌握爬虫开发技巧,并附有实战代码示例。特别适合想要学习Scrapy框架和提升爬虫技能的开发者。

weixin_29038345的博客 868

Python制作【大麦网】自动抢票程序

Python 的迅速崛起对整个行业来说都是极其有利的,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。如果你对Python感兴趣,想要学习pyhton,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓点击这里。

mate1357的博客 2万+

Educational Codeforces Round 178 Div. 2

Educational Codeforces Round 178 (Rated for Div. 2)(2104A-2104G)题解

LancyMorry的博客 927

《囚徒健身》 六艺,十式

文章目录《囚徒健身》 六艺,十式1、六艺,十式2、优缺点3、手臂和上半身 《囚徒健身》 六艺,十式 1、六艺,十式 1、俯卧撑: 2、深蹲: 3、举腿: 4、引体向上: 5、桥: 6、倒立撑: 十式就是每个动作分拆为十个不同的动作等级,进行训练 每一式里面,又根据做的组数和个数,分成三层,初级,中级,高级 依次循序渐进,每完成上一个动作的高级,则向下一个动作前进 2、优缺点 优点 : 六个动作都是很常见的,日常的动作,不太需要依赖什么器械,随时随地都可以练习,很方便 这些动作可以覆盖到全身大部分

简简单单Onlinezuozuo 4564

Educational Codeforces Round 104 Div. 2 A~E

Educational Codeforces Round 104 Div. 2 A B C D EA-ArenaCodeB - Cat CycleCodeC - Minimum TiesCodeD - Pythagorean TriplesCodeE - Cheap Dinner 传送门:https://codeforces.com/contest/1487 A-Arena 输出n−最小数的个数。输出n-最小数的个数。输出n−最小数的个数。 Code #include "bits/stdc++.h" us

狙击美佐的博客 1662

HX711重量传感器原理图设计,已量产(压力传感器)

最近调通了一款针对家用、物联网场景的重量传感套件,核心用了 HX711 这颗经典的称重 AD 芯片,还加了用户最需要的 “一键校准” 功能 —— 之前帮朋友做家用米桶余量报警时,用户总吐槽校准步骤太繁琐,这次的方案把操作简化到只按一个键,试下来体验好了不少。正好拆解下这套硬件的设计逻辑,供做同类产品的朋友参考。

不脱发的程序猿 368

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【寒假复健Day3】Educational Codeforces Round 161(div. 2)

F没写的Educational Codeforces Round 161 (Rated for Div. 2)题解

multiple_issue的博客 1534

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Educational Codeforces Round 168 (Div. 2) A~E

给定一个字符串a,你需要在中间(可以是开头或结尾)插入一个字符,使得满足ai​ai1​的i最多。

Code_Shark的博客 455

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Educational Codeforces Round 169 (Rated for Div. 2) (A~D)

手速场,半小时A出3道题,后面直接坐牢1个多小时······,D题看了半天,有思路却不会写,赛后看了一下大佬们的代码确实非常好,我自己是写不出来的,E题博弈论没怎么学,就不补了QVQ。

wh233z的博客 1605

Educational Codeforces Round 178 (Rated for Div. 2) A~E

基本思路:简化一下题意,就是让我们求后缀和,但唯一一点就是我们可以移动前i个数字中的最大值把第i个数字替换掉(它被左移了),所以这时只需要求出maxx[i]前缀最大值+s[i]后缀和,判断一下a[i]>maxx[i-1],若满足,则不移动,直接输出s[i],若不满足,则移动,输出s[i]-a[i]+maxx[i-1]基本思路:因为每一张牌都可以重复打出,所以说只要第一局有人胜利,那么他就可以重复打这张必胜牌,所以说我们只需要考虑第一局是谁获胜即可,很容易想到当最后一张和第一张都被Alice拿到,则他必胜。

2301_81505656的博客 555

Educational Codeforces Round 179 (Rated for Div. 2)

CF2111,简单手速场。

weixin_73725403的博客 1093

Educational Codeforces Round 180 (Rated for Div. 2) 题解

nike0good |Oier&ACMer | 熟能生巧 1136

Educational Codeforces Round 176 (Rated for Div. 2)

题目链接CF2075。

weixin_73725403的博客 996

Educational Codeforces Round 69 (Rated for Div. 2)

Educational Codeforces Round 69 (Rated for Div. 2) 欢迎参观!!==> 博客地址 <== 欢迎参观!! 暑假跑完步会宿舍Div. 2掉分局,开场三道排序题,D题卡到最后乱搞了思路居然AC了。 [你以为你CF过了4题].jpg 结果喜闻乐见的D题被hack掉了,队友同样死亡。 A. DIY Wooden Ladder 给你n个棍子,要求...

Chen_hsuan的博客 1308

Educational Codeforces Round 176 (Rated for Div. 2) ABCD

2025-03-17赛时只通过了 ABC , D看数据才补出来。。。写题解的水平似乎过于低下了一点,不过一般是为了给自己看的。。。但是也希望分享出来看能不能起到一点帮助或者得到大家的指点。虽然写东西的水平一直很低,但是写史花的时间也不少的。。。

fwdzh的博客 900

Educational Codeforces Round 175 (Rated for Div.2)

Edu175

djhws144的博客 1167

Educational Codeforces Round 164 (Rated for Div. 2)(A~E)

那么怎么求呢,我们按照血量从 1 开始枚举已经造成的伤害,每次都枚举当前这个血量的怪物的位置,实际上就是这个怪物在下一轮我们操作时会消失,假设当次操作没有任何怪物死亡,那么下次造成伤害时的代价一定与当次操作的代价是相同的,接下来考虑变化。如果当前位置两端的怪物都存活,那么代价加一,因为伤害要分开进行;详细解释一下怎么利用提到的“当前对整个序列进行一次操作(在上一次操作的基础上再造成一次伤害)需要耗费的代价是什么”在每次查询中计算贡献:现有序列一定的情况下,我们再对当前序列操作一次所产生的代价不受。

Fr1nGeLove的博客 839

Educational Codeforces Round 157 (Rated for Div. 2)

观察题意发现一个字符串有用的部分只有它的长度和总和,用一个数组来存储就好了。关键在于重复的问题了,我们发现这种做法只能与长度小于等于自身的字符串拼接。那么可以发现,一个字符串如果和长度不等于自身的字符串拼接是不会产生重复的。先找可以接在它右边的,由于要求长度是偶数,接在它后面的长度可以为。个数,分为两组,使得每组的相邻两数之差的绝对值相加之和最好。长度为偶数且字符串前一半的数位和等于后一半的数位和。要减去二,(自己和自己拼接的情况),最后加上。和长度相同的拼接则会有重复,这里可以用。,再计算数位和就好了。

2301_79248730的博客 1170

Educational Codeforces Round 181 (Rated for Div. 2)

表示所有线段都不发生的概率,这样可以快速求出其他线段都不发生的概率。让字母T在最前面就行,排序一下然后翻转字符串。的线段时乘上了其他线段都不发生的概率),然后。再乘上它发生的概率(表示它发生了),再加上。要去掉所有含个位数质数因子,其实就只有。,观察样例3也能发现,重复次数就是。要除以它不发生的概率(因为前面求。其他线段都不发生的概率),我用。需要加上(当前线段发生的概率。显然答案只有1或者2。对于1,那就是重复某对。有范围限制,显然是让。,所以简单容斥一下。

2401_85837579的博客 1137

Educational Codeforces Round 171 (Rated for Div. 2) - Codeforces

由于给出的数组是递增的,只需要考虑最大的相邻元素差值就好了。要注意奇数的时候需要提取一个出来,再去求最小的最大值。首先肯定要先处理好处理的部分,观察题目发现,像。的时候可以在这天购买,反之不能在这天购买。,那么这天上架的机器人一定不能免费,因为。,利用二分得出,然后就是求不完整段的和。用完了,那么就去找没有用过的最小的。所以可以先求出连续段的个数,总共有。,后面一定有更贵的机器人可以选择。,可以优先和离他最近的比他小的。的天数,再利用一个栈去维护。这样完整的片段的和是可以在。偶数的时候答案是固定的。

2301_79248730的博客 942

Educational Codeforces Round 170 (Rated for Div. 2)

由数据范围我们知道是肯定开不了这么大的,那么这里有一个经典的trick就是,可以把智力和体力表示在一维上,即 记智力和体力的总和为s,体力为x,智力为y,那么 y=s-x。思路:容易发现我们选牌只能选择连续的一段区间,同时右端点一定是单调的,所以我们使用双指针算法就好了。那么其实最终的答案就是Alice多拿主牌的方案数乘以Bob多拿副牌的方案数累加起来,接下来考虑怎么计算方案数。表示前i个位置,智力为j,体力为s-j的最大贡献。地操作,那么我们可以考虑差分。为第i种花色,多拿牌数的总数为j的方案数,那么。

Fr1nGeLove的博客 788
上一篇: AtCoder Beginner Contest 333 A~F
下一篇: Codeforces Round 915(Div.2) A~F
AC-Panda
博客等级 码龄5年 1736粉丝 191原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值