Codeforces Round 951 (Div. 2) A~E

CKA-CN考试之路----16 所以结合本题,如果有多个文件中都存在同一个值,务必统一,或者修改最后一个次序的文件。中以不同的文件名来区分不同目的的配置会更有利于阅读.就像本题中的。但当有多个文件中存在同一个参数的不同值,最后会生效哪个值?中,但随着配置越来越多不怎么容易阅读.当多个文件同时存在一个参数,但值又不同。有时候我们会将所有内存参数全部写在。确认服务状态(2个红框中的内容) 阅读详情

A.Guess the Maximum(枚举)

题意:

爱丽丝和鲍勃想出了一个相当奇怪的游戏。他们有一个整数数组a1,a2,…,ana_1,a_2,\ldots,a_na1​,a2​,…,an​。爱丽丝选择了某个整数kkk并告诉了鲍勃,然后就发生了下面的事情:

  • 鲍勃选择两个整数iii和jjj(1≤i<j≤n1\le i\lt j\le n1≤i<j≤n),然后找出整数ai,ai+1,…,aja_i,a_{i+1},\ldots,a_jai​,ai+1​,…,aj​中的最大值;
  • 如果得到的最大值严格大于kkk,则爱丽丝获胜,否则鲍勃获胜。

请帮助爱丽丝找出保证她获胜的kkk的最大值。

分析:

为了最大值尽可能小,爱丽丝会选择所有区间最大值的最小值−1-1−1,那么选择的连续子串越短越优。注意到区间长度越大,这个区间的最大值是随着它不减的,所以如果鲍勃要让爱丽丝选的最小的话,区间长度一定是222。

枚举所有长度为222的连续子串,求出它们最大值的最小值,然后减去111输出即可。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int N = 1e6 + 10;

LL n, a[N];

void solve() {
    LL ans = 1e9;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        if (i > 1)
            ans = min(ans, max(a[i], a[i - 1]));
    }
    cout << ans - 1 << endl;
}

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

B.XOR Sequences(数学)

题意:

给你两个不同的非负整数xxx和yyy。考虑两个无穷序列a1,a2,a3,…a_1,a_2,a_3,\ldotsa1​,a2​,a3​,…和b1,b2,b3,…b_1,b_2,b_3,\ldotsb1​,b2​,b3​,…,其中

  • an=n⊕xa_n=n\oplus xan​=n⊕x
  • bn=n⊕yb_n=n\oplus ybn​=n⊕y

x⊕yx\oplus yx⊕y表示整数xxx和yyy的按位异或运算。

例如,有了x=6x=6x=6之后,序列aaa的前888个元素将如下所示:[7,4,5,2,3,0,1,14,…][7,4,5,2,3,0,1,14,\ldots][7,4,5,2,3,0,1,14,…]。请注意,元素的索引以111开始。

你的任务是找出序列aaa和bbb的最长公共子段†^\dagger†的长度。换句话说,求某个i,j≥1i,j\ge 1i,j≥1的最大整数mmm,使得ai=bj,ai+1=bj+1,…,ai+m−1=bj+m−1a_i=b_j,a_{i+1}=b_{j+1},\ldots,a_{i+m-1}=b_{j+m-1}ai​=bj​,ai+1​=bj+1​,…,ai+m−1​=bj+m−1​。

†^\dagger†序列ppp的一个子段是序列pl,pl+1,…,prp_l,p_{l+1},\ldots,p_rpl​,pl+1​,…,pr​,其中1≤l≤r1\le l\le r1≤l≤r。

分析:

考虑性质,发现对于给定的数a,ba,ba,b,设cntcntcnt表示其二进制下后kkk位(从第000位开始)全部相同的最大的kkk,则答案为2cnt2^{cnt}2cnt。

比如对于样例57、37:

  • 57:111001
  • 37:100101

其后的222位010101相等且第222位不相等,则答案为22=42^2=422=4。

所以我们直接扫描二进制位找cntcntcnt即可。

证明过程:

设KaTeX parse error: Undefined control sequence: \oplusx at position 2: a\̲o̲p̲l̲u̲s̲x̲=b\oplusy且a⊕(x−1)≠b⊕(y−1)a\oplus(x−1)\neq b\oplus(y−1)a⊕(x−1)=b⊕(y−1)。

则这样的xxx与yyy一定是后面cntcntcnt位全为000,其余位单独构造使其满足上述条件的数字。

那么根据定义,a,ba,ba,b的第cntcntcnt位一定不相等,这等价于如果加上大于等于2cnt2^{cnt}2cnt的数字则会发生进位,影响前面构造的结果。

所以加上的数字属于闭区间[0,2cnt−1][0,2^{cnt}−1][0,2cnt−1],一共2cnt2^{cnt}2cnt个,即长度为2cnt2^{cnt}2cnt。

证毕。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int MOD = 998244353;

void solve() {
    LL a, b, ans = 0;
    cin >> a >> b;
    for (int i = 0; i < 32; ++i) {
        if ((a >> i & 1) != (b >> i & 1))
            break;
        ans++;
    }
    ans = (1 << ans);
    cout << ans << endl;
}

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

C.Earning on Bets(思维)

题意:

有人提议让您玩一个游戏。在这个游戏中,有nnn种可能的结果,对于每一种结果,您都必须下注一定整数的硬币。如果第iii个结果是赢的,您将获得与您在该结果上的投注额相等的硬币,再乘以kik_iki​。请注意,nnn个结果中正好有一个结果是赢的。

你的任务是决定如何分配硬币,以便在任何一个结果中都能获胜。更正式地说,你对所有结果下注的硬币总数必须严格小于每个可能的获胜结果所得到的硬币数。

分析:

对于第iii个结果,每下注1ki\frac{1}{k_i}ki​1​个硬币就能期望获得111个硬币,所以我们可以得到:设S=∑i=1n1kiS=\sum^n_{i=1}\frac{1}{k_i}S=∑i=1n​ki​1​,当S≥1S≥1S≥1时,本题无解,当S<1S<1S<1时,每种结果下注1ki\frac{1}{k_i}ki​1​个硬币即可。但题目要求每种结果下注的硬币数必须是整数。所以要把每个1ki\frac{1}{k_i}ki​1​乘上lcm(k1,k2,…,kn)lcm(k_1,k_2,…,k_n)lcm(k1​,k2​,…,kn​)。由于ki≤20k_i≤20ki​≤20,所以lcm(k1,k2,…,kn)lcm(k_1,k_2,…,k_n)lcm(k1​,k2​,…,kn​)的最大值是lcm(5,7,9,11,13,16,17,19)=232792560lcm(5,7,9,11,13,16,17,19)=232792560lcm(5,7,9,11,13,16,17,19)=232792560。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int MOD = 998244353;
LL a[55];

void solve() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    if (n == 1) {
        cout << "1" << endl;
        return;
    }
    if (n >= 20) {
        cout << "-1" << endl;
        return;
    }
    LL LCM = a[1] * a[2] / gcd(a[1], a[2]);
    for (int i = 3; i <= n; i++) {
        LCM = LCM * a[i] / gcd(LCM, a[i]);
    }
    LL ans = 0;
    for (int i = 1; i <= n; i++) {
        ans += LCM / a[i];
    }
    if (ans >= LCM) {
        cout << "-1" << endl;
        return;
    }
    for (int i = 1; i <= n; i++) {
        cout << LCM / a[i] << " ";
    }
    cout << endl;
}

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

D.Fixing a Binary String(模拟)

题意:

给你一个长度为nnn的二进制字符串sss,由000和111组成。您可以执行以下操作一次:

  1. 选择一个整数ppp(1≤p≤n1\le p\le n1≤p≤n)。
  2. 反转子串s1s2…sps_1 s_2\ldots s_ps1​s2​…sp​。完成此步骤后,字符串s1s2…sns_1 s_2\ldots s_ns1​s2​…sn​将变为spsp−1…s1sp+1sp+2…sns_p s_{p-1}\ldots s_1 s_{p+1}s_{p+2}\ldots s_nsp​sp−1​…s1​sp+1​sp+2​…sn​。
  3. 然后,将字符串sss向左循环移动ppp次。这一步之后,初始字符串s1s2…sns_1s_2\ldots s_ns1​s2​…sn​将变成sp+1sp+2…snspsp−1…s1s_{p+1}s_{p+2}\ldots s_n s_p s_{p-1}\ldots s_1sp+1​sp+2​…sn​sp​sp−1​…s1​。

例如,如果用p=3p=3p=3对字符串110001100110110001100110110001100110进行操作,第二步操作后,字符串将变为011001100110,第三步操作后,字符串将变为001100110011。

如果满足两个条件,字符串sss就会被称为k−properk-properk−proper:

  • s1=s2=…=sks_1=s_2=\ldots=s_ks1​=s2​=…=sk​;
  • si+k≠sis_{i+k}\neq s_isi+k​=si​为任意iii(1≤i≤n−k1\le i\le n-k1≤i≤n−k).

例如,在k=3k=3k=3中,字符串000000000、111000111111000111111000111和111000111000111000是k−properk-properk−proper,而字符串000000000000000000、001100001100001100和111000011100001110000则不是。

给你一个整数kkk,它是nnn的整除。请找出一个整数ppp(1≤p≤n1\le p\le n1≤p≤n),使得在进行运算后,字符串sss变成kkk(或确定这是不可能的)。需要注意的是,如果字符串最初是k−properk-properk−proper,那么仍然需要对它进行一次操作。

分析:

按照原题中的方案按顺序判断前缀是否是合法k−properk-properk−proper串的前缀,直到当前前缀不合法或者判断到n+1n+1n+1停止。

如果判断到n+1n+1n+1,那么说明原串是k−properk-properk−proper串。选择p=np=np=n将一整个串翻转即可。

否则,找到一个删掉该前缀后满足后面的串存在至少有kkk个连续值的最长合法前缀进行操作,然后判断操作后的串是否为k−properk-properk−proper串即可。

因为如果操作后的串不为k−properk-properk−proper串,那么换一个位置操作就一定会使得该不合法前缀存在或者操作后的串前kkk个值不合法,所以这种情况下操作是唯一的。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int N = 1010100;
char s[N];
LL n, a[N], b[N], k;

bool finalcheck(LL x) {
    LL i, j = 0;
    for (i = x + 1; i <= n; i++) {
        j++;
        b[j] = a[i];
    }
    for (i = x; i >= 1; i--) {
        j++;
        b[j] = a[i];
    }
    for (i = 2; i <= k; i++) {
        if (b[i] != b[i - 1]) {
            return false;
        }
    }
    for (i = k + 1; i <= n; i++) {
        if (b[i] == b[i - k]) {
            return false;
        }
    }
    return true;
}

void solve() {
    LL lst = 1, t, pos;
    cin >> n >> k >> s + 1;
    for (int i = 1; i <= n; i++) {
        a[i] = s[i] - '0';
    }
    a[0] = -1;
    for (int i = n; i >= 1; i--) {
        if (a[i] != a[i - 1]) {
            break;
        }
    }
    for (int i = 2; i <= n; i++) {
        if (a[i] != a[i - 1]) {
            t = i - lst;
            pos = i - 1;
            lst = i;
            if (t != k) {
                if (t < k) {
                    if (finalcheck(pos)) {
                        cout << pos << endl;
                        return;
                    } else {
                        cout << "-1" << endl;
                        return;
                    }
                } else if (t <= k * 2) {
                    if (finalcheck(pos - k)) {
                        cout << pos - k << endl;
                        return;
                    } else {
                        cout << "-1" << endl;
                        return;
                    }
                } else {
                    cout << "-1" << endl;
                    return;
                }
            }
        }
    }
    if (finalcheck(n)) {
        cout << n << endl;
        return;
    } else {
        cout << "-1" << endl;
        return;
    }
}

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

E.Manhattan Triangle(数学)

题意:

两点(x1,y1)(x_1,y_1)(x1​,y1​)和(x2,y2)(x_2,y_2)(x2​,y2​)之间的曼哈顿距离定义为

∣x1−x2∣+∣y1−y2∣ |x_1-x_2|+|y_1-y_2| ∣x1​−x2​∣+∣y1​−y2​∣

我们把平面上每对曼哈顿距离相等的三点称为一个曼哈顿三角形。

给你一组成对的不同点和一个偶数整数ddd。你的任务是从给定的集合中找出由三个不同点组成的曼哈顿三角形,其中任意一对顶点之间的曼哈顿距离等于ddd。

分析:

观察发现,在每个曼哈顿三角形中都有两个点,使得∣x1−x2∣=∣y1−y2∣|x_1-x_2|=|y_1-y_2|∣x1​−x2​∣=∣y1​−y2​∣。

先用(x+y)(x+y)(x+y)的值来分配所有的点。

对于每个点(x,y)(x,y)(x,y)用lower_bound在相应集合中找到点(x+d/2,y−d/2)(x+d/2,y-d/2)(x+d/2,y−d/2)。然后我们必须找到第三个点:它可以在(x+y+d)(x+y+d)(x+y+d)或(x+y−d)(x+y-d)(x+y−d)对角线上。它们在xxx坐标上的边界分别是[x+d/2,x+d][x+d/2,x+d][x+d/2,x+d]和[x−d/2,x][x-d/2,x][x−d/2,x]同样使用lower_bound找到。

代码:

#include<bits/stdc++.h>

using namespace std;
const int MOD = 998244353;
const int MAXC = 1e5;
const int MAXD = 4e5 + 10;

set<pair<int, int>> diag[MAXD];

void solve() {
    int n, d;
    cin >> n >> d;
    vector<int> x(n), y(n);
    for (int i = 0; i < n; i++) {
        cin >> x[i] >> y[i];
        x[i] += MAXC;
        y[i] += MAXC;
    }
    bool found = false;
    {
        for (int i = 0; i < n; i++) {
            diag[x[i] + y[i]].insert({x[i], i});
        }
        for (int i = 0; i < n; i++) {
            auto it1 = diag[x[i] + y[i]].lower_bound({x[i] + d / 2, -1});
            if (it1 == diag[x[i] + y[i]].end() || it1->first != x[i] + d / 2)
                continue;
            if (x[i] + y[i] + d < MAXD) {
                auto it2 = diag[x[i] + y[i] + d].lower_bound({x[i] + d / 2, -1});
                if (it2 != diag[x[i] + y[i] + d].end() && it2->first <= it1->first + d / 2) {
                    cout << i + 1 << " " << it1->second + 1 << " " << it2->second + 1 << endl;
                    found = true;
                    break;
                }
            }
            if (x[i] + y[i] - d >= 0) {
                auto it2 = diag[x[i] + y[i] - d].lower_bound({x[i] - d / 2, -1});
                if (it2 != diag[x[i] + y[i] - d].end() && it2->first <= it1->first - d / 2) {
                    cout << i + 1 << " " << it1->second + 1 << " " << it2->second + 1 << endl;
                    found = true;
                    break;
                }
            }
        }
        for (int i = 0; i < n; i++) {
            diag[x[i] + y[i]].erase({x[i], i});
        }
    }
    if (!found) {
        for (int i = 0; i < n; i++) {
            y[i] -= 2 * MAXC;
            diag[x[i] - y[i]].insert({x[i], i});
        }
        for (int i = 0; i < n; i++) {
            auto it1 = diag[x[i] - y[i]].lower_bound({x[i] + d / 2, -1});
            if (it1 == diag[x[i] - y[i]].end() || it1->first != x[i] + d / 2)
                continue;
            if (x[i] - y[i] + d < MAXD) {
                auto it2 = diag[x[i] - y[i] + d].lower_bound({x[i] + d / 2, -1});
                if (it2 != diag[x[i] - y[i] + d].end() && it2->first <= it1->first + d / 2) {
                    cout << i + 1 << " " << it1->second + 1 << " " << it2->second + 1 << endl;
                    found = true;
                    break;
                }
            }
            if (x[i] - y[i] - d >= 0) {
                auto it2 = diag[x[i] - y[i] - d].lower_bound({x[i] - d / 2, -1});
                if (it2 != diag[x[i] - y[i] - d].end() && it2->first <= it1->first - d / 2) {
                    cout << i + 1 << " " << it1->second + 1 << " " << it2->second + 1 << endl;
                    found = true;
                    break;
                }
            }
        }
        for (int i = 0; i < n; i++) {
            diag[x[i] - y[i]].erase({x[i], i});
        }
    }
    if (!found) {
        cout << "0 0 0" << endl;
    }
}

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

赛后交流

在比赛结束后,会在交流群中给出比赛题解,同学们可以在赛后查看题解进行补题。

群号: 704572101,赛后大家可以一起交流做题思路,分享做题技巧,欢迎大家的加入。

一套C#接口通吃安川/发那科/库卡:工业机器人统一控制框架设计与产线踩坑实录 我们把机器人的通用能力抽象为接口,涵盖连接、运动、IO、寄存器、状态、报警六大类能力,所有品牌适配器都必须实现这个接口。/// 工业机器人统一控制接口// 基础连接// 运动控制// IO与寄存器// 状态与报警// 事件工业机器人统一控制框架的本质,不是把所有品牌的功能都做平,而是找到通用能力的最大公约数,通过分层抽象把品牌差异隔离在底层。上层业务只关注工艺和流程,不需要关心机器人是什么品牌、用什么SDK、通信协议是什么。 阅读详情

相关推荐

Java 开发打飞机小游戏(附完整源码)

上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习。java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐。代码写的很简单,也很容易理解,并且注释写的很清楚了,还有问题,自己私下去补课学习。 完整代码 敌飞机 import java.util.Random; 敌飞机: 是飞行物,也是敌人 public class Airplane extends FlyingObject implements Enemy {

一只独孤的程序猿 1万+

Codeforces Round 951 (Div.2)

CF951

djhws144的博客 1300

LabVIEW Modbus通讯实战:从安装库到读写寄存器的完整避坑指南

本文详细介绍了LabVIEW与Modbus通讯的完整实战指南,从安装库文件到读写寄存器的全流程操作,帮助开发者避开常见问题。通过虚拟串口配置、主机配置实战和高级调试技巧,提升工业自动化领域的通讯效率与可靠性。

milk8的博客 739

Codeforces Round 951 (Div. 2)

951 (Div. 2) 【A-D】

yujie33的博客 1016

基于51单片机的智能花盆灌溉系统设计与实现

本文详细介绍了基于51单片机的智能花盆灌溉系统设计与实现,通过DS18B20温度传感器、土壤湿度传感器和LCD1602显示屏等硬件模块,结合精确的算法控制,实现自动监测与灌溉。系统解决了传统灌溉依赖定时器、缺乏可视化界面的问题,适合上班族、园艺爱好者和植物园工作人员使用,有效提升植物养护效率。

honey的博客 1014

IEEE LaTeX模板中algorithm排版避坑指南:如何优雅地嵌入算法描述?

本文详细解析了在IEEE LaTeX模板中优雅排版algorithm的实用技巧,包括基础配置、高级自定义及常见问题解决方案。通过嵌套环境与[H]参数的应用,帮助研究者克服IEEEtran模板对算法排版的限制,实现专业且美观的算法呈现。

weixin_28340315的博客 408

Codeforces Round 951 (Div. 2) 题解分享

cf 951 div2 A~D

2301_80105412的博客 1407

AGM Supra软件从零到一:国产CPLD工程创建全流程实战解析

本文详细解析了AGM Supra软件在国产CPLD开发中的全流程实战操作,从工程创建到代码开发、编译调试,再到高级技巧与疑难排解。特别对比了Supra与Quartus的差异,提供了工程路径管理、Quartus项目转换、HDL代码规范等实用技巧,帮助开发者高效完成CPLD项目开发。

weixin_29193259的博客 502

Codeforces Round 951

Codeforces Round 951

青少年趣味编程 1603

Jitsi中的Prosody(谐音:破扫敌)介绍

凭借其灵活的插件系统、强大的安全性和出色的性能,Prosody 成为许多企业和开发者构建定制化通信解决方案的首选。在 Jitsi 的多方视频会议场景中,Prosody 不仅处理基本的信令任务,还需要与其他组件(如 Jitsi Videobridge)协作,确保视频流的正确分发和控制。Prosody 提供了丰富的插件系统,允许开发者通过模块扩展其功能。Prosody 就是一个实现 XMPP 协议的服务器,它支持 XMPP 协议的标准功能,如消息传递、群组聊天、传送状态信息等,并提供了高效、可扩展的服务。

江左散人的专栏 1166

基于滤波反投影的图像重建算法matlab仿真

基于滤波反投影的图像重建算法是一种用于医学影像重建的计算机辅助技术。该算法可以从投影数据中重建出高质量的三维图像,被广泛应用于医学影像学、CT、PET等领域。本文将详细介绍基于滤波反投影的图像重建算法的原理、步骤和应用。一、原理介绍基于滤波反投影的图像重建算法基于X射线CT成像原理,它的主要思想是通过对投影数据进行处理,反推出被成像物体的三维形状。其核心原理是投影数据与目标物体之间的线性关系,即通过估计目标物体的吸收率来计算投影数据的变化,从而反推出目标物体的三维形状。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 386

Codeforces Round 951 (Div. 2) D. Fixing a Binary String 题解

Codeforces Round 951 (Div. 2) D. Fixing a Binary String 题解 + AC代码。

ChuanhuaYu的博客 1131

芒果YOLOv12改进108:基于QARep提出多种<独家原创结构>:ReNLANQARep, QARep, CSCQARep, C3QARep, C2fQARep等,即插即用提升小目标检测

芒果YOLOv12改进108:基于QARep提出多种<独家原创结构>:ReNLANQARep, QARep, CSCQARep, C3QARep, C2fQARep等,即插即用提升小目标检测

包括YOLOv5、YOLOv7、YOLOv8等模型改进 755

Codeforces(951-1000)

Codeforces(951-1000)

青少年趣味编程 1549

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Codeforces Round 1024

Codeforces Round 1024

青少年趣味编程 1523

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Codeforces Round 1019

Codeforces Round 1019

青少年趣味编程 1749

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Codeforces Round 951 (Div. 2)补题(C, D)

这题自己想的时候一团乱麻,一想到pos的位置条件判断就头大,最后还是看大佬的博客才发现pos还可以跟末尾数字联系起来,自己写的时候还因为用cin读取数字把一整个数字都读到a[0]去了(真的难绷),看了大佬的代码才知道可以用%题目输出描述中用说明如果有多个输出我们输出一个即可(没截出来,点链接看原题可以发现),既然他都这么说了那我们自己暴力找乘积非常大的一种情况,即原序列每个元素相乘,然后b序列的每个值。的sum值的大小,最后就发现爆longlong了(悲),既然爆。都相当于所得乘积除以对应的。

2301_79876716的博客 645

Codeforces Round 958

Codeforces Round 958

青少年趣味编程 1049

Codeforces Round 1021

Codeforces Round 1021

青少年趣味编程 736

Codeforces Round 956

Codeforces Round 956

青少年趣味编程 702

Codeforces Round 1001

Codeforces Round 1001

青少年趣味编程 1101

Codeforces Round 1023

Codeforces Round 1023

青少年趣味编程 656

Codeforces Round 1027

Codeforces Round 1027

青少年趣味编程 989

Codeforces Round 1022

Codeforces Round 1022

青少年趣味编程 1443

Codeforces Round 951 (Div. 2) A - C

【代码】Codeforces Round 951 (Div. 2) A - C。

Xyrsis的博客 256

Codeforces Round 1020

Codeforces Round 1020

青少年趣味编程 637
上一篇: Codeforces Round 950 (Div. 3) A~F
下一篇: AtCoder Beginner Contest 358 A~G
AC-Panda
博客等级 码龄5年 1736粉丝 191原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值