天勤考研算法练习赛题目-天勤考研算法练习赛(2)
时间: 2023-11-10 17:48:14 浏览: 97
天勤考研算法练习赛题目-天勤考研算法练习赛(2)是一道编程题,题目的主要内容是判断给定的物品清单中哪些物品可以被"变出",哪些物品不能被"变出"。物品的命名规则如下:
1. 物品的名称仅由字母(大小写均可)和数字组成。
2. 如果名称中有数字,则规定连续的数字构成一个正整数,并且所有构成的正整数都必须是素数。
根据给定的规则,我们需要判断每个物品的名称是否符合变出的规则。物品名称中只要包含了除字母和数字以外的字符,就不能被变出。
你可以通过编写一个程序,遍历物品清单中的每个物品名称,检查是否包含非字母和数字的字符,如果包含则判定为不能被变出,否则判定为可以被变出。最后将判断结果输出即可。
相关问题
天勤考研算法练习赛题目-天勤考研算法练习赛
天勤考研算法练习赛题目-天勤考研算法练习赛是一个考察算法设计和实现能力的竞赛。题目中给出了一组关于球赛开始和结束时间的数据,要求选出能够参与的最大球赛数量。
具体的实现代码如下:
```c++
#include<iostream>
#include<queue>
#include<algorithm>
#include<functional>
#include<cstdio>
const int MAXN = 100;
using namespace std;
int main() {
#ifdef ONLINE_JUDGE
#else
freopen("D:\\in.txt", "r", stdin);
freopen("D:\\out.txt", "w", stdout);
#endif
int n(0);
while (cin >> n) {
if (n == 0)
break;
pair<int, int> itv[MAXN];
for (int i = 0; i < n; i++) {
cin >> itv[i].second >> itv[i].first;
}
sort(itv, itv + n);
int ans(0), t(0);//t是最后所选工作的结束时间
for (int i = 0; i < n; i++) {
if (t <= itv[i].second) {
ans++;
t = itv[i].first;
}
}
cout << ans << endl;
}
return 0;
}
```
这段代码主要是通过排序给出的球赛时间数据,然后遍历选取能够参与的最大球赛数量,并输出结果。
算法的核心思想是贪心算法。按照球赛结束时间从小到大排序,然后遍历排序后的数据,将能够参与的球赛数量加一,并将最后一场参与的球赛的结束时间作为下一场比赛的开始时间。最后输出能够参与的最大球赛数量。
这样的算法设计可以保证选取的球赛数量最大,并且具有较高的效率。
阅读全文