题目链接:Click here~~
题意:
给你一个lrc歌词文件,文件中,每行前面是若干个时间标签,当当前时间大于等于此标签且小于其他时间标签时,输出此行歌词。
然后给你一个时间,输出这个时间应该输出的歌词。
解题思路:
从这个时间向前找,直到找到某个时间在标签中出现过,然后输出所在标签的歌词。
由于时间格式特点,我们可以用一个int型变量储存它的状态i。
然后用一维数组tim[i]记录这个时间应该输出的歌词的序号。
细心些就好了。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 200
char str[N][2000];
char tim[1000005];
int loc[N],h,m,s;
bool judge(char *S)
{
if(*S!='[')
return 0;
for(int i=1;i<=2;i++)
if(!isdigit(*(S+i)))
return 0;
if(*(S+3)!=':')
return 0;
for(int i=4;i<=5;i++)
if(!isdigit(*(S+i)))
return 0;
if((*(S+4)-'0')*10 + (*(S+5)-'0')>=60)
return 0;
if(*(S+6)!='.')
return 0;
for(int i=7;i<=8;i++)
if(!isdigit(*(S+i)))
return 0;
if(*(S+9)!=']')
return 0;
return 1;
}
int to(int a,int b,int c)
{
return a*10000 + b*100 + c;
}
void div(int id,char *S)
{
int len = 0;
while(judge(S+len))
{
sscanf(S+len,"[%d:%d.%d]",&h,&m,&s);
tim[to(h,m,s)] = id;
len += 10;
}
loc[id] = len;
}
int main()
{
int n,Q,ans;
strcpy(str[0],"**************");
while(~scanf("%d%d%*c",&n,&Q))
{
memset(tim,0,sizeof(tim));
for(int i=1;i<=n;i++)
{
gets(str[i]);
div(i,str[i]);
}
while(Q--)
{
ans = 0;
scanf("%s",str[n+1]);
sscanf(str[n+1],"%d:%d.%d",&h,&m,&s);
for(;h>=0;h--)
{
for(;m>=0;m--)
{
for(;s>=0;s--)
{
int x = tim[to(h,m,s)];
if(x != 0)
{
ans = x;
goto end;
}
}
s = 99;
}
m = 59;
}
end: for(int j=loc[ans];str[ans][j];j++)
putchar(str[ans][j]);
putchar('\n');
}
}
return 0;
}
分享到:
相关推荐
NBUT 2020 MADE I Boat Design writer:zzzcd0x 思路 根据板材长度以及合理的长宽比等因素设定A和B的范围 第一步是粗筛,即枚举A的范围内每一个长度为0.6的区间的中点,计算中点位置的A、B、H对应的船体底面方程的...
1001 1002 1003 1004 1005 1006 1007 1008 1011 1012 1013 1014 1015 1017 ...1189 1190 1191 1195 1207 1218 1221 1251 1256 1258 1276 1287 1298 1306 1308 1316 1321 1322 1323 1324 1338 1354 1376 1401 1416 1423 ...
Face_recognition_NBUT 项目简介: 本项目是基于宁波工程学院机器人学院的MADE2人脸识别项目 人脸识别采取PCA降维算法 本项目最后的aff_faces人脸集的识别正确率在96%左右 作者才疏学浅,如有错误请不吝指正 项目...
此回购包含OJ Hunt的源代码 简体中文版: 建造状态 产品特点 查询oj的ac / submissions 存储查询历史 正在开发中 电子邮件支持 等级 …… ...搜寻器:搜寻器来查询OJ。...crawler-api-backend:提供查询api的微服务 ...
N久之前的一个坑——用 Node.js 来重构 NBUT 的 Online Judge,包括评测端也得重构一遍。(至于什么时候完成大家就不要关心了,(/‵Д′)/~ ╧╧ 总之我们现在要做的其实简而言之就是——用C/C++来实现 Node.js ...