牛客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)