当前位置:网站首页>CDZSC_ 2022 winter vacation personal training match level 21 (1)
CDZSC_ 2022 winter vacation personal training match level 21 (1)
2022-07-07 09:48:00 【moyangxian】
A
The question : A little
Answer key : take n Divide the sum of the numbers by n that will do .
#include<bits/stdc++.h>
using namespace std;
signed main(){
int n;
scanf("%d", &n);
int sum = 0;
for(int i = 1; i <= n; i++){
int x;
scanf("%d", &x);
sum += x;
}
printf("%.10f\n", sum * 1.0 / n);
return 0;
}
B
The question : A little
Answer key : Since the minimum value is required , So give priority to large denomination money .
#include<bits/stdc++.h>
using namespace std;
int a[] = {
100, 20, 10, 5, 1};
signed main(){
int n;
scanf("%d", &n);
int ans = 0;
for(int i = 0; i < 5; i++){
ans += n / a[i];
n %= a[i];
}
printf("%d\n", ans);
return 0;
}
C
The question : A little
Knowledge point :STL Application
Answer key : Splice the string with yourself , Equivalent to length times 2; for example :abcd -> abcdabcd
Then take out each one with a length of len( The length of the original string ) String , use map Just record it .
#include<bits/stdc++.h>
using namespace std;
map<string, int> mp;
signed main(){
string s;
cin >> s;
int len = s.length();
s += s;
int ans = 0;
for(int i = 0; i < len; i++){
string t = s.substr(i, len);
if(mp[t] == 0) ans++;
mp[t]++;
}
printf("%d\n", ans);
return 0;
}
D
The question : A little
Answer key : because 6 = 2 * 3, So take a ride 2 except 6 The operation of is equivalent to dividing by 3, So the operation turns into a one-step operation to n Divide 6 Or two steps will n Divide 3, If n It cannot be changed into 1 There is no solution. .
#include<bits/stdc++.h>
using namespace std;
void solve(){
int n;
scanf("%d", &n);
int ans = 0;
while(true){
if(n % 6 == 0){
n /= 6;
ans++;
}
else if(n % 3 == 0){
n /= 3;
ans += 2;
}
else{
break;
}
}
if(n == 1) printf("%d\n", ans);
else printf("-1\n");
}
signed main(){
int T;
scanf("%d", &T);
while(T--) solve();
return 0;
}
E
The question : A little
Answer key : Choose the smallest number each time to subtract , It is equivalent to subtracting each number after arranging the array in order , And if a number appears many times, it will only be subtracted once . For each of these a[i] for , The array subtracts the difference between it and the previous one , namely a[i] - a[i - 1]
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int a[N];
signed main(){
int n, k;
scanf("%d%d", &n, &k);
for(int i = 1; i <= n; i++)
scanf("%d", &a[i]);
sort(a + 1, a + 1 + n);
n = unique(a + 1, a + 1 + n) - a - 1;
for(int i = 1; i <= k; i++){
if(i <= n) printf("%d\n", a[i] - a[i - 1]);
else printf("0\n");
}
return 0;
}
F
The question : A little
Answer key : If n The sum of the numbers is not 0, Then I will n The number can be divided into one section . If n The sum of the numbers is 0, Then find the last not for 0 Number of numbers ( Subscript to be pos), take (1,pos - 1) Divide into sections ,(pos, n) It can be divided into sections .
#include<bits/stdc++.h>
using namespace std;
const int N = 110;
int a[N];
signed main(){
int n;
scanf("%d", &n);
int sum = 0;
for(int i = 1; i <= n; i++){
scanf("%d", &a[i]);
sum += a[i];
}
if(sum){
printf("YES\n");
printf("1\n");
printf("1 %d\n", n);
}
else{
int pos = -1;
for(int i = 1; i <= n; i++)
if(a[i]) pos = i;
if(pos == -1) printf("NO\n");
else{
printf("YES\n");
printf("2\n");
printf("1 %d\n", pos - 1);
printf("%d %d\n", pos, n);
}
}
return 0;
}
G
The question : A little
Answer key : Because the array finally forms an arithmetic sequence , We can enumerate a[1] You can know the value of the entire array , Compare the obtained array with the original array , Record the number of different numbers , The answer is the optimal solution .
#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
int a[N], b[N], t[N];
signed main(){
int n, k;
scanf("%d%d", &n, &k);
for(int i = 1; i <= n; i++)
scanf("%d", &a[i]);
int ans = n;
for(int i = 1; i <= 1000; i++){
b[1] = i;
int cnt = 0;
for(int j = 1; j <= n; j++){
b[j] = b[1] + (j - 1) * k;
if(b[j] != a[j]) cnt++;
}
if(cnt < ans){
memcpy(t, b, sizeof(b));
ans = cnt;
}
}
printf("%d\n", ans);
for(int i = 1; i <= n; i++){
if(t[i] > a[i]) printf("+ %d %d\n", i, t[i] - a[i]);
else if(t[i] < a[i]) printf("- %d %d\n", i, a[i] - t[i]);
}
return 0;
}
边栏推荐
- Lesson 1: hardness of eggs
- JS judge whether checkbox is selected in the project
- How to solve the problem of golang select mechanism and timeout
- flex弹性布局
- 【无标题】
- 剑指 Offer II 107. 矩阵中的距离
- Basic use of JMeter to proficiency (I) creation and testing of the first task thread from installation
- 如何使用clipboard.js库实现复制剪切功能
- Unity uses mesh to realize real-time point cloud (II)
- 牛客网——华为题库(61~70)
猜你喜欢
How to speed up video playback in browser
In fact, it's very simple. It teaches you to easily realize the cool data visualization big screen
Oracle installation enhancements error
AI从感知走向智能认知
Loxodonframework quick start
Netease Cloud Wechat applet
基于智慧城市与储住分离数字家居模式垃圾处理方法
Pit using BigDecimal
Use 3 in data modeling σ Eliminate outliers for data cleaning
【BW16 应用篇】安信可BW16模组/开发板AT指令实现MQTT通讯
随机推荐
Database multi table Association query problem
大佬们,请问 MySQL-CDC 有什么办法将 upsert 消息转换为 append only 消
Unity uses mesh to realize real-time point cloud (II)
创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值各不相同。
Unity uses mesh to realize real-time point cloud (I)
What development models did you know during the interview? Just read this one
进程间的通信方式
csdn涨薪技术-浅学Jmeter的几个常用的逻辑控制器使用
IIS faked death this morning, various troubleshooting, has been solved
小程序弹出半角遮罩层
thinkphp3.2信息泄露
iNFTnews | 时尚品牌将以什么方式进入元宇宙?
Lesson 1: hardness of eggs
Difference between process and thread
How to become a senior digital IC Design Engineer (1-6) Verilog coding Grammar: Classic Digital IC Design
Impression notes finally support the default markdown preview mode
Arthas simple instructions
Scratch crawler mysql, Django, etc
12、 Sort
如何成为一名高级数字 IC 设计工程师(1-6)Verilog 编码语法篇:经典数字 IC 设计