- 2022-03-28 11:01
*views 4*- Blue Bridge Cup
- C++

First question ：

Problem description

Here is an example 25 that 's ok 25 Alphabetic matrix of columns , All by letters A and B form .

AAAAAAABABBAABABABAAAAAAA

ABBBBBABBAABBBBBABABBBBBA

ABAAABABBBABAABBBBABAAABA

ABAAABABBBBBAABAABABAAABA

ABAAABABBABABBABABABAAABA

ABBBBBABBBABAABBBBABBBBBA

AAAAAAABABABABABABAAAAAAA

BBBBBBBBABAABABBBBBBBBBBB

AABAABABBAAABBAAABABBBBBA

ABBABABBBABBAAAABBBBAAAAB

BBBBAAABABAABABAABBBAABBA

BBAABABABAAAABBBAABBAAAAA

ABABBBABAABAABABABABBBBBA

AAAABBBBBABBBBAAABBBABBAB

AABAABAAABAAABAABABABAAAA

ABBBBBBBBABABBBBABAABBABA

ABBBAAABAAABBBAAAAAAABAAB

BBBBBBBBABBAAABAABBBABBAB

AAAAAAABBAAABBBBABABAABBA

ABBBBBABBAABABAAABBBABBAA

ABAAABABABBBAAAAAAAAAABAA

ABAAABABABABBBABBAABBABAA

ABAAABABBABBABABAABAABAAA

ABBBBBABABBBBBABBAAAABAAA

AAAAAAABAABBBAABABABBABBA

How many letters are there in this matrix A?

#include<bits/stdc++.h> #define ll long long using namespace std; char s[625];

void solve() { cin >> s; ll ans = 0; for (int i = 0; i < 625; i++) { if (s[i]

== 'A') ans++; } cout << ans; } int main() { solve(); return 0; }

open txt Delete all the carriage returns in the text and read the output answer

If a digit of an integer contains 2 , Then call this number one “ most 2 number ”. for example ：102,2021 Are the most 2 number .

Excuse me 1（ contain ） reach 2021（ contain ） in , How many are the most important 2 number .

#include<bits/stdc++.h> #define ll long long using namespace std; bool

zui2(int a) { while(a) { int t = a % 10; a /= 10; if (t == 2) return true; }

return false; } void solve() { int ans = 0; for (int i = 1; i <= 2021; i++) {

if (zui2(i)) ans++; } cout << ans; } int main() { solve(); return 0; }

Question 3 ：

Problem description

There is an integer A=2021, every time , You can add this number 1 , reduce 1 Or divided by 2, Where divided by 2 It is allowed only when the number is even .

for example ,2021 After one operation, it can become 2020,2022.

Another example ,2022 After one operation, it can become 2021,2023 or 1011.

Excuse me? ,2021 At least how many operations can it become 1.

Divide even numbers 2, Odd number -1.

#include<bits/stdc++.h> #define ll long long using namespace std; void solve()

{ int a = 2021; int ans = 0; while(a != 1) { if (a & 1) a--, ans++, cout << a

<< endl; else { a /= 2; ans++; cout << a << endl; } } cout << ans; } int main()

{ solve(); return 0; }

Question 4 ：

Problem description

For a n that 's ok m Column table , We can use the spiral method to fill in positive integers in the form in turn , We call the filled form a spiral matrix .

for example , One 4 that 's ok 5 The spiral matrix of the column is as follows ：

1 2 3 4 5

14 15 16 17 6

13 20 19 18 7

12 11 10 9 8

Excuse me? , One 30 that 's ok 30 Spiral matrix of columns , The first 20 Line number 20 What is the value of the column ?

Printing of spiral matrix , If not, the code can be used excel Make a watch ha ha .

ans：819

#include<bits/stdc++.h> #define ll long long using namespace std; int

dp[200][200]; void solve(int n) { int loop = n / 2; int mid = n / 2; int offset

= 1; int k = 1; int startx = 0, starty = 0; while (loop--) { int i = startx;

int j = starty; for (j = starty; j < starty + n - offset ; j++) { dp[startx][j]

= k++; } for (i = startx; i < n - offset + startx; i++) { dp[i][j] = k++; } for

(; j > starty; j--) { dp[i][j] = k++; } for (; i > startx; i--) { dp[i][j] =

k++; } offset += 2; startx++, starty++; } if (n & 1) dp[mid][mid] = n * n; for

(int i = 0;i<n;i++) { for (int j = 0; j<n;j++) cout << dp[i][j]<< " "; cout <<

endl; } } int main() { solve(30); return 0; }

Question 5 ：

Problem description

A binary tree has 2021 Nodes . The tree satisfies that the difference between the number of left subtree nodes and the number of right subtree nodes of any node is up to 1.

Define the depth of the root node as 0, The depth of the child node is more than that of the parent node 1.

Excuse me? , What is the maximum possible depth of the deepest node in the tree ?

According to the meaning of the title, this binary tree is close to a complete binary tree , According to the formula of complete binary tree , Depth is k The number of binary tree nodes is 2^k - 1;

2^11 = 2048, 2^10 = 1024; Simply draw a binary tree with three nodes 2^2 - 1= 3, Depth is 1（ Because the root node depth is 0）

So the depth of the answer is 11-1 = 10

Question 6 ：

Problem description

A monk wants to carry water , You can pick at most every time a Kilogram , The water tank can be installed at most t Kilogram , The water tank is empty at the beginning .

How many times does the monk have to pick at least to fill the water tank ?

Input format

The input line contains two integers a, t, Separated by a space .

Output format

The output line contains an integer , Indicates the answer .

sample input

20 2021

sample output

102

Scale and agreement of evaluation cases

For all profiling cases ,1 <= a <= 100,1 <= t <= 10000.

Simple simulation be careful n When it is an odd number +1

#include<bits/stdc++.h> #define ll long long using namespace std; int a, t;

void solve() { cin >> a >> t; int ans = t / a; if (t % a != 0) { ans++; } cout

<< ans; } int main() { solve(); return 0; }

Question 7 ：

Problem description

In the financial field , The amount is usually between the hundreds and thousands , Add commas between 100000 and millions （ Thousands separator ）, To facilitate reading . Generally, it starts from a single bit , Add a comma before every three digits .

for example ：1234567890.00 Usually written as 1,234,567,890.00.

Pay attention to the fixed retention after the decimal point 2 position .

Give a numeric value that contains a thousand separator , Please read in and output the corresponding value without thousands , The decimal point remains 2 position .

Input format

Enter a line containing a numeric value separated by a thousandth separator , Happen to have 2 Decimal place .

Output format

Outputs a numeric value without a thousand separator , retain 2 Decimal place .

sample input

1,234,567,890.00

sample output

1234567890.00

Scale and agreement of evaluation cases

For all profiling cases , The integer part of the given value does not exceed 12 position .

thinking ： Enter as string , Just delete all commas .

#include<bits/stdc++.h> #define ll long long using namespace std; string s;

void solve() { cin >> s; while(s.find(',') != string::npos) { int pos =

s.find(','); s.erase(pos, 1); } //s.erase(3, 1); cout << s; } int main() {

solve(); return 0; }

Question 8 ：

Problem description

Xiaolan has a plug-in board , Shape with a n * m of 01 Matrix representation ,0 Represents the board surface ,1 Represents the jack .

Xiaolan also has a plug , Shape with a r * c of 01 Matrix representation ,0 Indicates that there is no protruding part ,1 Indicates the protruding part . The protruding part of the plug must be inserted into the socket .

For safety , When the plug is inserted into the panel, no part can exceed the boundary of the plug board （ Including parts that do not protrude ）.

Neither the plug nor the plug plate can rotate , You can't flip . Request the reasonable position of the plug into the plug board .

Input format

The first line of input contains two integers n, m.

next n that 's ok , Each line has a length of m of 01 strand , Indicates the shape of the plug-in board .

The next line contains two integers r, c.

next r that 's ok , Each line has a length of c of 01 strand , Indicates the shape of the plug .

Output format

If the plug cannot be safely inserted into the plug board , output “NO”. Otherwise, two numbers are output a, b, Indicates the second dimension of the plug 1 Line number 1 Column corresponding to the plug-in board a Line number b

column . If there are multiple situations that meet the requirements , output a Minimal scheme , If a There are multiple minimum schemes , Output in a On the premise of minimum b Minimal scheme .

sample input

3 4

0110

0000

0000

3 3

000

010

000

sample output

NO

Example description

The plug cannot be inserted without exceeding the range .

sample input

4 7

1110100

1101111

0001111

0000011

2 3

111

011

sample output

2 4

Scale and agreement of evaluation cases

about 50% Evaluation cases for ,2 <= n, m, r, c <= 20.

For all profiling cases ,2 <= n, m, r, c <= 100.

Pay attention to the boundary and then simulate ... One at a time ’1‘ Then compare

#include<bits/stdc++.h> #define ll long long using namespace std; int n, m,

r,c; string chazuo[101]; string chatou[101]; int pipei; bool check(int posx,

int posy, int x, int y) { //cout << endl; int cnt = 0; int k = posx; int l =

posy; if (m - posy < c || n - posx + 1 < r) return false; for (int i = x; i <

r; i++) { for (int j = y; j < c ;j++) { if (chazuo[k][l]=='1' && chatou[i][j]

== '1') { l++; cnt++; } else if (chatou[i][j] == '0') { l++; } else if

(chatou[i][j] == '1' && chazuo[k][l] == '0') return false; if (cnt == pipei) {

return true; } //cout << i << " Plug " << j << " " << k << " Socket " << l - 1 << "

count " << cnt << endl; } k++; l = posy; } return false; } void solve() { cin >> n

>> m; for (int i = 0; i < n; i++) { cin >> chazuo[i]; } cin >> r >> c; for (int

i = 0; i < r; i++) { cin >> chatou[i]; } for (int i = 0; i < r; i++) { for (int

j = 0; j < c; j++) { if (chatou[i][j] == '1') pipei++; } } //cout << check(0,

0, 0, 0) << endl; int gapRow = n - r; int gapCol = m - c; if (gapRow < 0 ||

gapCol < 0) { cout << "NO"; return; } int first_OnechatouX; int

first_OnechatouY; //string first; for (int i = 0; i < r; i++) { if

(chatou[i].find('1') != string::npos) { first_OnechatouX = i; first_OnechatouY

= chatou[i].find('1'); //first = chatou[i].substr() break; } } //printf("%d,%d

%d\n", first_OnechatouX, first_OnechatouY, pipei); for (int i = 0; i < n; i++)

{ if (first_OnechatouX > i) continue; for (int j = 0; j < m; j++) { if

(chazuo[i][j] == '1') { if (check(i, j, first_OnechatouX, first_OnechatouY)) {

cout << i + 1 << " " << j + 1; return; } } } } cout << "NO"; return; } int

main() { solve(); //system("pause"); return 0; }

Question 9 ：

Problem description

Given positive integer a, b, c, How many positive integers are there , Is the divisor of at least two of them .

Input format

The input line contains three positive integers a, b, c.

Output format

The output line contains an integer , Indicates the answer .

sample input

30 70 35

sample output

6

Example description

1,2,5,7,10,35 Meet the conditions .

Scale and agreement of evaluation cases

about 50% Evaluation cases for ,1 <= a, b, c <= 1000000.

For all profiling cases ,a, b, c No more than 10**12（10 of 12 Power ）.

According to the meaning of the title , Get some points with violence ....

#include<bits/stdc++.h> #define ll unsigned long long using namespace std; ll

a, b, c; ll ans; map<ll, ll> m; void solve() { //ll ans = 0; cin >> a >> b >>

c; ll ta = a, tb = b, tc = c; ll Max = max(a, b); for (int i = 1; i <= Max;

i++) { if (ta % i == 0 && tb % i == 0 && m[i] == 0) { m[i] = 1,ans++;; //m[i] =

1; //cout << i << " "; //ta /= i; tb /= i; } } Max = max(a, c); ta = a; for

(int i =1; i <= Max; i++) { if (ta % i == 0 && tc % i == 0&& m[i] == 0) { m[i]

= 1,ans++;; //m[i] = 1; //cout << i << " "; //ta /= i; tc /= i; } } tc = c; for

(int i =1; i <= Max; i++) { if (tc % i == 0 && tb % i == 0&& m[i] == 0) { m[i]

= 1, ans++;; //m[i] = 1; //cout << i << " "; //tb /= i; tc /= i; } } cout

<<ans; } int main() { solve(); return 0; }

No question 10

Question 10 ：

Problem description

Xiao Lan likes playing tower of Hanoi very much .

There are three pillars in the game , At the beginning, there was on the first column n Disc , The size of the disc from top to bottom is 1 reach n.

every time , You can move a plate from one post to another , This plate must be the plate at the top of the column , And the plate moved to the post must be larger than this plate .

Xiaolan's goal is to move all the plates to the third post .

The tower of Hanoi is a classic question , When the number of plates is n Time , Minimum movement required 2**n-1 step , among 2**n express 2 of n Power .

Xiao Lan has been playing for a while （ Not necessarily according to the best plan ）, He wants to know , For his current situation , How many more steps are needed to reach the goal .

Input format

The first line of input contains three nonnegative integers a, b, c, Respectively represent the number of plates on each column at present . In this question ,n=a+b+c.

The second line contains a Integer , Adjacent integers are separated by a space , Represents the plate on the first post , Press the plate from top to bottom （ from small to large ） The order of is given .

The third line contains b Integer , Adjacent integers are separated by a space , Represents the plate on the second post , Press the plate from top to bottom （ from small to large ） The order of is given .

The fourth line contains c Integer , Adjacent integers are separated by a space , Represents the plate on the third post , Press the plate from top to bottom （ from small to large ） The order of is given .

Output format

The output line contains an integer , Indicates the answer .

sample input

1 2 3

1

2 3

4 5 6

sample output

7

Scale and agreement of evaluation cases

about 30% Evaluation cases for ,2 <= n <= 5.

For all profiling cases ,2 <= n <= 60.

Technology

- Java242 blogs
- Python241 blogs
- Vue112 blogs
- algorithm96 blogs
- c language93 blogs
- Flow Chart81 blogs
- MySQL71 blogs
- C++64 blogs
- more...

Daily Recommendation

© ioDraw All rights reserved

Linux shell Summary of script exercises windows And network foundation Outsourcing for five years , Abandoned ... computer network - Agreement and hierarchy The 11th Blue Bridge Cup was postponed — Mental journey and withdrawal Java Multithreading series — Implementation of multithreading (01)C language --- Simple Gobang games JAVA realization QQ Sign in , Registration and other functions 1060 graphics support dx12 Do you _1050Ti Or add some money 1060, You'll know after reading it Wu Enda machine learning - Detect exception server