Codeforces Round #836 (Div. 2) A.B.C.D
创始人
2024-02-28 17:58:12
0

A. SSeeeeiinngg DDoouubbllee

题目链接:

Problem - A - Codeforces

题面:

题意:

给定一个字符串,把这个字符串每个字符重复两遍后重新排序一定是一个回文串,问这个回文串是什么

思路:

题目是多种答案的,只要符合一个即可,那么我们可以把每个字符的数量统计重来,然后从小到大输出一遍,在从大到小输入一遍

例如:abc

变成:abccba即可

代码:

#include
using namespace std;
int mp[30];int main(){int t;cin >> t;while(t--){string s;cin >> s;memset(mp, 0, sizeof(mp));for(int i = 0; i < s.length(); i++){mp[s[i] - 'a']++;}for(int i = 0; i < 26; i++){for(int j = 0; j < mp[i]; j++){cout << char(i + 'a');}}for(int i = 25; i >= 0; i--){for(int j = 0; j < mp[i]; j++){cout << char(i + 'a');}}cout << endl;}return 0;
}

B. XOR = Average

题目链接:

Problem - B - Codeforces

题面:

题意:

构造一个长度为n的数组,这个数组的平均数和异或值相等

思路:

如果这个数组的长度为奇数,那么我们可以分成n-1和1,n-1一定是偶数,如果这n-1个数全部相同,那么这n-1个数的异或值为0,那么异或最后那个数就那个本身(0 ^ 任意数 = 任意数),所以我们只需要让这n个数相同即可

如果这个数组的长度为偶数,那么如果这n个数全相同,那么异或值为0,所以分开讨论

我们把n个数拆分成2个和n-2个,n-2一定是偶数,那么这n-2个数相同的异或值为0,n个数的异或值就是那两个数的异或值,设n-2个数都是x,那么a[0] + a[1] = 2 * x, a[0] ^ a[1] = x即可,凑一下得出a[0] = 1, a[1] = 3, x = 2

代码:

#include
using namespace std;
int mp[30];int main(){int t;cin >> t;while(t--){int n;cin >> n;if(n & 1){for(int i = 0; i < n; i++){if(i != 0){cout << " ";}cout << 1;}cout << endl;} else{cout << "1 3";for(int i = 0; i < n - 2; i++){cout << " 2";} cout << endl;}}return 0;
}

C. Almost All Multiples

题目链接:

Problem - C - Codeforces

题面:

题意:

构造一个n的排列,使得a[1] = x, a[n] = 1, a[i] % i== 0,排序的字典序尽量小,如果可以输出这个排列,不可以就输出-1

思路:

如果只有a[i] % i == 0这个条件,那么只需要把1-n输出一遍即可,但是a[1] = x, a[n] = 1,那么我们不考虑字典序最小我们只需要考虑n%x ==0?即可(我们要把n给a[x]),如果满足,那么就可以构造,如果不满足就出-1,这个时候就但是需要考虑字典树最小

如8 2

应该出2 4 3 8 5 6 7 1

而不是2 8 3 4 5 6 7 1

所以我们对于2 ~ n - 1的位置,要先考虑i是否可以,如果不可以就考虑倍数,如果满足xx % i == 0 && n % xx == 0就可以把xx填在ai,这样子就可以满足字典序最小

代码:

#include
using namespace std;
int arr[200005];
bool vis[200005];
int main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin >> t;while(t--){memset(vis, 0, sizeof(vis));int n, x;cin >> n >> x;arr[1] = x;arr[n] = 1;vis[1] = 1;vis[x] = 1;if(n % x != 0){cout << -1 << endl;continue;}for(int i = 2; i <= n - 1; i++){if(vis[i] == 0){arr[i] = i;vis[i] = 1;}else{for(int j = 2; j * i <= n; j++){if(n % (j * i) == 0){arr[i] = i * j;vis[i * j] = 1;break;}}}}for(int i = 1; i <= n; i++){if(i != 1){cout << " ";}cout << arr[i];}cout << endl;}return 0;
}

D. Range = √Sum

题目链接:

Problem - D - Codeforces

题面:

题意:

构造一个长度为n的数组(每个数不能重复),使得这个数组的最大值减去最小值 == 这个数组所有数字和的开根

思路:

最初的想法是让每个数等于n,那么根号n * n == n,我们只需要让max - min = n即可

设max = x,min = y, 

得到x + y = 2 * n, x - y = n

解得x = 3 * n / 2, y = n / 2.

如果n是奇数,那么x和y就不是整数,所以n为奇数不可用这个方法

如果n是偶数,那么min 就是 n / 2,max是3 * n / 2,中间n - 2个都是n,但是每个数不能重复,我们可以 n / 2 + 1. n / 2 + 2.... 3 * n / 2 - 2. 3 * n / 2 - 1这样子使得平均数为n即可

如果n是奇数,那么我们就可以把差值变成2n,那么数组和为4n^2,那么平均数为4n,那么min就是3n,max = 5n,那么数组就是3n, 3n+1,3n+2...(中间不是连续的)4n(同理)...5n-2.5n-1.5n

代码:

#include
using namespace std;
int arr[300005];
int main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin >> t;while(t--){int n;cin >> n;if(n & 1){arr[1] = 3 * n;arr[n] = 5 * n;int ans = (1 + n) / 2;arr[ans] = 4 * n;int cnt = 1;for(int i = 2; i < ans; i++){arr[i] = 3 * n + cnt;cnt++;}for(int i = ans + 1; i < n; i++){arr[i] = 8 * n - arr[n - i + 1];}}else{arr[1] = n / 2;arr[n] = n / 2 * 3;int ans = 1;for(int i = 2; i <= n / 2; i++){arr[i] = n / 2 + ans;ans++;}for(int i = n / 2 + 1; i < n; i++){arr[i] = 2 * n - arr[1 + n - i];}}for(int i = 1; i <= n; i++){if(i != 1){cout << " ";}cout << arr[i];}cout << endl;}return 0;
}

相关内容

热门资讯

常用商务英语口语   商务英语是以适应职场生活的语言要求为目的,内容涉及到商务活动的方方面面。下面是小编收集的常用商务...
六年级上册英语第一单元练习题   一、根据要求写单词。  1.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...