第一次写博客

本文介绍了 CodeForces 比赛 #438 的 A 题 BarktoUnlock 和 B 题 RaceAgainstTime 的解题思路及代码实现。A 题涉及字符串匹配,通过遍历和比较解决;B 题则需要判断时间点是否位于给定区间内。

大家好,我是challenged,我是一枚Acmer,一个蒟蒻,欢迎来到我的博客。之前考虑了好久,还是决定多写一写博客,不能整天浑浑噩噩的过着,老是一直刷题不总结是不行的。多总结才能获得更多。还有我会不定期的更新一些平时的学习新得和体会,请巨佬们多多指教。总之,欢迎各位大佬经常来逛逛。

昨晚的codeforces的一场比赛#438,我错过了时间没有去打,接下来只有去补题了。

A题 A. Bark to Unlock

题意:给一个长度为2的字符串s,然后判断是否能够通过n个字符串pi拼接从中截取某一段长度为2的字符串与原串s相匹配.

思路:遍历每个字符串,判断该字符串和原字符串是否相同,还有每个字符串的第一个字符和源字符串的第二个字符是否匹配,每个字符串的第二个字符和源字符串的第一个字符是否匹配,这样判断就好啦。

代码如下:

#include<bits/stdc++.h>
using namespace std;
char a[2],s,p;
char b[2];

int main()
{
    int i,j,m,n,k;
    cin>>a>>n;
    int flag=0;
    int flag1=0;
    for(i=0; i<n; i++)
    {
        cin>>b;
        if(strcmp(a,b)==0)
        {
            flag1=1;
            flag=1;
        }
        if(b[0]==a[1])
            flag=1;
        if(b[1]==a[0])
            flag1=1;
    }
    if(flag1&&flag)
    {
        cout<<"yes"<<endl;
    }
    else cout<<"no"<<endl;
    return 0;
}

B题  B. Race Against Time

题意:给出现在时间h:m:s,判断能不能从t到k这个点。(题意可能有些不明,大家看链接上的英文就好)

题解:直接判断时针,分针,秒针是同时在[t,k)这个区间内或者同时不在。(注意:t,k要去判定大小)

代码如下:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int i,j,n,m,k,s,t,h;
    while(cin>>h>>m>>s>>k>>t)
    {
        int ans=0;
        int k1=min(k,t);
        int t1=max(k,t);
        if(s>=k1*5&&s<t1*5) ans++;
        //cout<<ans<<endl;
        if(m>=k1*5&&m<t1*5) ans++;
        //cout<<ans<<endl;
        if(h>=k1&&h<t1) ans++;
        //cout<<ans<<endl;
        if(ans==0||ans==3)
            cout<<"yes"<<endl;
        else cout<<"no"<<endl;
    }
    return 0;
}

先更新到这里吧,我先去补题去了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值