Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2) (ABCE补题记录)
补题链接:Here
1523A. Game of Life
本题中改编为一维坐标上的生命游戏
即使 \(m(m\in[1,1e9])\) 的范围很大,但每次进化不会超过 \(n\) 次,因为如果我们进化结果与上一代是相同的则说明游戏结束了,但我们只有 \(n\) 格。所以最多进行 \(n\) 次进化迭代
所以我们可以直接模拟进化过程
时间复杂度:\(\mathcal{O}(n^2)\)
void solve() {
int n; ll m;
string s;
cin >> n >> m >> s;
s = "0" + s + "0";
while (m--) {
string t = s;
for (int i = 1; i <= n; ++i)
t[i] |= s[i - 1] ^ s[i + 1];
if (t == s)break;
s = t;
}
cout << s.substr(1, n) << "\n";
}
1523B. Lord of the Values
现有两种操作:选定两个元素(\(i\not=j\ \in(1,n)\) ) ,\(n\le10^3\) 并且 \(n\) 为偶数
- \(a_i = a_i + a_j\)
- \(a_j=a_j-a_i\)
现在希望执行最多 \(5000\) 次操作使得 \([a_1,a_2,...,a_n] \to [-a_1,-a_2,...,-a_n]\)
这里读者可以手写模拟一下,要将任何一对数字 \((a,b)\) 转换为一对 \((-a,-b)\) ,可以执行一系列操作,例如 \((1,2,1,2,1,2)\),同时 \(n\) 为偶数,所以我们可以直接对 \((1,n)\) 的元素如上操作
时间复杂度:\(\mathcal{O}(n)\)
using ll = long long;
void solve() {
int n; cin >> n;
vector<ll>a(n + 1);
for (int i = 1; i <= n; ++i)cin >> a[i];// 这里可以不用存,伪读入即可
cout << n * 3 << '\n';
for (int i = 1; i <= n; i += 2) {
cout << "1 " << i << " " << i + 1 << '\n';
cout << "2 " << i << " " << i + 1 << '\n';
cout << "1 " << i << " " << i + 1 << '\n';
cout << "2 " << i << " " << i + 1 << '\n';
cout << "1 " << i << " " << i + 1 << '\n';
cout << "2 " << i << " " << i + 1 << '\n';
}
}
1523C. Compression and Expansion
有一个任务表,其中任务里也会嵌套任务,现在由于某些原因任务表出现问题,需要由我们恢复
这道题需要用 STL 构建堆栈。
在堆栈中维护列表的当前深度。 最初堆栈是空的。 对于每个新的 \(a_i\),有两个选项:
- \(a_i = 1\): 我们只需将给定的数字添加到堆栈的末尾,它将指向列表中的一个新子项。
- \(a_i>1\): 我们需要找到子项,它的最后一个数字将比 \(a_i\) 小 1。 为此,我们将从堆栈中删除最后一个元素,直到找到这个数字。
在每次迭代结束后,我们将打印结果堆栈作为列表中的新项目。 请注意,由于输出整个列表,复杂度将是二次的。
时间复杂度:\(\mathcal{O}(n^2)\)
void solve() {
int n; cin >> n;
vector<int>a;
for (int i = 0, x; i < n; ++i) {
cin >> x;
if (x > 1) {
while (!a.empty() && a.back() + 1 != x)
a.pop_back();
assert(!a.empty());
a.pop_back();
}
a.push_back(x);
for (int j = 0; j < (int) a.size(); j++) {
if (j > 0) {
cout << ".";
}
cout << a[j];
}
cout << '\n';
}
}
1523E. Crypto Lights
【题意待补】
using ll = long long;
const int N = 1e5 + 10, P = 1e9 + 7;
ll n, k, ans, fac[N], inv[N];
ll qpow(ll a, ll b) {
ll ans = 1;
for (; b; b >>= 1, a = a * a % P)
if (b & 1) ans = ans * a % P;
return ans;
}
void initC() {
fac[0] = 1;
for (int i = 1; i <= n; i++) fac[i] = fac[i - 1] * i % P;
inv[n] = qpow(fac[n], P - 2);
for (int i = n; i >= 1; i--) inv[i - 1] = inv[i] * i % P;
}
ll C(ll n, ll m) {
if (n < m) return 0;
return fac[n] * inv[m] % P * inv[n - m] % P;
}
void solve() {
cin >> n >> k;
initC();
ans = 1;
for (int i = 1; (i - 1) * (k - 1) <= n; ++i)
ans = (ans + C(n - (i - 1) * (k - 1), i) * qpow(C(n, i), P - 2) % P) % P;
cout << ans << "\n";
}
Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2) (ABCE补题记录)的更多相关文章
- CodeForce——Deltix Round, Autumn 2021 (open for everyone, rated, Div. 1 + Div. 2)前三道题目题解
目录 A: B: C: 题目链接 A Divide and Multiply standard input/output 1 s, 256 MB 正在上传-重新上传取消 x13036 B Willia ...
- Codeforces Round #575 (Div. 3) 昨天的div3 补题
Codeforces Round #575 (Div. 3) 这个div3打的太差了,心态都崩了. B. Odd Sum Segments B 题我就想了很久,这个题目我是找的奇数的个数,因为奇数想分 ...
- 【cf补题记录】Codeforces Round #608 (Div. 2)
比赛传送门 再次改下写博客的格式,以锻炼自己码字能力 A. Suits 题意:有四种材料,第一套西装需要 \(a\).\(d\) 各一件,卖 \(e\) 块:第二套西装需要 \(b\).\(c\).\ ...
- 【cf补题记录】Codeforces Round #607 (Div. 2)
比赛传送门 这里推荐一位dalao的博客-- https://www.cnblogs.com/KisekiPurin2019/ A:字符串 B:贪心 A // https://codeforces.c ...
- Codeforces Round #555 (Div. 3) C1,C2【补题】
D1:思路:L,R指针移动,每次选最小的即可. #include<bits/stdc++.h> using namespace std; #define int long long #de ...
- Codeforces Round #615 (Div. 3) 补题记录
第一次搞CF,结果惨不忍睹...还是太菜了 A:要用到全部的钱,所以总数必须是3的倍数,而且初始状态下任意一人的钱数不能超过总数除以3,否则没法分了 (也就这个签到算是在我能力范围之内了....) # ...
- Codeforces Round #617 (Div. 3) 补题记录
1296A - Array with Odd Sum 题意:可以改变数组中的一个数的值成另外一个数组中的数,问能不能使数组的和是个奇数 思路:签到,如果本来数组的和就是个奇数,那就OK 如果不是,就需 ...
- Codeforces Round #786 (Div. 3) 补题记录
小结: A,B,F 切,C 没写 1ll 对照样例才发现,E,G 对照样例过,D 对照样例+看了其他人代码(主要急于看后面的题,能调出来的但偷懒了. CF1674A Number Transforma ...
- Codeforces 1023 A.Single Wildcard Pattern Matching-匹配字符 (Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Fi)
Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) A. Single Wildcard Patter ...
- Educational Codeforces Round 71 (Rated for Div. 2)-E. XOR Guessing-交互题
Educational Codeforces Round 71 (Rated for Div. 2)-E. XOR Guessing-交互题 [Problem Description] 总共两次询 ...
随机推荐
- Tech Lead 要学会戴着镣铐跳舞
这不是一篇讨喜的文章,至少不会是你常常看到的例如<成为优秀 Tech Lead 的六个建议>令人欢欣鼓舞的那一类.今天我们聊聊 Tech Lead 所面临的不那么轻松的现实问题 程序员一定 ...
- C#中的virtual和override关键字
公众号「DotNet学习交流」,分享学习DotNet的点滴. 使用基类中的引用 代码如下: class MyBaseClass //基类 { public void Print() ...
- 用Python编写 2048 命令行小游戏
本篇博文围绕使用Python开发热门游戏2048 GAME(命令行版本) 代码未做任何优化(原生且随意).全程以面向过程.MVC的设计思想为主.开发环境是Ubuntu系统下的Pycharm 2048是 ...
- 最全的VLOOKUP应用教程
VLOOKUP是Excel中最常用的函数之一,它可以让我们在一个表格中查找指定值,并返回与该值匹配的另一个单元格中的内容. 在这篇文章中,我们将深入探讨VLOOKUP的使用方法,从而为您提供一份史上最 ...
- 一款基于.NET Core的快速开发框架、支持多种前端UI、内置代码生成器
前言 经常看到有小伙伴在技术群里问有没有什么好用且快速的开发框架推荐的,今天就给大家分享一款基于MIT License协议开源.免费的.NET Core快速开发框架.支持多种前端UI.内置代码生成器. ...
- 安装华企盾DSC加密软件,USB、银行key等驱动加载不了常见处理方法
1.首先打开高级客户端查看客户端的权限是否正确 2.将USB设置成放行 3.修改USB管控的注册表 4.安装6.6.0高版本,并添加便捷式设备的注册表改为1见下图 5.添加flag000如正常则把相关 ...
- java注释、变量、数据类型和运算符
注释 单行注释:// 多行注释:/*开头,*/结尾 JavaDoc注释:/**开头,*/结尾 快捷键:ctrl + ? 变量 第一步:声明变量.即根据数据类型在内存分配空间. 第二步:赋值.即将数据的 ...
- Python——第三章:函数的返回值
函数的返回值: 函数执行之后. 会给调用方一个结果. 这个结果就是返回值 关于return: 函数只要执行到了return. 函数就会立即停止并返回内容. 函数内的return的后续的代 ...
- Java播放MP3播放音频
Java播放MP3播放音频 下面我演示用jdk自带包.框架等分别展示播放mp3.等music 一.使用javafx包 AudioClip 注意jdk11以上剥离了javafx public stati ...
- MySQL篇:bug1_navicat添加外键保存后不起作用(消失)
问题 在Nacicat premium中添加外键一保存就消失 用SQL语句也显示创建成功,没有报错,可是在INSERT中又起不到约束作用 解决办法 参考一下资料发现可能是表的类型不支持外键 要在 My ...