Codeforces Round 640 (Div. 4)

简介: Codeforces Round 640 (Div. 4)A~G

A. Sum of Round Numbers

得到每个数位上的数是几,在记录后面零的个数
#include <bits/stdc++.h>
using namespace std;
void solve(){
    int x;
    cin >> x;
    vector<int> a;
    int n = 5;
    int p = 1;
    while(n -- )
    {
        int t = x % 10;
        x /= 10;
        if(t) a.push_back(t * p);
        p *= 10;
    }
    cout << a.size() << endl;
    for(auto t : a)
        cout << t << " ";
    cout << endl;
}
int main()
{
    freopen("test.in", "r", stdin);
    ios::sync_with_stdio(false);
    cin.tie(nullptr), cout.tie(nullptr);
    int _t = 1;
    cin >> _t;
    while(_t -- ){
        solve();
    }
    return 0;
}

B. Same Parity Summands

给定两个整数n, k。构建一个k个奇偶性相同的数列,使得和是n。

构造题,两种方式

如果前k-1个数写成1,最后留一个n-k+1也是奇数,就构造成功

如果前k-2个数为2,最后一个n - 2 * (k - 1) 也是偶数,就构造成功

否则就不能构造出来

#include <bits/stdc++.h>
using namespace std;
void solve(){
    int n, k;
    cin >> n >> k;
    int n1 = n - (k - 1);
    if(n1 > 0 && n1 % 2 == 1)
    {
        cout << "YES" << endl;
        for(int i = 0; i < k - 1; i ++ )
            cout << "1 ";
        cout << n1 << endl;
        return;
    }

    int n2 = n - 2 * (k - 1);
    if(n2 > 0 && n2 % 2 == 0)
    {
        cout << "YES" << endl;
        for(int i = 0; i < k - 1; i ++ )
            cout << "2 ";
        cout << n2 << endl;
        return;
    }

    cout << "NO" << endl;
}
int main()
{
    freopen("test.in", "r", stdin);
    ios::sync_with_stdio(false);
    cin.tie(nullptr), cout.tie(nullptr);
    int _t = 1;
    cin >> _t;
    while(_t -- ){
        solve();
    }
    return 0;
}

C. K-th Not Divisible by n

题意很简单, 输出第 K 个不能被 n 整除的数
#include<bits/stdc++.h>
using namespace std;
void solve()
{
    int n, k;
    cin >> n >> k;
    long long a = k / (n - 1);
    long long b = k % (n - 1);
    if(b == 0) b = -1;
    cout << (long long)a * n + b << endl;
}
int main()
{
    freopen("test.in", "r", stdin);
    int tt;
    cin >> tt;
    while(tt -- )
    {
        solve();
    }
    return 0;
}

D. Alice, Bob and Candies

模拟
#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
int a[N];
void solve()
{
    int n;
    cin >> n;
    for(int i = 0; i < n; i ++ )
        cin >> a[i];
    
    int ans1 = 0, ans2 = 0;
    int res1 = 0, res2 = 0;
    int l = 0, r = n - 1;
    int cnt = 0;
    while(l <= r)
    {
        if(res1 <= res2)
        {
            res1 = 0;
            while(res1 <= res2 && l <= r)
            {
                res1 += a[l];
                ans1 += a[l];
                l ++ ;
            }
            cnt ++ ;
        }
        else if(res1 >= res2)
        {
            res2 = 0;
            while(res2 <= res1 && l <= r)
            {
                res2 += a[r];
                ans2 += a[r];
                r -- ;
            }
            cnt ++ ;
        }
    }
    cout << cnt << " " << ans1 << " " << ans2 << endl;
}
int main()
{
    freopen("test.in", "r", stdin);
    int tt;
    cin >> tt;
    while(tt -- )
    {
        solve();
    }
    return 0;
}

E. Special Elements

定义一种特殊元素,只要有连续区间和等于它,它就是特殊元素,问有多少个特殊元素

先用cnt记录每个数字出先的次数,然后n^2遍历所有区间,算出区间和t,ans += cnt[t];

#include<bits/stdc++.h>
using namespace std;
const int N = 10010;
typedef long long LL;
int s[N];
int cnt[N];
bool st[N];
void solve()
{
    memset(st, 0, sizeof st);
    memset(cnt, 0, sizeof cnt);
    int n;
    cin >> n;
    for(int i = 1; i <= n; i ++ )
    {
        cin >> s[i];
        cnt[s[i]] ++ ;
        s[i] += s[i - 1];
    }
    LL ans = 0;
    for(int len = 2; len <= n; len ++ )
        for(int l = 1; l + len - 1 <= n; l ++ )
        {
            int r = l + len - 1;
            LL t = s[r] - s[l - 1];
            if(t < N && !st[t])
            {
                ans += cnt[t];
                st[t] = true;
            }
        }
    cout << ans << endl;
}
int main()
{
    freopen("test.in", "r", stdin);
    int tt;
    cin >> tt;
    while(tt -- )
    {
        solve();
    }
    return 0;
}

F. Binary String Reconstruction

构造,特殊情况特判
#include <bits/stdc++.h>
using namespace std;
void solve(){
    int a, b, c;
    cin >> a >> b >> c;
    bool f = false;
    string s;
    if(a == b && a == 0)
    {
        a = -1;
        c ++ ;
    }
    if(b > 0 && b % 2 == 0)
    {
        b -- ;
        f = true;
    }

    for(int i = 1; i <= a + 1; i ++ )
        s += '0';
    
    for(int i = 1; i <= b; i ++ )
    {
        s += (char)('0' + (i & 1));
    }

    for(int i = 1; i <= c; i ++ )
        s += '1';
    if(f) s += '0';
    cout << s << "\n";
}
int main()
{
    freopen("test.in", "r", stdin);
    ios::sync_with_stdio(false);
    cin.tie(nullptr), cout.tie(nullptr);
    int _t = 1;
    cin >> _t;
    while(_t -- ){
        solve();
    }
    return 0;
}

G. Special Permutation

如果n小于4,肯定不存在

剩下的先从大到小输出奇数,在输出4和2,在从6开始从小到大输出偶数

#include <bits/stdc++.h>
using namespace std;
void solve(){
    int n;
    cin >> n;
    if(n < 4)
    {
        cout << -1 << endl;
        return;
    }
    int t = n;
    if(t % 2 == 0) t -- ;
    for(int i = t; i > 0; i -= 2)
        cout << i << " ";
    
    cout << 4 << " " << 2 << " ";
    for(int i = 6; i <= n; i += 2)
        cout << i << " ";
    
    cout << endl;
}
int main()
{
    freopen("test.in", "r", stdin);
    ios::sync_with_stdio(false);
    cin.tie(nullptr), cout.tie(nullptr);
    int _t = 1;
    cin >> _t;
    while(_t -- ){
        solve();
    }
    return 0;
}
目录
相关文章
|
存储 算法 Cloud Native
[minio]简介与安装
[minio]简介与安装
278 2
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
3453 2
|
网络协议 Java Windows
打造个人的Minecraft服务器:Java+cpolar实现我的世界联机游戏
打造个人的Minecraft服务器:Java+cpolar实现我的世界联机游戏
764 0
|
前端开发 Java 索引
从零玩转EasyPoi
从零玩转EasyPoi
1028 0
|
弹性计算 监控 网络协议
使用ECS通过Syslog协议投递日志到SIEM
Syslog是一个常见的日志通道,几乎所有的SIEM(例如IBM Qradar, HP Arcsight)都支持通过Syslog渠道接收日志。本文主要介绍如何通过Syslog将日志服务中的日志投递到SIEM。
512 0
使用ECS通过Syslog协议投递日志到SIEM
|
设计模式 前端开发 数据管理
员工入职管理系统|员工管理系统|基于SpringBoot+Vue的企业新员工入职系统
员工入职管理系统|员工管理系统|基于SpringBoot+Vue的企业新员工入职系统
184 0
|
前端开发 API
深入理解 React Hooks
React Hooks 是 React 16.8 版本引入的新特性,可以帮助我们在函数组件中使用状态和其他 React 特性,同时可以避免使用类组件带来的繁琐的生命周期函数。在本文中,我们将深入了解 React Hooks 的使用方法和实现原理,并探讨 React Hooks 对开发的影响。
173 0
|
开发者 物联网 5G
IT基础设施云化专场——阿里云峰会(上海)开发者大会PPT下载
7月24日,阿里云峰会(上海)开发者大会在上海世博中心盛大启程,与未来世界的开发者们分享开源大数据、IT基础设施云化、数据库、云原生、物联网等领域的技术干货,共同探讨前沿科技趋势,分析阿里云在一线生产场景的最佳实践,携手合作伙伴及广大开发者们共建云上开发新时代,让我们一起code up!
3468 0
|
人工智能 弹性计算 编解码
开发者社区精选直播合集(十七)| 云计算十年的发展与应用
分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。
开发者社区精选直播合集(十七)| 云计算十年的发展与应用
|
Java Spring
Spring -- 自定义转换器
Spring 定义了 3 种类型的转换器接口,实现任意一个转换器接口都可以作为自定义转换器注册到 ConversionServiceFactoryBean 中: Converter:将 S 类型对象转为 T 类型对象;  ConverterFactory:将相同系列多个 “同质” Converter 封装在一起。
1138 0