Educational Codeforces Round 107 (Rated for Div. 2) 个人题解(A~D)
补题链接:Here
1511A. Review Site
题意:\(n\) 个影评人,\(a_i\) 有三种类型,如下
- \(a_i = 1\) ,则表示支持
- \(a_i = 0\) ,则表示不支持
- \(a_i = 3\) ,则表示无所谓
现在求最大的支持数。
思路:把 \(a_i = 1,3\) 的累加即可
1511B. GCD Length
给定位数 \(a,b\) 和 \(gcd(a,b) = c\)
求出 \(x,y\)
思路:保持最高位基本一致为 \(1\) ,接下来取 \(0\) 这样一定可以得到 gcd(x,y) = c
比赛的时候的猜想,现在证明不出来。。。
void solve() {
int a, b, c;
cin >> a >> b >> c;
for (int i = 0; i <= a - c; ++i) cout << 1;
for (int i = 1; i < c; ++i) cout << 0;
cout << " 1";
for (int i = 1; i < b; ++i) cout << 0;
cout << "\n";
}
1511C. Yet Another Card Deck
题意:给定 \(n\) 张卡牌和 \(q\) 次操作,每次操作要执行输出下标(从1开始)、把该卡片放置最前面
由于卡牌种类仅 \(50\) 种,所以我可以枚举和变化下标
详细见代码
void solve() {
int n, q;
cin >> n >> q;
vector<int> a(n), idx(51);
for (int &x : a) cin >> x;
for (int i = n - 1; i >= 0; --i) idx[a[i]] = i;
for (int i = 0, t; i < q; ++i) {
cin >> t;
cout << idx[t] + 1 << " ";
for (int j = 1; j <= 50; ++j)
if (j != t && idx[j] < idx[t]) idx[j]++; // 使原本在此卡牌之前的牌往后移
idx[t] = 0;
}
}
另外看了下其他dalao的代码想起可以用树状数组做
1511D. Min Cost String
由于要满足 \(k\) 次 cost,只要贪心拼接即可
void solve() {
int n, k;
cin >> n >> k;
string s;
for (int i = 0; i < k; i++) {
s += 'a' + i;
for (int j = i + 1; j < k; j++) {
s += 'a' + i;
s += 'a' + j;
}
}
// assert(s.size() == k * k);
for (int i = 0; i < n; i += 1) cout << s[i % s.size()];
}
1511E. Colorings and Dominoes
没怎么懂这么题,先贴一下学长的代码
void solve() {
int n, m;
cin >> n >> m;
vector<string> vs(n);
for (int i = 0; i < n; ++i) cin >> vs[i];
int k = n * m;
vector<ll> pw(k + 1), ans(k + 1), pv(k + 1);
for (int i = 0; i <= k; ++i) pw[i] = i ? pw[i - 1] * 2 % mod : 1;
for (int i = 0; i <= k; ++i) pv[i] = i ? pv[i - 1] * (mod + 1) / 2 % mod : 1;
ll sum = 0;
for (int i = 1; i <= k; ++i) {
if (i >= 3 and i % 2) sum = (sum + pv[i]) % mod;
ans[i] = (ans[i - 1] * 2 + pw[i] * sum + (i % 2 == 0)) % mod;
//cout << i << " " << ans[i] << "\n";
}
int w = 0;
for (auto s : vs)
for (char c : s) w += c == 'o';
ll res = 0;
for (int i = 0; i < n; ++i) {
int p = 0;
for (int j = 0; j <= m; ++j)
if (j < m and vs[i][j] == 'o') p++;
else {
res = (res + ans[p] * pw[w - p]) % mod;
p = 0;
}
}
for (int i = 0; i < m; i++) {
int p = 0;
for (int j = 0; j <= n; j++)
if (j < n and vs[j][i] == 'o') p++;
else {
res = (res + ans[p] * pw[w - p]) % mod;
p = 0;
}
}
cout << res;
}
Educational Codeforces Round 107 (Rated for Div. 2) 个人题解(A~D)的更多相关文章
- Educational Codeforces Round 48 (Rated for Div. 2) CD题解
Educational Codeforces Round 48 (Rated for Div. 2) C. Vasya And The Mushrooms 题目链接:https://codeforce ...
- Educational Codeforces Round 59 (Rated for Div. 2) DE题解
Educational Codeforces Round 59 (Rated for Div. 2) D. Compression 题目链接:https://codeforces.com/contes ...
- Educational Codeforces Round 57 (Rated for Div. 2) ABCDEF题解
题目总链接:https://codeforces.com/contest/1096 A. Find Divisible 题意: 给出l,r,在[l,r]里面找两个数x,y,使得y%x==0,保证有解. ...
- Educational Codeforces Round 80 (Rated for Div. 2)部分题解
A. Deadline 题目链接 题目大意 给你\(n,d\)两个数,问是否存在\(x\)使得\(x+\frac{d}{x+1}\leq n\),其中\(\frac{d}{x+1}\)向上取整. 解题 ...
- Educational Codeforces Round 129 (Rated for Div. 2) A-D
Educational Codeforces Round 129 (Rated for Div. 2) A-D A 题目 https://codeforces.com/contest/1681/pro ...
- Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship
Problem Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...
- Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)
Problem Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...
- Educational Codeforces Round 43 (Rated for Div. 2)
Educational Codeforces Round 43 (Rated for Div. 2) https://codeforces.com/contest/976 A #include< ...
- Educational Codeforces Round 35 (Rated for Div. 2)
Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...
- Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...
随机推荐
- weblogic端口号和内存怎么修改?
在WebLogic中修改端口号和内存分配是一项重要的任务,它涉及到服务器性能和应用程序的可靠性.下面我将详细介绍如何修改WebLogic的端口号和内存设置. 修改端口号 WebLogic使用多个端口来 ...
- Go语言数组与切片学习总结
一.数组 数组的定义:相同类型的数据集合 go语言中数组的索引从0开始 没有赋值的数值型数组,默认值为0 数组一旦被创建,它的大小就是不可改变的 (1)声明数组与打印 var 变量名 [大小]变量类型 ...
- Linux笔记02: Linux环境_2.3 Linux网络连接
2.3 Linux网络连接 本节介绍VMware Workstation Player 17下CentOS 7的网络连接. 2.3.1 VMware网络类型 VMware提供的网络连接有5种: ●桥接 ...
- liunx系统登录有趣界面图案
# vim /etc/motd .::::. .::::::::. ::::::::::: ..:::::::::::' '::::::::::::' .:::::::::: '::::::::::: ...
- Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
学习基础知识 掌握 Go 语言的常见概念,如变量.循环.条件语句.函数.数据类型等等.深入了解 Go 基础知识的好起点是查阅 Go 官方文档 文章链接:Go 编程语言详解:用途.特性.与 Python ...
- Python 猫的 2023 年终回顾
2023 年是 Python猫 创办的第 5 年,2024 年已经到来了,我们照例做一个简短的年终回顾吧. 1.30000 订阅与 200 原创. 2020 的年终总结时,公众号订阅数刚破 20000 ...
- Jenkins简介及安装配置详解:开启持续集成之旅
Jenkins简介及安装配置详解:开启持续集成之旅 一.Jenkins介绍 Jenkins是一个开源的.用Java编写的持续集成和持续交付(CI/CD)工具.它提供了一种简单易用的方式来自动化构建.测 ...
- C#判断字符串是否是有效的XML格式数据
说明 在try-catch语句块中,创建XmlDocument对象,并使用LoadXml方法加载xml字符串.如果没有异常,则说明xml字符串是有效的,返回true,反之为false. 代码实现 // ...
- 15、Flutter 按钮组件
按钮组件的属性 ButtonStylee里面的常用的参数 ElevatedButton ElevatedButton 即"凸起"按钮,它默认带有阴影和灰色背景.按下后,阴影会变大 ...
- Java 如何在PPT中设置形状组合、取消组合、编辑组合形状
PPT中支持插入多达9种不同类型的形状,每种类型下又包含数十种形状样式.针对如此多种类型的形状,为页面元素设计需要.方便形状操作管理的目的,可通过形状"组合"的方式来固定多个形状的 ...