2023河南萌新联赛第(二)场:河南工业大学【部分题解:A、B、C、D、E、G、I、K】

A 自动收小麦机

题目地址:https://ac.nowcoder.com/acm/contest/61657/A

题目描述

在游戏MC(我的世界)中,如果小麦碰到水流就会掉落,但是mc中的水不能无限流动,在同一高度一桶水往一个方向流最多可以流动8格(算上本身一格)。

但是如果流动过程中遇到了阶梯下降了高度,则从下降的那一格开始重新计算距离,所以根据这个原理可以设计一种自动收小麦机,只需要从最高处倒一桶水就可以把所有小麦变成掉落物。

这次小小航也根据这个原理建造了一个自动收小麦机,但是小小航并没有精确的计算台阶的位置,当小小航建造完后发现机器不能一次收集所有小麦,现在已知小小航的收小麦机总长为 n 格 ,水流可以流 k 格,每一格上的小麦数量为ai。

共有q次询问(每次询问之间互不影响),每次询问一个整数x,在第x格放一桶水共可以收获多少小麦。(水只会从高的一端流向低的一端)

输入输出

第一行三个整数n、q、k
第二行n个数表示每格上小麦的数量
第三行n个数表示每格的高度,保证非递减
接下来q行,每行一个数x,表示在第x格放一桶水

数据范围

1<=n,q,k<=10^5
0<=小麦数量<=10^9
0<=高度<=10^9

样例

输入

4 1 2
1 1 4 5
2 2 2 3
4

输出

10
说明

在第4格放出水流后,水流会流向第3格,由于第3格高度比第4格低,所以水流继续向左流向第2格,因为平地水流只能流2格,所以到达第2格后水流停止,收获的小麦数量为1 + 4 + 5 = 10

思路

这道题补了一个条件,即水只能向左流,通过计算数据范围可知,每次询问只能是O(1)的时间复杂度,否则会超时,因此我们不能在每次询问时进行遍历查询,所以这道题需要我们预处理。
由于水只能向一个方向留,所以我们可以计算出在每个位置放水能流的最远位置,然后就可以实现O(1)时间复杂度的查询。

C++实现

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<unordered_map>

using namespace std;

#define IOS ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
#define ll long long
#define ull unsigned long long 
#define endl '\n'

typedef pair<int, int> pir;
const int mod = 1e9 + 10;
const int N = 1e5 + 10;

ll a[N], b[N], c[N], st[N];
int n, q, k;

int main(void){
    IOS
	
    cin >> n >> q >> k;
    for(int i = 1; i <= n; i ++ ) {
        cin >> a[i];
        a[i] += a[i - 1];
    }
    
    int idx = 0;
    b[0] = -1;
    c[0] = 1;
    for(int i = 1; i <= n; i ++ ) {
        cin >> b[i];
        if(b[i] != b[i - 1]) c[i] = idx = 1;
        else c[i] = idx;
        idx ++ ;
        
        if(c[i] < k) st[i] = st[i - 1];
        else st[i] = i - k + 1;
    }
    
    while(q -- ) {
        int x; cin >> x;
        cout << a[x] - a[st[x] - 1] << endl;
    }
	
    return 0;
}

B 异星突击

题目地址:https://ac.nowcoder.com/acm/contest/61657/B

题目描述

公元2348年,人类与外星帝国爆发了星际战争,但是人类的科技过于落后,在正面战场节节败退。现在ZH是人类派出的唯一一艘恒星级战舰的指挥官。ZH需要穿越星海突击敌军母星,但是外星帝国在路上布置了很多引力波屏障,这种屏障需要特制的攻城武器才能攻破。
恒星级战舰十分强大,可以挂载无限多的攻城武器,但是初始时没有挂载武器,战舰的初始结构值为 ,在突破的路上ZH会遇到一下几种事件:

  • 0 x 战舰获得了一门属性值为 的武器;
  • 1 x 战舰跃迁过程中损坏了一门属性值为 的武器,保证损坏的武器原来一定存在;
  • 2 x h 战舰遇到了一个屏障,屏障的结构值为 ,特征值为 ,每个武器对它造成的伤害为(武器属性值⊕屏障特征值)(武器属性值⊕屏障特征值)( 的意思是按位异或),输出 战舰中可以对屏障造成伤害 大于 的武器数量,如果没有可以一次击破屏障的武器,战舰会直接强行穿过屏障,但是会减少一点结构值。
    最后输出战舰剩余结构值。
    保证战舰结构值最终大于等于0。

输入输出

第一行输入两个整数n、hp
接下来n行,每行为一个事件
每次事件2输出一个整数为可用武器数量占一行
最后输出战舰剩余结构值

数据范围

1<=n<=10^5
0<=x,hp,h<=10^9

样例

输入

7 2
0 3
0 4
2 6 3
0 2
2 6 3
1 3
2 6 3

输出

1
2
1
2

思路

由题可知,我们需要一种数据结构,可以快速的查询所有数中异或某个数x后大于h的数的数量。
对于异或值的查询可以想到用trie来解决,记录一下每个节点下的数字数量。每次查询时 从高位向低位贪心查询,当h当前位为1时,我们只能选择和x异或值为1的位置继续向下搜索,当当前位h为0时所有与x异或值为1的数字都符和条件,然后继续搜索当前位不符合条件但以后可能符和条件的数,即可保证所有选择的数都大于h。

C++实现

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<unordered_map>

using namespace std;

#define IOS ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
#define ll long long
#define ull unsigned long long 
#define endl '\n'

typedef pair<int, int> pir;
const int mod = 1e9 + 10;
const int N = 1e5 + 10;

int tr[N * 32][2], cnt[N * 32], tot = 1;

void insert(int x, int num) {
    int p = 1;
    for(int i = 30; i >= 0; i -- ) {
        int u = (x >> i) & 1;
        if(!tr[p][u]) tr[p][u] = ++ tot;
        p = tr[p][u];
        cnt[p] += num;
    }
}

int find(int x, int h) {
    int p = 1, res = 0;
    for(int i = 30; i >= 0; i -- ) {
        int u = (x >> i) & 1;
        int v = (h >> i) & 1;
        if(!v) {//当前位h为0时所有与x异或值为1的数字都符和条件
            res += cnt[tr[p][u ^ 1]]; 异或后值为1的所有数数量
            p = tr[p][u];
        } else {//当h当前位为1时,我们只能选择和x异或值为1的位置继续向下搜索
            p = tr[p][u ^ 1];
        }
    }
    return res;
}

int main(void){
    IOS
	
    int n, hp; cin >> n >> hp;
    
    for(int i = 1; i <= n; i ++ ) {
        int op, x, h; cin >> op >> x;
        if(op == 0) {
            insert(x, 1);
        } else if(op == 1) {
            insert(x, -1);
        } else if(op == 2) {
            cin >> h;
            int ans = find(x, h);
            cout << ans << endl;
            if(ans == 0) hp -- ;
        }
    }
	cout << hp << endl;
    return 0;
}

C 悲伤的RT

题目地址:https://ac.nowcoder.com/acm/contest/61657/C

题目描述

RT在表白后被拒,悲伤的RT决定去塞尔达·王国之泪里折磨人马发泄。为此,RT用马车拉了n个树枝(第i个树枝的攻击力为ai ,1≤i≤n, 1≤ai≤1e9),准备用树枝与人马决斗。
善良的海利亚女神不想看到RT这样折磨人马和他自己,就用魔法给RT加了一个限制:他只能拿马车中前n/c个攻击力最小的树枝去和人马战斗(当c = 2, 树枝的攻击力为{1,2,3,4,5}时,RT可以拿走攻击力为1和2的树枝)。
但邪恶的加农多夫给了RT一个邪恶的魔法。RT可以把这n个树枝分成若干个连续的部分(假如a = {1,2,3,4},{{1,2},{3,4}}是一种合法的分割方式,但{{1,3},{2,4}}不是),装在不同的马车上,然后对这些马车施加魔法,这样RT可以从每个马车上取走该马车上前k/c个攻击力最小的树枝(k为马车上树枝的数量)。
现在请你帮RT算出他所能取出的树枝攻击力之和最大是多少?

输入输出

第一行两个正整数n和c。树枝的总数量和海利亚女神对RT的限制。
第二行n个正整数,n个树枝的攻击力
输出一个整数,RT所能取出的树枝攻击力之和最大值

数据范围

1<=n,c<=1e6
1<=ai<=1e9

样例

输入

5 2
3 1 5 7 9

输出

8

说明
RT可以将前三个树枝放在一个马车上,第四和第五个树枝放在另一个马车上。从第一个马车只能取出攻击力为1的树枝,第二个马车只能取出攻击力为7的树枝。取出树枝的攻击力之和最大为8。

思路

这道题需要求取出树枝的攻击力之和最大,但是我们先考虑一下如何使取出的树枝数量最多。容易发现,当将树枝分为n/c(n/c向上取整)时,能保证取出的树枝最多。
另外,题目本意是将树枝分为若干份,求每份的前n/c小的树枝之和,求树枝之和的最大值。

通过以上分析我们会发现这道题是一个线性dp,前i个树枝的取法都和它之前的取法有关。前i个树枝的取法dp[i]由前一个位置dp[i-1]和dp[i-c]+原数组中i-c+1~i中的最小值这两个数组成。
易得状态转移方程:dp[i] = max(dp[i - 1], dp[i - c] + min(a[i - c + 1~i])
而求区间最小值我们可以用单调队列或者ST算法。

C++实现

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<unordered_map>

using namespace std;

#define IOS ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
#define ll long long
#define ull unsigned long long 
#define endl '\n'

typedef pair<int, int> pir;
const int mod = 1e9 + 10;
const int N = 1e6 + 10;

ll a[N], dp[N];
deque<pir> dq;

int main(void){
    IOS
	
    int n, c; cin >> n >> c;
    for(int i = 1; i <= n; i ++ ) cin >> a[i];
    
    for(int i = 1; i <= n; i ++ ) {
        dp[i] = dp[i - 1];
        while(dq.size() && dq.front().second <= i - c) dq.pop_front();
        while(dq.size() && dq.back().first >= a[i]) dq.pop_back();
        dq.push_back({a[i], i});
        
        if(i >= c) {
            dp[i] = max(dp[i], dp[i - c] + dq.front().first);
        }
    }
    
    
    cout << dp[n] << endl;
	
    return 0;
}

D 固执的RT

题目地址:https://ac.nowcoder.com/acm/contest/61657/D

题目描述

RT你的帮助下取走了足够多的树枝,并用木制的马车拉着树枝去与人马决一死战。但他忘了一件事,人马是会喷火的。在战斗进行到一半时,卑鄙的人马用火焰将RT所有树枝烧光了。一般人可能已经放弃了,但固执的RT不愿意放弃。他决定再去收集树枝,和人马进行第二次战斗。
RT现在收集了n个树枝,第i个树枝的攻击力为ai。RT如果想打败人马,收集到的树枝攻击力之和至少为m。请你帮RT判断他现在收集到的树枝是否足够打败人马。
如果可以请输出“YES”, 否则输出“NO”(输出不带引号)。

输入输出

第一行两个整数n、m,分别为树枝数量和收集树枝攻击力之和最低要求
第二行n个整数,表示每个树枝的攻击力
若可以击败人马输出“YES”否则输出“NO”

数据范围

1<=n<+1e5
1<=m<=1e9
1<=ai<=1e9

样例

输入

5 9
3 6 8 7 4

输出

YES

思路

签到题,计算总和是否大于m。

C++实现

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<unordered_map>

using namespace std;

#define IOS ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
#define ll long long
#define ull unsigned long long 
#define endl '\n'

typedef pair<int, int> pir;
const int mod = 1e9 + 10;
const int N = 1e5 + 10;

int main(void){
    IOS
	
    int n, m; cin >> n >> m;
    ull sum = 0;
    while(n -- ) {
        int x; cin >> x;
        sum += x;
    }
    if(sum >= m) cout << "YES" << endl;
    else cout << "NO" << endl;
	
    return 0;
}

E 释怀的RT

题目地址:https://ac.nowcoder.com/acm/contest/61657/E

题目描述

又一次收集完树枝后,RT做了防火工作,这次RT成功的使用了树枝战胜了人马。经过了长时间的痛苦折磨,RT释怀了并决定去海拉卢达陆上狩猎岩石巨人,用岩石巨人的心岩照亮心形湖来祭奠他还未开始就结束的爱情。
假设心形湖由1
×
×n个方格构成,RT在每个方格上放了一个心岩,每个心岩有一个照亮范围x,代表着这块心岩可以照亮它左边x个方格和右边x个方格,但不能照亮心岩所在的方格(假如一个心岩在第5个方格,x=2,那么他只能照亮第3,4和第6,7个方格),现在请你求出心形湖有多少个方格被照亮。

输入输出

第一行输入一个正整数n,表示心形湖格子的个数
第二行n个整数,表示每个格子能照亮的范围
输出一行一个整数表示总共能照亮的格子数

数据范围

1<=n<=1e6
0<=xi<=1e9

样例

输入

5
0 1 0 0 10

输出

4

思路

这道题只需将第i个格子照亮区域标记即可,具体实现可以用前缀和。

C++实现

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<unordered_map>

using namespace std;

#define IOS ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
#define ll long long
#define ull unsigned long long 
#define endl '\n'

typedef pair<int, int> pir;
const int mod = 1e9 + 10;
const int N = 2e6 + 10;

int b[N], res;

int main(void){
    IOS
	
    int n; cin >> n;
    for(int i = 1; i <= n; i ++ ) {
        int x; cin >> x;
        if(x == 0) continue;
        int l = (i - x > 0) ? i - x : 1;
        int r = (i + x + 1 <= n) ? i + x + 1 : n + 1;
        b[l] ++ ; b[i] -- ;
        b[i + 1] ++; b[r] -- ;
    }
    
   for(int i = 1; i <= n; i ++ ) {
       b[i] += b[i - 1];
       if(b[i] > 0) res ++ ;
   }
    cout << res << endl;
	
    return 0;
}

G 爬山

题目地址:https://ac.nowcoder.com/acm/contest/61657/G

题目描述

暑假学校组织同学去景区爬山,但是当地的山峰分布十分奇特,所有的山峰都分布在一条东西走向的直线上(入口在东,出口在西),为了提高同学们的身体素质学校给同学们规定了一个“运动指标”,“运动指标“等于攀爬过程中上山高度与下山的高度的和。幸运的是景区给游客提供了缆车服务(缆车的行驶路线平行于地面),游客可以在景区入口选择任意一个高度乘坐缆车但是从此以后乘坐缆车的高度不能再发生改变,由于缆车不能穿过山体,所以当缆车的行驶高度低于当前山峰高度时缆车内游客需要在当前高度的东面山体下车并步行翻过山峰,当到达西面山体的缆车高度时游客需要继续乘坐缆车直到到达景区出口。例如景区三座山峰高度分别为100米、200米、150米,当选择缆车高度为120时,第一座山峰无需攀爬,第二座山峰需要攀爬80米,第三座山峰需要攀爬30米。
位置越高缆车上的风景越好,小明希望能看到最好风景但是同时需要满足学校要求的“运动指标”。

输入输出

第一行两个整数n、p。n表示山峰数量,p表示运动指标
第二行n个整数,表示每座山峰的高度
输出一个非负整数表示选择的缆车高度,如果无法选择,则输出-1 。

数据范围

1<=n<=1e5
1<=p<=1e9
1<=山峰高度<=1e9

样例

输入

3 230
100 200 300

输出

192

思路

每当我们选择的高度底于一座山,那么我们再让高度下降的时候爬山路径就要多加上高度与新的山的距离乘2,以此类推,直至找到最高符合要求高度。
实现过程中我们可以先排个序,然后求一下差分,最后从最高的山开始向前遍历即可。

C++实现

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<unordered_map>

using namespace std;

#define IOS ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
#define ll long long
#define ull unsigned long long 
#define endl '\n'

typedef pair<int, int> pir;
const int mod = 1e9 + 10;
const int N = 1e5 + 10;

ll a[N], b[N];
ll res, sum;

bool cmp(int n1, int n2) {
    return n1 > n2;
}

int main(void){
    IOS
	
    ll n, p; cin >> n >> p;
    for(int i = 1; i <= n; i ++ ) {
        cin >> a[i];
        sum += a[i];
    }
    if(p > sum * 2) {
        cout << -1 << endl; return 0;
    }
    
    sort(a + 1, a + n + 1, cmp);
    ll last = 0;
    for(int i = 1; i <= n; i ++ ) {
        b[i] = a[i] - a[i + 1];
        if(p - b[i] * i * 2 < 0) {
            last = (p % (i * 2) == 0) ? p/(i * 2) : p/(i * 2) + 1;
            res = a[i] - last;
            break;
        } else if(p - b[i] * i * 2 == 0) {
            res = a[i + 1]; break;
        } else {
            p -= b[i] * i * 2;
        }
    }
    
    cout << res << endl;
	
    return 0;
}

I 奶牛的寿命

题目地址:https://ac.nowcoder.com/acm/contest/61657/I

题目描述

上帝养了一头奶牛,但是有一天奶牛偷吃了上帝草药,上帝十分生气于是奶牛必须要去地狱接受惩罚,上帝给了奶牛一个长达n的刑期但是同样允许奶牛对刑期进行最多操作log2(n)+1次,每次操作可以交换刑期的二进制形式下任意的两个位置上的数字,但是不能改变原来的二进制数的位数(不能有前导零),奶牛自然希望可以尽可能多的减刑,请问出奶牛最多可以减少多少刑期?

输入输出

一个整数n表示奶牛当前刑期
输出奶牛最多可以减少的刑期

数据范围

n<2^31

样例

输入

14

输出

3

思路

将n以二进制展开,最高位的1不能变更,其余所有的1移动到最低位即可。

C++实现

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<unordered_map>
#include<bitset>

using namespace std;

#define IOS ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
#define ll long long
#define ull unsigned long long 
#define endl '\n'

typedef pair<int, int> pir;
const int mod = 1e9 + 10;
const int N = 1e5 + 10;

int main(void){
    IOS
	
    int n; cin >> n;
    int x1 = 0, x0 = 0, mi = 0, m = 0;
    for(int i = 31; i >= 0; i -- ) {
        if((n >> i) & 1 == 1) {
            x1 ++ ;
            if(mi == 0) mi = i;
        } else if(x1 != 0) {
            x0 ++ ;
        }
        n >> i; n << i;
    }
    x1 -- ;
    for(int i = 0; i < x1; i ++ ) {
        m += pow(2, i);
    }
    m += pow(2, mi);
    if(x0 == 0) cout << 0 << endl;
    else cout << n - m << endl;
	
    return 0;
}

K 卡特兰数

题目地址:https://ac.nowcoder.com/acm/contest/61657/K

题目描述

卡特兰数是组合数学中一个常出现于各种计数问题中的数列。以中国蒙古族数学家明安图和比利时的数学家欧仁·查理·卡特兰的名字来命名,其前几项为(从第0项开始):1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, …
卡特兰数公式:
在这里插入图片描述
给定一个整数 ∏ i + 1 n h ( i ) {\textstyle \prod_{i+1}^{n}} h(i) i+1nh(i)末尾有多少个连续的0.

输入输出

输入一个整数n
输出一个整数表示前n项卡特兰数之积末尾连续0的数量。

数据范围

1<=n<=5e6

样例

输入

8

输出

2

思路

虽然卡特兰数很妙,但是没学过卡特兰数也很好写,题目要求求出前n项卡特兰数的积的末尾0的个数。我们知道任何大于1的整数都可以由任意质数相加得到,而且只有2和5的乘积为0,且2和5都为质数。根据题目给出的卡特兰数的等式1,我们只需分别1求出前n项卡特兰数的分子和分母中2和5的个数,然后相减,最后2和5个数最小的数量即为0的个数。

C++实现

#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<unordered_map>

using namespace std;

#define IOS ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
#define ll long long
#define ull unsigned long long 
#define endl '\n'

typedef pair<int, int> pir;
const int mod = 1e9 + 10;
const int N = 5e6 + 10;

int c2[N], c5[N];

int func(int x, int t) {
    int res = 0;
    while(x % t == 0) {
        res ++ ;
        x /= t;
    }
    return res;
}

int main(void){
    IOS

    int n; cin >> n;
    for(int i = 1; i <= n; i ++ ) {
        c2[i] = c2[i - 1], c5[i] = c5[i - 1];
        c2[i] += func(4 * i - 2, 2);
        c5[i] += func(4 * i - 2, 5);

        c2[i] -= func(i + 1, 2);
        c5[i] -= func(i + 1, 5);
    }
    for(int i = 1; i <= n; i ++ ) {
        c2[i] += c2[i - 1];
        c5[i] += c5[i  -1];
    }
    cout << min(c2[n], c5[n]) << endl;

    return 0;
}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
根据引用的信息,本题的解题思路是建立平纹织物整体热导率与单根纤维热导率之间关系的数学模型。在附件2的实验样品参数条件下,测得了平纹织物的整体热导率。因此,我们需要考虑纤维传热和空隙间的气体传热。 首先,我们可以根据附件1中的信息,假设纤维表面温度为热源侧的温度。然后,考虑到对流换热的影响,我们需要确定织物表面的对流换热系数。根据引用的信息,假设织物表面的对流换热系数为50 W/(m2K)。 接下来,我们可以根据引用中的信息,考虑织物的基础结构参数对导热性能的影响。这些参数包括纤维弯曲角度、织物厚度、经密和纬密等。在本题中,假设任意单根纤维的垂直切面为圆形,织物中的每根纤维始终为一个有弯曲的圆柱。经纱和纬纱的弯曲角度范围为10° ≤ e ≤ 26.565°。 最后,根据附件2的实验样品参数条件下测得的平纹织物的整体热导率,我们可以建立平纹织物整体热导率与单根纤维热导率之间的关系的数学模型。这个模型将有助于我们进一步研究和预测不同织物结构参数对热导性能的影响。 综上所述,解题思路包括考虑纤维传热和空隙间的气体传热、确定织物表面的对流换热系数、考虑织物的基础结构参数对导热性能的影响,并建立平纹织物整体热导率与单根纤维热导率之间的关系的数学模型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值