Codeforces Global Round 25 A~E

Codeforces Global Round 27 (A~F) Codeforces Global Round 27 A. Sliding B. Everyone Loves Tres C. Alya and Permutation D. Yet Another Real Number Problem E. Monster F. Tree Operations 阅读详情

A. Dual Trigger (思维)

题意:

有 nnn 盏灯,编号为 111 至 nnn ,排成一排,一开始全部都是灭的。可以执行以下任意次数的操作(可能为零):

  • 选择两个不相邻的 †{}^\dagger† 没开的灯,将它们打开。
    确定是否能达到配置 sss ,其中 si=1s_i = 1si​=1 表示 iii个灯泡已打开,否则为 si=0s_i = 0si​=0 。

分析:

灯的数量为偶数时,需要特判如果只有两盏灯亮,那么要求不能相邻,相邻不成立,其他成立。灯的数量为奇数时不成立,

代码:

#include <bits/stdc++.h>

using namespace std;

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n;
        string s;
        cin >> n >> s;
        vector<int> tmp;
        for (int i = 0; i < s.size(); i++)
            if (s[i] == '1')
                tmp.push_back(i);
        if (tmp.size() % 2) {
            cout << "NO" << endl;
            continue;
        }
        if (tmp.size() == 2 && tmp[0] + 1 == tmp[1])
            cout << "NO" << endl;
        else
            cout << "YES" << endl;
    }
    return 0;
}

B.Battle Cows (贪心)

题意:

有 nnn 头奶牛参加编码比赛。奶牛 iii 的 CowdeforcesCowdeforcesCowdeforces 值为 aia_iai​ (全部不同),最初位于位置 iii 。比赛由以下 n−1n-1n−1 场比赛组成:

  • 第一场比赛在位置 111 的奶牛和位置 222 的奶牛之间进行。
  • 随后,每场比赛 iii 都在位置 i+1i+1i+1 的奶牛和比赛 i−1i-1i−1 的获胜者之间进行。
  • 在每场比赛中,CowdeforcesCowdeforcesCowdeforces 等级较高的奶牛获胜并进入下一场比赛。

您是奶牛 kkk 的主人。对您来说,赢得比赛并不重要;相反,您希望您的奶牛在尽可能多的比赛中获胜。作为比赛组织者的熟人,您可以要求他们将您的奶牛与另一头奶牛交换一次位置,或者您也可以选择什么都不做。

找出您的奶牛能够赢得的最大场次。

分析:

通过观察发现,对于第kkk头牛,如果前面有一个下标iii满足ai>aka_i > a_kai​>ak​ ,对于第kkk头牛来说只有两种情况,一种是击败从111到i−1i-1i−1的牛,另一种是和第iii头牛交换,击败从iii开始的到下一个大于aka_kak​的中间所有的牛。

代码:

#include <bits/stdc++.h>

using namespace std;

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n, k;
        cin >> n >> k;
        vector<int> a(n + 1);
        for (int i = 1; i <= n; i++)
            cin >> a[i];
        int pos = 0;
        for (int i = 1; i < k; i++) {
            if (a[i] > a[k]) {
                pos = i;
                break;
            }
        }
        int ans = 0;
        if (pos != 0) {
            if (pos != 1)
                ans = 1;
            for (int i = 1; i < pos; i++)
                if (a[i] > a[k])
                    ans = 0;
            for (int i = pos + 1; i <= n; i++) {
                if (a[k] > a[i])
                    ans++;
                else
                    break;
            }
        }
        int tmp = 0;
        if (k != 1)
            swap(a[1], a[k]);
        for (int i = 2; i <= n; i++)
            if (a[i] > a[1])
                break;
            else
                tmp++;
        cout << max(tmp, ans) << endl;
    }
    return 0;
}

C.Ticket Hoarding (贪心)

题意:

作为一家创业公司的首席执行官,你想奖励kkk位员工每人一张即将到来的音乐会门票。门票将在 nnn 天内发售,你预测在 iii 天每张门票的价格将是 aia_iai​ 。但是,为了防止囤积门票,演唱会主办方采取了以下措施:

  • 每人每天购票不得超过 mmm 张。
  • 如果某人在 iii 日购买了 xxx 张门票,则其后各日(即从 i+1i+1i+1 日开始)的每张门票价格将提高 xxx 。

例如,如果 a=[1,3,8,4,5]a = [1, 3, 8, 4, 5]a=[1,3,8,4,5] 你在 111 日购买了 222 张门票,那么这些门票的总价为 222 ,而从 222 日开始的价格将变为 [5,10,6,7][5, 10, 6, 7][5,10,6,7] 。如果您在 222 日又购买了 333 张门票,那么这些门票的总费用将增加 151515 ,从 333 日起的价格将变为 [13,9,10][13, 9, 10][13,9,10] 。

求购买 kkk 张车票的最低消费。

分析:

通过观察发现,如果票的价格和每种票买的数量是确定的,那么最终价格和购买顺序没有任何关系,所以我们只需要贪心地进行排序,每次买价格最低的即可。

代码:

#include <bits/stdc++.h>

using namespace std;
typedef long long LL;

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n, m, k;
        cin >> n >> m >> k;
        vector<int> a(n + 1), id(n);
        for (int i = 1; i <= n; i++) {
            cin >> a[i];
            id[i - 1] = i;
        }
        sort(id.begin(), id.end(), [&](int x, int y) {
            if (a[x] != a[y]) return a[x] < a[y];
            return x < y;
        });
        LL ans = 0;
        int num = 0;
        for (auto tmp: id) {
            int t = min(m, k);
            ans += 1LL * t * (a[tmp] + num);
            num += t;
            k -= t;
        }
        cout << ans << endl;
    }
    return 0;
}

D.Buying Jewels (思维)

题意:

爱丽丝有 nnn 枚硬币,她想去鲍勃的珠宝店购物。今天,虽然鲍勃还没有开店,但他想确保爱丽丝会买到准确的 kkk 颗珠宝。为了开设珠宝店,鲍勃最多可以设置 606060 个摊位(每个摊位上的珠宝数量不限),并将每个摊位上每件珠宝的价格设置为介于 111 和 101810^{18}1018 之间的整数个硬币。

幸运的是,鲍勃知道爱丽丝会贪婪地购买:她会去 111 号摊位,尽可能多地购买珠宝,然后去 222 号摊位,尽可能多地购买珠宝,以此类推直到最后一个摊位。知道这一点后,鲍勃就可以选择摆摊的数量,并设定每个摊位的价格,这样爱丽丝就能买到恰好 kkk 件珠宝。请帮助鲍勃完成任务,或者判断是否不可能完成任务。

请注意,爱丽丝不需要花光所有金币。

分析:

首先处理特判,n=k,k=1n=k,k=1n=k,k=1时分别1,11,11,1和1,n1,n1,n。通过打表或其他方法发现当2×k≤n+12 \times k \le n+12×k≤n+1 时,可以两步解决,n−k+1,1n-k+1,1n−k+1,1,首先取k−1k-1k−1个111,剩下的一块取即可。其他都是无解的。

代码:

#include <bits/stdc++.h>

using namespace std;
typedef long long LL;
const int mod = 1e9 + 7;

int main() {
    int T;
    cin >> T;
    while (T--) {
        LL n, k;
        cin >> n >> k;
        if (n == k) {
            cout << "YES" << endl;
            cout << 1 << endl;
            cout << 1 << endl;
            continue;
        }
        if (k == 1) {
            cout << "YES" << endl;
            cout << 1 << endl;
            cout << n << endl;
            continue;
        }
        if (2 * k <= n + 1) {
            cout << "YES" << endl;
            cout << 2 << endl;
            cout << n - k + 1 << " " << 1 << endl;
            continue;
        }
        cout << "NO" << endl;
    }
    return 0;
}

E. No Palindromes (字符串)

题意:

给出一个由小写拉丁字符组成的字符串 sss 。需要将其分割成若干子串,使得每个子串都不是回文子串。

分析:

首先特判本身就是回文串的情况,本题有个结论:除了某些特殊情况,sss最多分成两个字符串,在保证sss是回文串的情况下,只有以下情况不能被分割:

  • n<4n<4n<4时,无法分割

  • sss是只由同一个字母构成的字符串

  • sss的形状是aaaaabaaaaaaaaaabaaaaaaaaaabaaaaa,其中一个字母有n−1n-1n−1个

  • sss的形状是 ababababaababababaababababa 的循环子串。

其他情况都能被分成两个非回文串,通过双哈希进行回文串的判断。

代码:

#include <bits/stdc++.h>

using namespace std;
typedef long long LL;

struct PIIhash {
    const LL base[2] = {29, 31};
    const LL hashmod[2] = {(LL) 1e9 + 9, 998244353};
    array<vector<LL>, 2> hash1;
    array<vector<LL>, 2> pwMod;

    void init(string S) {
        int n = S.size();
        S = ' ' + S;
        hash1[0].resize(n + 1), hash1[1].resize(n + 1);
        pwMod[0].resize(n + 1), pwMod[1].resize(n + 1);
        for (int i = 0; i < 2; ++i) {
            pwMod[i][0] = 1;
            for (int j = 1; j <= n; ++j) {
                pwMod[i][j] = pwMod[i][j - 1] * base[i] % hashmod[i];
                hash1[i][j] = (hash1[i][j - 1] * base[i] + S[j]) % hashmod[i];
            }
        }
    }

    pair<LL, LL> get(int l, int r) {
        pair<LL, LL> ans;
        ans.first = (hash1[0][r] - hash1[0][l - 1] * pwMod[0][r - l + 1]) % hashmod[0];
        ans.second = (hash1[1][r] - hash1[1][l - 1] * pwMod[1][r - l + 1]) % hashmod[1];
        ans.first = (ans.first + hashmod[0]) % hashmod[0];
        ans.second = (ans.second + hashmod[1]) % hashmod[1];
        return ans;
    }
};

bool check(PIIhash &a, int la, int ra, PIIhash &b, int lb, int rb) {
    return a.get(la, ra) == b.get(lb, rb);
}

int main() {
    int T;
    cin >> T;
    while (T--) {
        string s;
        cin >> s;
        int n = s.size();
        string tmp = s;
        reverse(tmp.begin(), tmp.end());
        PIIhash a, b;
        a.init(s), b.init(tmp);
        if (!check(a, 1, n, b, 1, n)) {
            cout << "YES" << endl;
            cout << 1 << endl;
            cout << s << endl;
            continue;
        }
        int cnt = count(s.begin(), s.end(), s[0]);
        if (n != 1)
            count(s.begin(), s.end(), s[1]);
        if (cnt >= n - 1) {
            cout << "NO" << endl;
            continue;
        }
        bool flag = 0;
        for (int i = 2; i < n; i++) {
            if (s[i] != s[i - 2])
                flag = 1;
        }
        if (n < 4 || (!flag) && (n & 1)) {
            cout << "NO" << endl;
            continue;
        }
        for (int i = 1; i <= n; i++) {
            if (!check(a, 1, i, b, n - i + 1, n) && !check(a, i + 1, n, b, 1, n - i)) {
                cout << "YES" << endl;
                cout << 2 << endl;
                cout << s.substr(0, i) << ' ' << s.substr(i, n - i) << endl;
                break;
            }
        }
    }
    return 0;
}

赛后交流

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

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

Codeforces Global Round 12 文章目录Codeforces Global Round 12A.Avoid TrygubB.Balls of SteelC.Errich-Tac-ToeD.Rating Compression Codeforces Global Round 12 A.Avoid Trygub 题意: 题解: sort一发就完事了 代码: /* 3 11 antontrygub 15 bestcoordinator 19 trywatchinggurabruh */ #include <bits/stdc++.h&gt 阅读详情

相关推荐

Python金融数据获取工具库之baostock使用详解

在金融数据分析和量化交易中,获取准确及时的市场数据是非常重要的。baostock是一个专门为中国股市数据提供支持的 Python 库,它提供了免费的股票数据接口,用户可以方便地获取股票、指数、基金等各种金融数据。本文将详细介绍baostock库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

Rocky006的博客 5344

每日一题 第八十一期 Codeforces Global Round 25

【代码】每日一题 第八十一期 Codeforces Global Round 25。

2301_80882026的博客 917

利用eds editor生成CANOPEN 设备eds文件

通过以上步骤,您可以根据实际设备的功能特性,自动生成一份符合CANopen协议标准的电子数据表(EDS文件),该文件可以被上位机软件或其他CANopen主站设备用于识别、配置和控制您的CANopen从站设备。使用CANopen EDS Editor生成CANOPEN设备的EDS文件是一个系统化的过程,它涉及将设备的具体技术参数和功能映射到CANopen规范定义的对象字典中。

weixin_38604759的博客 6458

比赛记录:Codeforces Global Round 25 A~E (猜猜题场)

比赛记录:Codeforces Global Round 25 A~E (猜猜题场)

yingjiayu12的博客 1044

基于deepseek本地模型的本地知识库构建

通过以上步骤,你已经成功构建了一个基于 AnythingLLM 和 LM Studio 的本地知识库。这个系统不仅能够高效地存储和检索知识,还能结合强大的语言模型生成准确的回答。你可以根据自己的需求进一步扩展和优化这个系统,比如增加更多的文档格式支持、优化检索算法等。

qq_30178745的博客 1383

Mmdetection用自己的数据集训练Mask_RCNN

将自己数据的标签写入配置文件,在data前一行添加自己的标签列表,同时在train,val,test中添加classes = classes,如果不添加,模型就会默认读取coco原始数据集的80个标签,与自己的数据集对应不上就会报错。2.打开第二个文件coco_instance.py,将data_root路径改为你自己coco数据集的位置(注意一定要以/结尾),修改输出图片尺寸(根据自己的数据集决定)3.将标注完的数据转为Mask_rcnn训练所需的数据集格式。4.将数据集放到训练代码文件夹中。

m0_64298393的博客 3473

Codeforces Global Round 27 div1+2 个人题解(A~E)

Codeforces Global Round 27 div1+2 个人题解(A~E)

Lazy_ChessPlayer的博客 2101

(五)C++自制植物大战僵尸游戏LoadingScene的实现讲解

游戏启动后就会立即切换到游戏加载场景中。只有游戏资源文件加载完成后,才能进入游戏。Loadingscene类继承Cocos2d-x中的Scene父类,表明Loadingscene是一个场景类。切换到LoadingScene场景中,首先会创建该场景,会调用函数,在该函数中调用自己定义的方法实现指定功能。代码文件的位置如下图所示。

尔灵尔亿的博客 2006

Codeforces Global Round 26 A~E

将非空数组的范围定义为最大值减去最小值。例如,142的范围是4−13。给你一个长度为n≥3的数组a1​a2​an​。a。你必须给a如果不存在这样的着色,则输出NO。如果存在多种有效着色,则可以输出其中任何一种。

Code_Shark的博客 1584

CANape a2l文件的编辑教程

编辑a2l文件

wsq119的博客 1万+

uniapp | 基于高德地图实现位置选择功能(安卓端)

在uni-app项目中实现地图位置选择功能的解决方案。由于uni.chooseLocation功能受限,采用高德地图API自主开发。系统由父组件poiMap.vue(负责展示和跳转)和子组件poiBox.vue(核心地图逻辑)构成,通过父子组件通信传递位置数据。关键技术包括:1)使用AMapLoader动态加载地图SDK;2)集成PositionPicker实现拖拽选点;3)异步加载AMapUI插件;4)通过事件监听获取位置详情(地址/经纬度)。

大胆尝试,小心实践 732

每日一题 第七十九期 Codeforces Global Round 25

【代码】每日一题 第七十九期 Codeforces Global Round 25。

2301_80882026的博客 1375

倍福CX9020(WINCE 7)控制器使用方法和操作

CX9020系列是倍福控制器中较为经济的,操作系统为Windows Embedded Compact 7(简称WINCE7或WINEC7),相对高端控制器(WINES7以上系统),操作系统古老而简洁,上位机软件的编写困难很多,本文是笔者在使用过程中摸索的流程,旨在为CX9020系列的新用户提供参考,也可供其他CE系统的控制器参考。本文中大部分截图采用倍福中国的培训文档,这是由于笔者是在流程走通后再写这篇文章,不想再恢复出厂设置走一遍截图。因笔者在写这篇文章时使用倍福控制器经验并不丰富,难免有纰漏,请读者批评

weixin_41883890的博客 4287

Codeforces Global Round 17题解A-D

Codeforces Global Round 17 A. Anti Light’s Cell Guessing 分析: 考虑0的情况就行了。 代码: #include <bits/stdc++.h> using namespace std; //#pragma GCC optimize(2) #define close(); ios::sync_with_stdio(false); #define endl '\n' #define rep(i, l, r) for(int i = l; i

Arctic_Clam的博客 1346

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Codeforces Global Round 2

Codeforces Global Round 2 B - Alyona and a Narrow Fridge(贪心) #include<bits/stdc++.h> using namespace std; typedef long long ll; int main(void) { cin.tie(0); // freopen(“in.txt”,“r”,stdin); //...

Harukaze 969

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【6.25】Codeforces Global Round 21

Codeforces Global Round 21ALL:8 AC:4 补题:1题意:给定一个长度为 nnn 的数组 aaa 、一个长度为 kkk 的数组 bbb 和一个数字 mmm,现在对数组 aaa 进行以下操作:请问能否把数组 aaa 变成数组 bbb。 数据范围:1≤n,k≤5×1041\le n,k\le 5\times 10^41≤n,k≤5×104,2≤m≤1092\le m\le 10^92≤m≤109,1≤ai,bi≤1091\le a_i,b_i\le 10^91≤ai​,bi​≤10

ZhgDgE的博客 527

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Codeforces Global Round 7笔记

Codeforces Global Round 7笔记 感想 耻辱场。做出三道题,但每道题平均交了4遍还多,第一题没有第一眼想出正确答案,Rating还是-60,心累。感觉还是要放平心态,求稳。并且多做思维题,思维还是过于僵化。 实时Rating:1304,不能再低了,再低真对不起我自己了。 题目 A Bad Ugly Numbers 解析 给定一个nnn,要求一个nnn位数sss,满足:sss...

Edward_Tsui的博客 428

Codeforces Global Round 11

文章目录Codeforces Global Round 11A. Avoiding ZeroB. Chess CheaterC. The Hard Work of PaparazziD. Unshuffling a DeckE. Xum Codeforces Global Round 11 A. Avoiding Zero 题意: 给定一个长度为n的数组a,问是否能够将a数组位置改变形成b数组,使得b数组的所有前缀和都不等于0. 题解: 本题是构造题,如果正数的和大于负数和的绝对值,那么只需要将正数放在前面

m0_49959202的博客 265

Codeforces Global Round 10

文章目录Codeforces Global Round 10A. Omkar and PasswordB. Omkar and Infinity ClockC. Omkar and WaterslideD. Omkar and Bed WarsE. Omkar and Duck参考 Codeforces Global Round 10 A. Omkar and Password 题意: 给你一个序列,现在这个序列中可以将相邻的不同的元素相加,可以重复若干次,问最后的会剩下几个元素。 题解: 仔细分析可知,不

m0_49959202的博客 286

Codeforces Global Round 15

文章目录[A - Subsequence Permutation](https://codeforces.com/contest/1552/problem/A)题意题解Code[B - Running for Gold](https://codeforces.com/contest/1552/problem/B)题意题解Code[C - Maximize the Intersections](https://codeforces.com/contest/1552/problem/C)题意思路CodeD 待补

INGg__的博客 445

Codeforces Global Round 20题解

Codeforces Global Round 20题解 A. Log Chopping 实现思路 我们可以发现如果长度为xxx,那么我们可以切x−1x - 1x−1刀,所以我们统计出来一共要砍多少刀即可 代码实现 /* * @Description: 电影和人生不一样,电影太仁慈了,人生太辛苦了 * @优快云: https://blog.csdn.net/godhandsjoker?spm=1000.2115.3001.5343 * @Github: https://github.com/god.

godhandsjoker的博客 747

Codeforces Global Round 27 E 根号做法

题解

2301_78527293的博客 1103

【补题】Codeforces Global Round 26 E. Shuffle

但在dp的过程中,自己作为叶子节点是不可以的,是别人作为非叶子节点的,自己才可以选择作为叶子节点,根作为第一个节点没有能力选择一个父节点作为非叶子节点,只能是自己,1.首先对于题意进行解析,这个操作是在干什么,然后发现,任意相邻的节点不能同时为叶子节点,然后如果我们把叶子节点归为一类,就会发现所有的叶子节点就是最大独立集。f[3]代表3节点的情况,但是要分类f[3][0/1],代表图中形状的子树3节点作为叶子节点和不是叶子节点的情况。假设以2为根,f[2]所拥有的状态只是红色部分子树,

2401_87294509的博客 1811

Codeforces Global Round 14

Codeforces Global Round 14 A.Phoenix and Gold 题意:  给定n个数, 问按照什么顺序从左到右将这n个数加起来, 期间不会出现和为x的状态 思路:  首先求一遍数组的和, 如果等于x那么加和过程中一定会出现x这个状态,否则就将原数组从小到大排序, 然后从左到右依次加和,若中间和第一次出现了x, 那么就将当前的数先减去, 加上数组的最后一个,之后再将剩下的依次加起来即可, 如果加和过程中没有出现和为x的情况, 那么就皆大欢喜直接按照这个顺序输出即可 代码 #incl

CUCUC1的博客 367

Codeforces Global Round 27(A-D)

Codeforces Global Round 27(A-D)

ju_ruo_ruo的博客 1308

Codeforces Global Round 3

Codeforces Global Round 3 F: 题意是给定 nnn 个物品,每个物品有一个权值和一个掩码。这些权值之和不为0 。需要求出一个 sss ,最终求和为:将 sss 与掩码按位与,如果结果有奇数个1,那么将这个物品的权值取反。求出这个 sss 。 考虑将所有物品按掩码的最高位 kkk 进行分类。很容易知道,第 kkk 位是否置1不会影响掩码最高位小于 kkk 的物品对求和的贡献...

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值