【笔试训练】day17

简介: 【笔试训练】day17

1.小乐乐该数字

遇到按位处理的情况可以考虑用字符串去读

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include<string>
using namespace std;
 
int main() {
    string str;
    cin >> str;
    int ans = 0;
    for (int i = 0; i < str.size(); i++) {
        int u = str[i] - '0';
        if (u % 2)ans = ans * 10 + 1;
        else ans *= 10;
    }
    cout << ans << endl;
    return 0;
}

2.十字爆破

思路:

用俩数组分别维护每行和每列的和就好了。注意long long

代码:

#include <iostream>
#include<vector>
using namespace std;
typedef long long LL;
const int N=1e6+10;
LL col[N];
LL row[N];
 
 
int main() {
    int n,m;
    cin>>n>>m;
    vector<vector<int>> a(n+1,vector<int>(m+1));
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
            row[i]+=a[i][j];
            col[j]+=a[i][j];            
        }
    }
 
 
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cout<<(LL)row[i]+col[j]-a[i][j]<<" ";
        }
        cout<<endl;
    }
}

3.比那名居的桃子

思路:

前缀和维护快乐值和羞耻值,枚举每一天,假设在当前天吃掉桃子,看能不能更新答案。

代码:

#include <iostream>
using namespace std;
typedef long long LL;
const int N=1e5+10;
LL sa[N];
LL sb[N];
int main() {
    int n,k;
    cin>>n>>k;
    
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        sa[i]=sa[i-1]+x;
    }
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        sb[i]=sb[i-1]+x;
    }
 
    LL res1=0;//快乐值
    LL res2=1e9;//羞耻
    int ans=0;
    for(int i=1;i+k-1<=n;i++){
        LL a=sa[i+k-1]-sa[i-1];
        LL b=sb[i+k-1]-sb[i-1];
        if(res1<=a){
           if(res1==a&&res2>=b){
            if(res2==b){
                ans=min(ans,i);
            }else{
                res2=b;
                ans=i;
            }
           }else{
            res1=a;
            res2=b;
            ans=i;
           }
        }
       // cout<<res1<<" "<<res2<<endl;
    }
    cout<<ans<<endl;
    return 0;
}


相关文章
|
7月前
|
存储 编译器 C++
C++学习总结——初识C++
C++学习总结——初识C++
52 0
|
JSON 测试技术 数据格式
rayin使用与学习
rayin使用与学习
106 0
|
机器学习/深度学习 设计模式 算法
|
人工智能 城市大脑 达摩院
学习+思考+资料总结
基本结构 程序 = 算法+数据结构 软件 = 程序 + 软件工程 软件企业 = 软件 + 商业模式 闲是灵感的源泉,忙是思维的坟墓。
96 0
|
存储 缓存 监控
pmq再学习一
这个过程首先是创建主题,有了主题,创建消费组,然后基于消费组这个大前提,执行订阅操作,订阅需要进行消费的主题信息,然后在订阅的基础上,进行队列的分配。在这个过程中会执行元数据的变更和重平衡操作。而这些可以从审计日志中获取打印日志中可以看到很清楚。 下一篇,我们来看生产者和消费者的细节。生产者和消费者在执行操作前会执行一个操作init初始化操作,而这个初始化操作会将信息注册到将信息注册到MqClient中,因为只有将其进行统一管理的时候,在创建客户端对象的时候才会方便管理,同时方便调用,此时会启动心跳服务,此时少不了还有一个重要的操作就是注册消费组,同时需要关注一个点就是长轮询操作。
142 0
pmq再学习一
|
弹性计算 Linux 虚拟化
选择正确,不断学习
对于学计算机的,对于我的专业,学习并掌握Linux操作系统是必须的,但是一开始在自己的电脑用VMware在自己的电脑搭建虚拟机学习,但是这样会导致自己的计算机变得很卡,因为会占用主机很大的内存。在我的老师的引荐下,认识了阿里云服务器,而且他推荐我们去参加“飞天加速计划,高校学生在家实践活动”,那样可以先体验阿里云服务器ECS,看看是否适合自己。于是我便去完成了练习和答题拿到了体验资格。
|
存储 缓存 网络协议
学习总结
学习总结
|
前端开发 NoSQL 算法
需要学习
需要学习
207 0
如何学习一个新的知识
1为什么需要A 2.如何学习A 3.怎么使用A 4需要注意的问题 5.A的应用领域 6.A的优缺点
644 0