牛客2022年愚人节比赛,10题做法完整版
题目
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
- 点赞
- 收藏
- 关注作者
评论(0)