奇怪的机器|暴力枚举法
2024-07-15 04:42:05
发布于:意大利
52阅读
0回复
0点赞
第三题 - A24632.奇怪的机器
题目链接跳转:A24632.奇怪的机器
数据量不大,直接模拟和暴力枚举就行了。枚举全部数字变成 所需要花费的最少时间。
在枚举的过程中需要注意的是,由于在一秒之内小码君只能按下一个按钮,因此如果一个数字 在某一列出现了 次,那么当枚举 的时候,需要多经过 轮才可以把这些转盘(在同一列都出现了 次)变成相同的数字。
本题的 AC 代码如下:
#include <iostream>
#include <algorithm>
using namespace std;
int n, result = 0x7f7f7f7f;
string arr[105];
int query(int pos, int num){
int ans = 0;
for (int i=1; i<=n; i++){
if (arr[i][pos] == num + '0')
ans += 1;
}
return ans;
}
signed main(){
cin >> n;
for (int i=1; i<=n; i++) cin >> arr[i];
// 暴力枚举:枚举全都变成数字 $k$ 所需要花费的最小时间。
for (int k=0; k<=9; k++){
int ans = 0;
for (int i=1; i<=n; i++){
// 查询某个数在某一列出现了几次。
int tmp = query(arr[i].find(k + '0'), k);
int time = (tmp - 1) * 10 + arr[i].find(k + '0');
ans = max(time, ans);
}
result = min(result, ans);
}
cout << result << endl;
}
全部评论 1
掉排位分了……呜呜呜
2024-07-15 来自 广东
0
有帮助,赞一个