1 条题解
-
0
自动搬运
来自洛谷,原作者为

幻想繁星
你我终于做了永远的哑巴,再给不出半个回答|已关闭私信接收搬运于
2025-08-24 22:26:17,当前版本为作者最后更新于2022-08-16 10:58:07,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
蒟蒻的第一篇题解
首先预处理 到 每个数字所用的段数,分别为:。则会为接下来的枚举提供极大的便利。
int n[10]={6,2,5,5,4,5,6,3,7,6};
然后就是枚举,枚举每一个分钟点一共有 种情况,完全可以跑过去。枚举时统计该分钟点的段数,如果段数等于题目输入的 ,则输出该分钟点,并结束程序。如果枚举完所有分钟点还没有找到,就输出“Impossible”。
(灰常简单有木有)
代码如下:
#include<bits/stdc++.h>//万能头 using namespace std; int n[10]={6,2,5,5,4,5,6,3,7,6},a,s;//预处理和定义 int main() { cin>>a; for(int i=0;i<=23;i++) for(int j=0;j<60;j++)//开始枚举 { s=0;//s统计段数 s+=n[i%10];//累加小时的个位 s+=n[i/10];//累加小时的十位 s+=n[j%10];//累加分钟的个位 s+=n[j/10];//累加分钟的十位 if(s==a) { printf("%02d:%02d",i,j);//输出(printf可以自动补零,省去了if判断) return 0; } } cout<<"Impossible";//没有找到,就输出"Impossible" return 0; }
- 1
信息
- ID
- 6214
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者