Codeforces Round 856 (Div. 2) A — C
创始人
2024-05-29 17:08:13
0

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
#includeusing 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
#includeusing 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

题目分析

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

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

code
#includeusing 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;
}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...