牛客2021年愚人节比赛 部分题题解

愚人节欢乐多。
这场比赛娱乐为主,但是还是觉得自己好菜。
有些题目感觉莫名其妙的

  • A 出愚人节欢乐赛

题目描述很长,不过都是废话。我把无可奉告复制了一下,交了上去AC了。
不过好像其实啥都不用输出。

  • B 你这题,狗屁不通

这题属实恶心,看了眼毫无营养的题目描述,感觉应该是输出当前时间,然后看提示是UTC时间。
百度了一下,wa了。
换了几个模板,还是wa。想着会不会是04/01,交上去还是wa
就这?
结束后,看了别人代码,发现确实是04/01,在原代码上加了0,A了。
今天白天再把昨天A的代码交了,又Wa了。
后来发现,应该是根据当前的时间加0的。跟你当前提交时间有关系。例如现在是10点8分,那么UTC是2点8分,需要输出02:08。假如当前是20点18分,UTC是12点18分,就不需要加0 了
属实玄学。
代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
   struct tm* local;
    time_t t;
    t = time(NULL);
    local = gmtime(&t);
   // local->tm_year + 1900 //就是现在的2020年
   // local->tm_mon + 1 //就是现在的11月
   // local->tm_mday //日
   // local->tm_hour //时
   // local->tm_min //分
   // local->tm_sec //秒
    cout<<local->tm_year + 1900<<"/"<<0<<local->tm_mon + 1<<"/"<<0
    <<local->tm_mday<<' '<<0<<local->tm_hour<<":"<<0<<local->tm_min<<":"
    <<local->tm_sec<<endl;
   return 0;
}

-C & I

两题要结合着做。
参考了评论区大佬的二分做法,在C题中二分查找0-1000的数字,如果在范围里范围一个wa,否则可以让评测机返回一个tle。这样子就可以二分出来了。
在I题中输入字符串,然后枚举一下每一位的字母,方法同上。
答案是dbcac 和 514
下面是枚举的骗数据代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    cin>>s;
    if(s[4]=='c')while(1);
    return 0;
}

-D qcjj的蝴蝶结1

比较正常的一题,根据题意,我们可以枚举所有数,答案就是奇数出现的次数。

#include<bits/stdc++.h>
using namespace std;
int a[1000040];
int main()
{
    int T;
    cin>>T;
    int n;
    while(T--){
        cin>>n;
        int ans=0;
        for(int i=1;i<=n;i++){
            int x;
            cin>>x;
            if(x%2)ans++;
        }
        cout<<ans<<endl;
    }
    return 0;
}
  • G 诡异的七重咒印

找规律的题目,规律也比较明显,但是最后两个我不会做。。
从上往下:
n
2 * n-1
n^2
2^(n-1)
2^(2^(n-1)) ,这里的2^(n-1)用快速幂的时候取模为mod-1,原因可参考欧拉降幂
1 or 2
11111..11转化成99999..99/9,即(10^n-1)/9,除法可以用逆元

代码:

#include<bits/stdc++.h>
using namespace std;
long long mod=1e9+7;
long long calc(long long a,long long b,long long mod){
    long long ans=1;
    while(b){
        if(b%2)ans=ans*a%mod;
        a=a*a%mod;
        b=b/2;
    }
    return ans%mod;
}
int main()
{
    long long n;
    cin>>n;

    cout<<n%mod<<endl;
    cout<<((2*n)%mod-1+mod)%mod<<endl;
    cout<<((n%mod)*(n%mod))%mod<<endl;
    cout<<calc(2,n-1,mod)<<endl;
    cout<<calc(2,calc(2,n-1,mod-1)%mod,mod)<<endl;
    if(n%2)cout<<1<<endl;
    else cout<<2<<endl;
    cout<<(calc(10,n,mod)-1+mod)*calc(9,mod-2,mod)%mod<<endl;
}

-H 氵林女女的记录本

猜歌名的赶脚。。
第一首歌猜不出来,其他都猜出来了。尽力了。许嵩的歌不咋听
第一首是许嵩的《降温》 “今日消费是281人民币”
第二首是陈奕迅的《1874》 “情人若 寂寥地出生在1874
第三首是李宗盛?的《越过山丘》 “回到二十岁狂奔的路口 做个形单影只的歌手”
第四首是那英、王菲的《相约一九九八》 “来吧 来吧 相约一九九八
第五首是周杰伦的《发如雪》 “繁华如三千东流水”

代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    cout<<281<<' ';
    cout<<1874<<' ';
    cout<<20<<' ';
    cout<<1998<<' ';
    cout<<3000<<endl;
    return 0;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务