牛客2022年愚人节比赛,10题做法完整版

举报
小哈里 发表于 2022/05/10 22:43:29 2022/05/10
【摘要】 题目 A 天天好心情 点击查看 2533/2819 通过 B Falfa学群论 点击查看 22/139 通过 C 最短路 点击查看 34/180 通过 D 小红的简谱标记 点击查看 89/2202 通过...

题目

A 天天好心情 点击查看 2533/2819 通过
B Falfa学群论 点击查看 22/139 通过
C 最短路 点击查看 34/180 通过
D 小红的简谱标记 点击查看 89/2202 通过
E Capture The Flag 点击查看 53/599 通过
F 小沙的hello world! 点击查看 64/258 通过
G 好心情没了 点击查看 0/34900 未通过
H 须弥空荡荡,草神在人间! 点击查看 237/25184 通过
I 如何计算一个很大的次幂这个方法我们已经有所了解 点击查看 772/3022 通过
J 小红的自画像 点击查看 290/1236 通过

题解

A 随便输出一个字符串

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;

int main(){
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cout<<"开心";
    
    return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

B 结论可以在 wiki 上查到

#include<bits/stdc++.h>
using namespace std;
int main(){
    map<string, string>mp;
    mp["B"]="4154781481226426191177580544000000";
    mp["Co_1"]="4157776806543360000";
    mp["Co_2"]="42305421312000";
    mp["Co_3"]="495766656000";
    mp["F_1"]="808017424794512875886459904961710757005754368000000000";
    mp["F_2"]="4154781481226426191177580544000000";
    mp["F_3"]="90745943887872000";
    mp["F_5"]="273030912000000";
    mp["Fi'_{24}"]="1255205709190661721292800";
    mp["Fi_{22}"]="64561751654400";
    mp["Fi_{23}"]="4089470473293004800";
    mp["H-H-McK"]="4030387200";
    mp["H-J-McL"]="50232960";
    mp["H-N"]="273030912000000";
    mp["H-S"]="44352000";
    mp["Ha-J-W"]="604800";
    mp["He"]="4030387200";
    mp["J_1"]="175560";
    mp["J_2"]="604800";
    mp["J_3"]="50232960";
    mp["J_4"]="86775571046077562880";
    mp["Ly"]="51765179004000000";
    mp["Ly-S"]="51765179004000000";
    mp["M"]="808017424794512875886459904961710757005754368000000000";
    mp["M(22)"]="64561751654400";
    mp["M(23)"]="4089470473293004800";
    mp["M(24)'"]="1255205709190661721292800";
    mp["M_{11}"]="7920";
    mp["M_{12}"]="95040";
    mp["M_{22}"]="443520";
    mp["M_{23}"]="10200960";
    mp["M_{24}"]="244823040";
    mp["McL"]="898128000";
    mp["O'N"]="460815505920";
    mp["O'N-S"]="460815505920";
    mp["R-C-W"]="145926144000";
    mp["Ru"]="145926144000";
    mp["Suz"]="448345497600";
    mp["Th"]="90745943887872000";

    string s;  cin>>s;
	cout<<mp[s]<<endl;
	return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

C 可能是个dp,没仔细看

D 可以唱出来(bushi),大多数都是5和7

#include<bits/stdc++.h>
using namespace std;
int main(){
    cout<<"7\n5\n3\n5\n5.5\n7";
	return 0;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

E CTF找flag

#include<bits/stdc++.h>
using namespace std;
int main(){
    cout<<"ksdikne";
	return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

F (盲猜)数据没有奇怪的字符,毕竟没出现的字符连打印规则也不知道
那么就把输入跟样例里有的字符对比一下,如果有就输出,没有就不管,就可以了。
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
string s[6] = {
    "#*********#####*****##*##*****#***####*#****#*#*###**#########**###*####*#####*######*****#***######*#*#*############*##*###*#***#***************##*******#*****#***#*#####***#*********************###**###*###*#*###*#*#*######*###*#***#*###*#*###*#*#**********#**********##*#*#****##*####*##*###*##**###*#######*******##***###***####*####*##*****",
    "#*##**###*#########*##*##*###*#*#*###**#*###***###**#####*#####**##*###**####**######*#####*#########***######*****#*###*###**#*#**####*####*########**###******##*##*#######*#*######*##*###**###*#*#*#*###*###*##*#*#*#*####*##**#**###*#**##**#*#**#*#**###**###*###*#*###*******#######*###*##*###*###*##*#*##########***#*##**##*#####*#*####*#*####",
    "#*##******#####**********###**##*#*##*##*###**####*#############*##*####*###*#*######*******##########*##*****#####*####*****#***#***************####*****#**#**##*##*######**#*#***##*##*#*#**###*##*##*###*###*###*############**#**###***#*#*###*#*#*#*****#****###*##*****#*#*##***########*###*#*####################*##*####**#*#####***#####**####",
    "#*##**###*#########*##*####**##*#*##**##*###***###**#####*#####**##*####*##*****#########*#*######*##***######*****#*###*###*##*#**###**####*########**###******##*##*#########*#*#*##*##*##***###*#*#*#*###*#*#*###*#########*##*#*#*###*#*##**#####*#*#**#*##*#####*#######******####*###########*#*####################*#*#**###***####*###*###*#*####",
    "#*********#####*****##*##*****#***##*###****#*#*###**#########**###*##*****###*###*##*****#***###**#*#*#*############*##*###*#***#******####*****##*******#*****#***#*****##*##*****##*##***********###******#***###*#########*##*#*#*#***#*###*######*#*#*##*#*####***********#*###***########*####*############*****####**##**####***###*###*##*##*****",
};
string gg = "08 3+2&/DK(:)|14.5{,*-=<H$6FE]B@IL?GTQOXUJY\";M\}N~WRPZ9#S`!V'^_7%\\[A>C";
string g[6];

int cmp(int i, int j) {
	for (int k = 0; k < 5; k += 1)
		for(int l = 0; l < 5; l += 1)
			if(s[k][i + l] != g[k][j + l]) {
				return 0;
			}
	return 1;
}
int main () {
	for(int i = 0; i < 5; i += 1) cin >> g[i];
	for(int i = 0; i < g[0].size(); i += 5) {
		for(int j = 0; j < s[0].size(); j += 5)
			if(cmp(j, i)) {
				cout<<gg[j/5];
			}
	}
	return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

G 题目的MD5比较难算,可以暴力枚举数字每次算MD5比较,可以发现42的si shi er的MD5等于0abf0252b0787836cd5adb5b0575adfd,因此WA42发可以参与抽奖
请添加图片描述
在这里插入图片描述
请添加图片描述

H 考验二刺猿浓度了,做得出4~6题就可以rand60次左右出结果。
请添加图片描述

#include<bits/stdc++.h>
using namespace std;
int main(){
    cout<<"DEBADCABCB";
    return 0;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

I 暴力打表可以发现后面的数都是e即2.718不会变了
scanf读个前面几位然后直接输出就行。

//打表
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
typedef long long LL;

LL pows(LL a, LL x){if(x==0)return 1; LL t = pows(a, x>>1);if(x%2==0)return t*t;return t*t*a;}

int main(){
    for(int i = 1; i <= 500000; i++){
        double x = i;
        double k = (x + 1) * 1.0 / x;
        double ans = pow(k, x);
        cout<<i<<": ";
        printf("%.3lf\n", ans);
    }
    return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
//AC
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
typedef long long LL;

LL pows(LL a, LL x){if(x==0)return 1; LL t = pows(a, x>>1);if(x%2==0)return t*t;return t*t*a;}
void f(LL x){
	double k = (x + 1) * 1.0 / x;
	double ans = pow(k, x);
	printf("%.3lf\n", ans);
}

int main(){
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int x;  scanf("%9d",&x);
    f(x);
    return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

J 可以根据样例发现,2倍和3倍的时候就是1的时候每个字符输出n次,每行输出n遍,所以套两个循环就行。
难度在于把样例1存到字符串里,可以每次getline读进来,然后输出到文件,每行收尾加个",最后加个逗号,然后拷贝出来当字符串数组用。
对于转移字符\,直接替换所有\为\\即可。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
string s[45] = {
"@@@@@@@@@@@@@@@@@@@^              ,]]OO[[[[[[[O]]`                                   .....",
"@@@@@@@@@@@@@@@@@@@@^       ,//[.,]]]]]*.***....    ,[\\`                              ....",
"  \\@@@@@@@@@@@@@@@@@@^  ]@@@@@OOoooooOO@@@@@\\],.... . .  ,\\`                           ...",
"]]]]`\\@@@@@@@@@@@@@@@@@@@@@OOOOo/[[[[[[\\[@@@@@@@@].... ..    \\`                         ..",
"@@@@@@@@@@@@@@@@@@@@@@@@@[....................,[O@@@\\ .   .    ,\\......                  .",
"@@@@@@@@@@@@@@@@@@@@@`.o`..,*...........**. ...... ,\\@@`    .     .   .......            .",
"@@@@@@@@@@@@@@@@@/`,`.o`................... . ... ..  .\\@`    .     \\..      .....        ",
"@@@@@@@@@@@@@@@/`*`/.*^..................*. . .. ..  .   ,\\     .    ,\\,/``*.             ",
"@@@@@@/`.=O@@`/^`=,..=^..........*......... ...  ..    .   \\` ... ...  ,`\\OOoo\\/.].       ",
"@@@@`.. /\\@^/oo=.O...=*...........,`...*.. ......  ..   .   .\\.\\` ...... \\.*[oOOOooo\\]`   ",
"@` ....@=@/o\\o^^.O...]^*`......*....*,.** .......  .  .. .    \\ ... ..... \\....**[\\oooo\\=\\",
"OOOOOO@/OO//o/O..^.*.[=^..^......*...,*` .....  .. . .. ....   \\,`.. ..... =.....****,\\^oo",
"OOOO\\^*/,**[o`O..^ ...`,`.=.*......*`..,`\\....    ...  ...... . \\..O`   ... ......*****,*,",
"O/,`/*=``**^*`=..^ .....*`.,.........,` .,`\\. .   .....  ..... . \\....\\ ,,.. =]`...*******",
",*^o**/,*`./,o=..=........`=^`,`....   .\\` ,\\\\`. . ..... .. ..... \\.....].. ..\\  `..,****,",
"``=^*=*`,**=*..^.,`.........=/\\ \\` .     ....,[/\\....... ....,`...,/\\]*`.,`` =.^ =.......*",
"**o**^*`o**=`..\\..^..........\\*,. \\   ..  . . ...`,\\... `... .\\\\.. ,\\*\\...  ,,`.^*..  ....",
"*=^**^=*^**.,..,^.=^........ .,..\\. .................. /`.... =.=`. ..,,[O]*,`[]...^      ",
"*/**=`=*^***.\\../..``   ..    .`...*` ...... ....... ,`.    . =...^ .*...,`O.  ..,^       ",
"*o**=*==^**.=/^..,.=`\\.. ..... .`  ..,\\` .... ...../`.      . =`...`.....^...,\\*..\\       ",
"*o,^=*==^*`,,Oo^.*,.\\.,`...,.....\\    ...[.]....*]]].       .............^.. =*,\\  ,`     ",
"`o=^=*\\=^.O*.=\\,^.*,`\\..,`....,\\`.,`      ..,`.  ,]..       .........   ,\\... =`*,\\  =`...",
"*o=^=*,=/^O*.=O.*...*\\\\*..,\\`.....   . ..`/`.]/@@O@@OO@@@@\\[[.. .....,`,` ,.. ,.\\...[]..,`",
"]O/\\//oOO*O...O***,`.*,o..`..,\\`  ....,]=`.,OO@/@\\OOO. =],\\.=.. .. . .   ` ... \\. `.***., ",
".=OOoO\\OO,=^..=^*. .,,..[`..\\]^,`,[**.... /O/`.=\\oO\\OO[OO`, ^. .. ....,... ,....=`. [`....",
"..@/OOO\\O^=O...\\*. .. .,..=]\\.....[`...  ..`.. =/^*\\OO^.=^ =....    .*. ,  O... ..*..  ...",
"..=@=OO^\\O,O^..=`/.                             \\`      =..O.....  ..  .* =.,\\`.  ...,.   ",
"...\\/OOO=\\^=O`..O`                                \\....,.,......  .  ... ,^*.....`[\\/,[`  ",
"..,=@/\\O\\^O=/\\`.,^.                                       ...... . .    ,[`\\`....... .....",
".=o=O/O/O^^OO,O`.=`                                       ,...... .^  .**..,\\.\\`.... .....",
"\\[/*O=O].\\/^O^`\\/..       ,[...                           ^ ....  =*Oo*****..**,..`.  . ..",
",`,`,O\\\\O\\`..`,[[..\\.    ../@@@\\.                        .^ ...  ./**\\\\***,`......`*...../",
"**\\**=O^*,\\O\\]]][,\\.\\,` ./@@/       .                    .^ ...  /^`**,O...*.........  .` ",
"**,***=O***,\\\\^O^,`\\.\\,\\,@/                              .o ... /O^*`***\\`..**....... /   ",
"*******,\\.**..\\O^,]`\\.[,O^                   ,...  \\     .=`  . \\O^*****/*\\`..*,....,`  ,/",
"*.*******.../\\/^`\\^O\\^\\.\\\\\\               ,`.........     .\\.    ,O`o,***,,`\\`..*\\/` ,/`..",
"*****...,/[/oo//o\\/,/`,^O].\\`             \\.........       ,O`. .   [...***`**,\\/.]/^**...",
"...]/O\\/ooooOo\\//.,^^,*^Oo=OO`              ,.....        =`,*\\` ....  .....`,*/`[Oo\\`]*/`",
"O\\]o\\]o\\\\/OO[\\...=\\\\**=^Oo.Oo/\\`                         O,``*/  ......,]//`,`\\]`****[/...",
"O`..,O[o.....     ,[\\]=`O\\[[``..,[\\`                   /`[/*][.        .,\\/\\\\`*****,/.....",
"  [\\/oO`..,]`...   ..,^`,,**]/O/[\\]..,OOO\\]]`..      /`\\]/`           . . ,\\o/\\]]][.,,*`  ",
"     \\^/`**.         o*,//`=.OoO`**=`**,OooO\\O,,*,\\,=O/\\..         ....       ,O`       .`",
"       \\.**.        =/\\^***^.=OO^*]]O,//[/[*.*.=`/[[O,o=\\*      ...         .,        ....",
"        \\`*.       =o`O***=`..=OO[^....\\.....*/\\/**o\\\\oo=O               `  `    ........."
};

int main(){
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    // freopen("task.txt","w",stdout);
    int n;  cin>>n;
    for(int i = 0; i < 45; i++){
        for(int kk = 0; kk < n; kk++){
            for(int j = 0; j < s[i].size(); j++){
                for(int k = 0; k < n; k++){
                    cout<<s[i][j];
                }
            }
            cout<<"\n";
        }
    }
    return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

文章来源: gwj1314.blog.csdn.net,作者:小哈里,版权归原作者所有,如需转载,请联系作者。

原文链接:gwj1314.blog.csdn.net/article/details/123908079

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。