当前位置: 首页 > news >正文

Codeforces Round 856 (Div. 2) A — C

Codeforces Round 856 (Div. 2)

文章目录

        • A. Prefix and Suffix Array
          • 题目大意
          • 题目分析
          • code
        • B. Not Dividing
          • 题目大意
          • 题目分析
          • code
        • C. Scoring Subsequences
          • 题目大意
          • 题目分析
          • code

A. Prefix and Suffix Array

题目大意

给出一个字符串所有的非空前后缀,判断原字符串是否为回文串。

题目分析

我们可以找到1-n-1的前缀和2-n的后缀,若原串满足回文串,则次两部分拼接成的字符串也应该满足回文串。

code
#include<bits/stdc++.h>using namespace std;int n, m, k, t;void solve()
{cin >> n;string str = "";for(int i = 0; i < 2 * n - 2; i ++){string s;cin >> s;if(s.size() == n - 1) str += s;}bool flag = true;for(int i = 0; i < str.size() / 2; i ++){//cout << str[i] << "-----" << str[ (2 * n - 2) - i - 1] << "\n";if(str[i] != str[(2 * n - 2) - 1 - i]){flag = false;break;}}if(flag) puts("YES");else puts("NO");
}int  main()
{cin >> t;while(t --) solve();return 0;
}

B. Not Dividing

题目大意

已知n个正整数的数组。在一次操作中,您可以选择数组中的任意数字并向其添加1。最多做2n次操作,使数组满足以下性质:ai+1不能被ai整除。打印出经过操作后得到的数组。

题目分析

对于两个数 a 和 b 如果 a 能整除 b 则 a + 1 一定不能整除 b ,当然前提是a!=1。所以我们将所有数值为1的元素统一加一变成2,再遍历改数即可。对于 ai 和 ai-1 要注意不能修改 ai-1,可能会造成后续错误。

code
#include<bits/stdc++.h>using namespace std;const int N = 1e4 + 10;int n, m, k, t;
int a[N];void solve()
{cin >> n;for(int i = 1; i <= n; i ++){cin >> a[i];if(a[i] == 1) a[i] ++;}for(int i = 2; i <= n; i ++)if(a[i] % a[i - 1] == 0) a[i] ++;for(int i = 1; i <= n; i ++) cout << a[i] << " ";puts("");
}int  main()
{cin >> t;while(t --) solve();return 0;
}

C. Scoring Subsequences

题目大意

一个序列的得分定义为序列数字的乘积除以序列元素个数的阶乘。题目要求分别找出a1~ai中是的得分最大的子序列的元素个数(1<=i<n,共n个)。

题目分析

最重要的一点是题目中所给的序列是非递增(从小到大),我们可以看某个元素是否对答案有贡献,如果有贡献的话,就累加到答案中。

首先我们肯定要从最后一个元素往前选,假设之前已经有 cnt 个元素,已经遍历到了第i个前缀,若a[i-cnt] > cnt则多选一个元素一定不会亏。

code
#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int n, m, k, t;
int a[N];void solve()
{cin >> n;for(int i = 1; i <= n; i ++) cin >> a[i];int cnt = 1;cout << cnt << " ";for(int i = 2; i <= n; i ++){if(a[i - cnt] > cnt) cnt ++;cout << cnt << " ";}puts("");
}int main()
{cin >> t;while(t --) solve();return 0;
}
http://www.lryc.cn/news/31899.html

相关文章:

  • 2022年MathorCup数学建模B题无人仓的搬运机器人调度问题解题全过程文档加程序
  • 开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾
  • MSDP实验配置
  • 惊!初中生也来卷了……
  • kafka相关配置介绍
  • 【PyTorch】教程:torch.nn.Hardtanh
  • 神垕古镇景区5A级十年都没有实现的三大主因
  • react函数组件常用的几个钩子函数useState、useEffect、useRef、useCallback
  • 4N60-ASEMI高压MOS管4N60
  • 现代神经网络(VGG),并用VGG16进行实战CIFAR10分类
  • Java代码弱点与修复之——Dereference null return value(间接引用空返回值)
  • 【冲刺蓝桥杯的最后30天】day3
  • 光伏发电嵌入式ARM工控机
  • 推荐 7 个 Vue.js 插件,也许你的项目用的上(五)
  • 1.1基于知识图谱的项目实战:优酷搜索泛查询意图优化
  • [java Spring JdbcTemplate配合mysql实现数据批量删除
  • uos 20 统信 fprintd 记录
  • vue移动端h5,文本溢出显示省略号,且展示‘更多’按钮
  • php宝塔搭建部署实战兰空图床程序网站PHP源码
  • 软件测试面试:拿到一个产品(版本)如何开展测试?
  • 【Opencv项目实战】图像的像素值反转
  • Swagger生成接口在线文档
  • 104.第十九章 MySQL数据库 -- MySQL主从复制、 级联复制和双主复制(十四)
  • 第一次使用Python for Qt中的问题
  • .Net Core WebApi 在Linux系统Deepin上部署Nginx并使用(一)
  • Java——打开轮盘锁
  • JavaScript(2)
  • FFMPEG 安装教程windowslinux(CentOS版)
  • 【虹科案例】虹科任意波形发生器在量子计算中的应用
  • 【强化学习】强化学习数学基础:随机近似理论与随机梯度下降