Educational Codeforces Round 93 (Rated for Div. 2)

A. Bad Triangle

input

3
7
4 6 11 11 15 18 20
4
10 10 10 11
3
1 1 1000000000

output

2 3 6
-1
1 2 3

Note

In the first test case it is impossible with sides \(6, 11 and 18\). Note, that this is not the only correct answer.

In the second test case you always can construct a non-degenerate triangle.

题意:

在非递减序列中找坏三角形。

思路:

由于是非递减的序列,直接特判\(1,2,n, or, 1,n-1,n\)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5;
ll a[maxn];
bool check(ll x, ll y, ll z) {
if (x + y <= z || x + z <= y || y + z <= x)
return false;
return true;
}
void solve() {
int n; cin >> n;
bool flag = false;
for (int i = 1; i <= n; ++i)cin >> a[i];
if (!check(a[1], a[2], a[n])) {
cout << 1 << " " << 2 << " " << n << endl;
}
else if (!check(a[1], a[n - 1], a[n]))
cout << 1 << " " << n - 1 << " " << n << endl;
else cout << "-1" << endl;
}
int main() {
//freopen("in.txt", "r", stdin);
int t; cin >> t;
while (t--)solve();
}

B. Substring Removal Game

题意:

Alice 和 Bob 又在玩游戏了,给出一个0,1构成的字符串,问在每个人都想得到最多分的情况下,Alice能得多少分(删去1的个数 = 所得分数)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5;
ll a[maxn];
bool check(ll x, ll y, ll z) {
if (x + y <= z || x + z <= y || y + z <= x)
return false;
return true;
}
void solve() {
string s;cin >> s;
vector<int>q;
int cnt = 0;
for (int i = 0; i < s.length(); ++i) {
if (s[i] == '1')cnt++;
else {
if (cnt == 0)continue;
q.push_back(cnt);
cnt = 0;
}
}
q.push_back(cnt);
cnt = 0;
sort(q.begin(), q.end());
for (int i = q.size() - 1; i >= 0; i -= 2)
cnt += q[i];
cout << cnt << endl;
}
int main() {
//freopen("in.txt", "r", stdin);
int t; cin >> t;
while (t--)solve();
}

C. Good Subarrays

题意:

给定一个\(n\)个元素的序列a,求满足\(∑_{i=l}^ra_i=r−l+1\)的区间个数.

#include<bits/stdc++.h>
using namespace std;int T,n;
string s;map<int,int>mp;
int main(){
cin>>T;
while(T--){mp.clear();
cin>>n>>s;mp[0]++;
long long ans=0,sum=0;
for(int i=0;i<n;i++){
sum+=s[i]-'1';
ans+=mp[sum];mp[sum]++;
}
cout<<ans<<endl;
}
}

D. Colored Rectangles

Examples

input

1 1 1
3
5
4

output

20

input

2 1 3
9 5
1
2 8 5

output

99

input

10 1 1
11 7 20 15 19 14 2 4 13 14
8
11

output

372

题目大意:给定若干个红色,绿色,蓝色的一对长度一样的棍子.问用这些棍子组成的颜色不同的矩形的面积的最大总和是多少.注意不能把两个相同颜色的一对棍子拆成两个分别去用.其次颜色不同指的是在两个集合里选的两对棍子.

数据范围:

\(1≤R,G,B≤200\)

思路

首先比较容易想到的是贪心,但是这个题会跟棍子的数目有关,贪心会有很多问题,而且打补丁的方式是解决不了的.

考虑O(n3)O(n3)的DP,由于一共就三种元素,不妨就直接按定义直接设计状态:

状态:\(f[i,j,k]\)表示红色用了i个,绿色用了j个,蓝色用了k个的前提下得到的矩形面积总和的最大值.

入口:全为0即可,不需要额外处理.

转移:三种匹配方式直接枚举即可.

出口:所有值的最大值.

注意点的话,防止int爆掉吧

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define int ll const int N = 205;
int r[N],g[N],b[N];
int f[N][N][N];
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);
int R,G,B;cin >> R >> G >> B;
for(int i = 1;i <= R;++i) cin >> r[i];sort(r + 1,r + R + 1,greater<int>());
for(int i = 1;i <= G;++i) cin >> g[i];sort(g + 1,g + G + 1,greater<int>());
for(int i = 1;i <= B;++i) cin >> b[i];sort(b + 1,b + B + 1,greater<int>());
int res = 0;
for(int i = 0;i <= R;++i)
{
for(int j = 0;j <= G;++j)
{
for(int k = 0;k <= B;++k)
{
auto& v = f[i][j][k];
if(i >= 1 && j >= 1) v = max(v,f[i - 1][j - 1][k] + r[i] * g[j]);
if(j >= 1 && k >= 1) v = max(v,f[i][j - 1][k - 1] + g[j] * b[k]);
if(i >= 1 && k >= 1) v = max(v,f[i - 1][j][k - 1] + r[i] * b[k]);
res = max(res,v);
}
}
}
cout << res << endl;
return 0;
}

E. Two Types of Spells

Example

input

6
1 5
0 10
1 -5
0 5
1 11
0 -10

output

5
25
10
15
36
21

Educational Codeforces Round 93 (Rated for Div. 2)的更多相关文章

  1. Educational Codeforces Round 93 (Rated for Div. 2)题解

    A. Bad Triangle 题目:https://codeforces.com/contest/1398/problem/A 题解:一道计算几何题,只要观察数组的第1,2,n个,判断他们能否构成三 ...

  2. 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 ...

  3. 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 ...

  4. Educational Codeforces Round 43 (Rated for Div. 2)

    Educational Codeforces Round 43 (Rated for Div. 2) https://codeforces.com/contest/976 A #include< ...

  5. Educational Codeforces Round 35 (Rated for Div. 2)

    Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...

  6. 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 ...

  7. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes 题目连接: http://code ...

  8. Educational Codeforces Round 63 (Rated for Div. 2) 题解

    Educational Codeforces Round 63 (Rated for Div. 2)题解 题目链接 A. Reverse a Substring 给出一个字符串,现在可以对这个字符串进 ...

  9. Educational Codeforces Round 39 (Rated for Div. 2) G

    Educational Codeforces Round 39 (Rated for Div. 2) G 题意: 给一个序列\(a_i(1 <= a_i <= 10^{9}),2 < ...

  10. Educational Codeforces Round 48 (Rated for Div. 2) CD题解

    Educational Codeforces Round 48 (Rated for Div. 2) C. Vasya And The Mushrooms 题目链接:https://codeforce ...

随机推荐

  1. 平台工程时代的 Kubernetes 揭秘:2023年生产状况报告深度剖析

    Kubernetes 在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战.八年过去了,在生产环境中使用 ...

  2. Kubernetes 漫游:etcd

    概述 etcd 是一个基于 Raft 协议实现.开源的.分布式的键值存储系统.主要用于在分布式系统中提供强一致性和高可用性的数据存储. etcd 在 Kubernetes 中的作用如下: 集群状态数据 ...

  3. 请查收,本周刷屏的两大热点「GitHub 热点速览」

    如果你逛 HackerNews 或者是推特,你一定会被 multipleWindow3dScene 这个跨窗口渲染项目的成果刷屏,毕竟国内的技术平台上也出现了不少的模仿项目.另外一个热点,便是你在白板 ...

  4. 一篇文章带你掌握Web自动化测试工具——Selenium

    一篇文章带你掌握Web自动化测试工具--Selenium 在这篇文章中我们将会介绍Web自动化测试工具Selenium 如果我们需要学习相关内容,我们需要掌握Python,PyTest以及部分前端知识 ...

  5. SPI扩展点在业务中的使用及原理分析

    1 什么是SPI SPI 全称Service Provider Interface.面向接口编程中,我们会根据不同的业务抽象出不同的接口,然后根据不同的业务实现建立不同规则的类,因此一个接口会实现多个 ...

  6. 配置postcss-pxtorem报:options has an unknown property 'plugins'

    闲聊: 小颖最近在坐大屏相关的项目,要写适配,之前用的:postcss-px2rem.px2rem-loader,和朋友闲聊呢他说他们也在写大屏,不过他们用的 postcss-pxtorem,在写另外 ...

  7. c++算法练习day01【2022年蓝桥杯省赛B组题目】每天做一点、、、

    这个练习目前来说就比较宽松,打算在寒假(基本也就是这一个月每天刷几道题吧) 题目一: 小明决定从下周一开始努力刷题准备蓝桥杯竞赛.他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目.请你 ...

  8. 利用 Excel 对学生的成绩进行分析管理

    利用 Excel 对学生的成绩进行分析和管理是一种常见且有效的方法.以下是一些步骤和技巧,以帮助您实施这一过程: 1. 数据输入:将学生成绩数据输入到 Excel 中的一个工作表中.每个学生可以有一行 ...

  9. ElasticSearch查询数据、全文检索、补全提示、拼写纠错

    https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search.html https://www.elastic.co/guide ...

  10. 【C++】【图像处理】灰度直方图实现算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)

    前情提要:本记录需要一定的C++和图像处理基础进行阅读. 图像处理算法学习记录: Code: 1 void histCompute(BYTE*image, int width, int height) ...