当前位置:网站首页>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;
}
边栏推荐
- How to become a senior digital IC Design Engineer (1-6) Verilog coding Grammar: Classic Digital IC Design
- Deep understanding of UDP, TCP
- NETCORE 3.1 solves cross domain problems
- Impression notes finally support the default markdown preview mode
- Selenium+bs4 parsing +mysql capturing BiliBili Tarot data
- asp. How to call vb DLL function in net project
- 如何成为一名高级数字 IC 设计工程师(1-6)Verilog 编码语法篇:经典数字 IC 设计
- PostgreSQL reports an error when creating a trigger,
- H5网页播放器EasyPlayer.js如何实现直播视频实时录像?
- 根据热门面试题分析Android事件分发机制(一)
猜你喜欢
How to speed up video playback in browser
Dynamics 365Online ApplicationUser创建方式变更
ComputeShader
Elaborate on MySQL mvcc multi version control
Software modeling and analysis
如何使用clipboard.js库实现复制剪切功能
Over 100000 words_ Ultra detailed SSM integration practice_ Manually implement permission management
H5网页播放器EasyPlayer.js如何实现直播视频实时录像?
Netease cloud wechat applet
沙龙预告|GameFi 领域的瓶颈和解决方案
随机推荐
How to speed up video playback in browser
golang select机制和超时问题怎么解决
Lesson 1: hardness of eggs
網易雲微信小程序
PostgreSQL创建触发器的时候报错,
The difference between viewpager2 and viewpager and the implementation of viewpager2 in the rotation chart
Lecture 1: stack containing min function
CSDN salary increase technology - learn about the use of several common logic controllers of JMeter
Liunx command
Software modeling and analysis
asp. How to call vb DLL function in net project
IIS faked death this morning, various troubleshooting, has been solved
In fact, it's very simple. It teaches you to easily realize the cool data visualization big screen
JS judge whether checkbox is selected in the project
HCIP 第一天 笔记整理
**Grafana installation**
Vs2013 generate solutions super slow solutions
C# Socke 服务器,客户端,UDP
Diffusion模型详解
如何成为一名高级数字 IC 设计工程师(1-6)Verilog 编码语法篇:经典数字 IC 设计