CF #764 Div.3(B ~D)
CF #764 Div.3
B题 Make AP
给定a b c
使其中一个数 乘 任意正整数m 问是否能构成成差数列
我们可以想到等差数列的性质
2b=a+c2b = a + c 2b=a+c
思路:分类讨论 a b c的三种情况
- 2b = a + c 直接构成等差数列
- 2b < a + c 说明b偏小了 (a + c) % (2 * b) == 0 ? YES : NO
- 2b > a + c 说明a或者c偏小了 ( (2b - a) % c == 0 || (2b - c) % a == 0 ) ? YES : NO
int main()
{std::ios::sync_with_stdio(false);cin.tie(0);int t;cin >> t;while(t--){int a, b, c;cin >> a >> b >> c;if(2 * b == a + c) cout << "YES" << endl;else if(2 * b < a + c) {if((a + c) % (2 * b) == 0) cout << "YES" << endl;else cout << "NO" << endl;}else if(2 * b > a + c) {if( (2 * b - a) % c == 0 || (2 * b - c) % a == 0 ) cout << "YES" << endl;else cout << "NO" << endl;}}return 0;
}
题C Division by Two and Permutation
给n个数 我们可以对任意一个数做除2操作 问是否能构成一个1~n的序列
思路: 用STL的set做很容易理解,每输入一个数,当它大于n时除以2,小于n时判断set中是否有该数,
若没有insert到set中,若有则继续除以2,若该数对于set中的数没有任何贡献,则必不满足条件。
int main()
{std::ios::sync_with_stdio(false);cin.tie(0);int t;cin >> t;while(t--){set<int> s;bool flag = true;int n;cin >> n;for(int i = 1; i <= n; i++){int x;cin >> x;while(x > n) x /= 2;while(s.count(x)) x /= 2;//已存在于集合当中if(x == 0) flag = false;//如果你一路除下来 你都不能成为序列中的一部分 就必然不能构成序列了else s.insert(x);}cout << (flag ? "YES" : "NO") << endl;}return 0;
}
题D Palindromes Coloring
给定字符串s,返回可以通过交换任意两个字符而形成的最短回文字符串的最长长度,但是必须将字符串分割成k个回文字符串
思路:因为提到了最短回文字符串 且一共有k个回文字符串 那么我们首先要想的就是尽量让回文字符串的长度平均
我们首先要从回文的定义入手 回文字符串 意味着对称字符的出现
将成对的字符平均分给k个回文字符串
剩下的多出来的字符 和 之前单个的字符 相加 若是大于k
最短字符串长度加一
int main()
{ios::sync_with_stdio(false);cin.tie(0);cin >> t;while(t--){int n, k;cin >> n >> kcin >> s;ms(letter, 0);for(int i = 0; i < s.size(); i++) letter[s[i] - 'a'] ++;int tot1 = 0, tot2 = 0;for(int i = 0; i < 26; i++){tot1 += letter[i] / 2;tot2 += letter[i] % 2;}int res = tot1 / k * 2;//成对的字母数量 / 子串数量if(tot1 % k * 2 + tot2 >= k ) res ++;cout << res << endl;}return 0;
}
CF #764 Div.3(B ~D)相关推荐
- CF#764(div.3A~D)dp进阶
CF#764(div.3A~D)&&dp进阶 CF#764(div.3) Problem - A - Codeforces 题意 一个数列,每次操作可以使这个数列中的任何数加1,问最少 ...
- CF #366(div.2) C 模拟,思维
CF #366(div.2) C. Thor 题意:一个手机n个联系人,有q个操作.每次给出ty和ai,如ty==1,表示收到ai的一条信息:如ty==2,表示将ai发的信息都看掉:如ty==3, ...
- CF #371 (Div. 2) C、map标记
1.CF #371 (Div. 2) C. Sonya and Queries map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...
- cf #823 Div.2(A~C)
Cf #823 Div.2 文章目录 Cf #823 Div.2 [A. Planets](https://codeforces.com/contest/1730/problem/A) [B. Mee ...
- cf #818 Div.2(A~C)
Cf #818 Div.2 文章目录 Cf #818 Div.2 [A. Madoka and Strange Thoughts](https://codeforces.com/contest/171 ...
- CF #683 div.2
CF #683 div.2 目前 ABCD A. Add Candies B. Numbers Box C. Knapsack D. Catching Cheaters 结尾 A. Add Candi ...
- cf #825 Div.2(A~C2)
Cf #825 Div.2 文章目录 Cf #825 Div.2 [A. Make A Equal to B](https://codeforces.com/contest/1736/problem/ ...
- edu cf #138 Div.2(A~D)
edu cf #138 Div.2 文章目录 edu cf #138 Div.2 [A. Cowardly Rooks](https://codeforces.com/contest/1749/pro ...
- CF#320 Div.2 总结
比赛网址:cf#320 Div.2 晚上11点开始的比赛,持续2个半小时.结束时有两道题题过了预测数据,分时是A题和C题. 比赛开始的时候,理所当然地从A题开始看起.A题比较容易,稍微分析一下就可以看 ...
最新文章
- iOS开发 BLE 蓝牙4.0
- 基础篇:如何做一名专业的软件测试工程师
- 第03课:Anaconda 与 Jupyter Notebook
- 【数据竞赛】从0梳理1场时间序列赛事!
- 参数控制c语言代码走向,C语言可变参数完全解读
- 正则表达式的20个小应用
- 不是架构的架构之四:业务层的实现与自动代理
- 基于链表的两个集合的差集
- C++Primer第四版 阅读笔记 第二部分 “容器和算法”
- swf游戏保存进度_关于flash游戏swf文件的修改
- 微信小程序-图片上传功能的实现
- Java人事管理系统设计
- Java300StudyNote(7)-Java各版本JavaSE、JavaEE、JavaME
- 服务器系统2019回滚2016,原版系统一键优化精简方案(Win10/Server2016/Server2019)
- xlsm文件格式和xlsm文件打开方法介绍
- 我们为何渐渐放弃了自己的梦想?
- PostgreSQL 9.6源码解析之XLOG生成
- linux用户的邮件存在哪里,在Linux系统中收发及查看邮件
- win10系统连打印机服务器中,win10连不上打印机怎么回事_win10系统连接不上打印机如何解决...
- 老式计算机组装教程,旧机械硬盘可以装新电脑上吗?台式电脑加新/旧机械硬盘+分区教程...