选择题做的跟傻逼一样,不多说了。。大学只打了ACM还不是计算机科班出身的我,连好多名词都不认识。。。。。

三道编程题很简单,下面给出三道题的大致题意以及题解。

1.给出n和m,满足(2m)可以整除n。求a1~an的和,m表示每m个数变一次符号,ai满足|ai|=i。

例如n=8,m=2,则数列为 -1 -2 3 4 -5 -6 7 8

题解:规律是显然的,每2m个数分别求一下部分和,显然是m*m,然后把所有的部分和累加起来,为n/(2m)*m*m=n*m/2

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long LL;

int main()
{
    LL n,m;
    while(cin>>n>>m)
        cout<<n*m/<<'\n';
}

2.给出X个长为A的小棍和Y个长为B的小棍,恰拼出一个长为K的小棍,其中所有小棍两两颜色不同,拼接时不考虑顺序,求问共有多少种合法方案。

题解:答案就是下面的这个公式

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long LL;

+;
;

LL qpow(LL x,LL n)
{
    LL ret=;
    )
    {
        ) ret=ret*x%mod;
        x=x*x%mod;
    }
    return ret;
}

LL fac[N],inv_of_fac[N];

void init()
{
    fac[]=;
    ;i<N;i++) fac[i]=fac[i-]*i%mod;
    inv_of_fac[N-]=qpow(fac[N-],mod-);
    ;i>=;i--) inv_of_fac[i]=inv_of_fac[i+]*(i+)%mod;
}

LL C(LL a,LL b)
{
    ) ;
    return fac[a]*inv_of_fac[b]%mod*inv_of_fac[a-b]%mod;
}

int main()
{
    init();
    LL K,A,B,X,Y;
    while(cin>>K>>A>>X>>B>>Y)
    {
        LL ans=;
        ;i<=X&&i*A<=K;i++)
        {
            )
            {
                LL t=(K-i*A)/B;
                ans+=C(X,i)*C(Y,t);
                ans%=mod;
            }
        }
        cout<<ans<<'\n';
    }
}

3.有n台机器和m个任务。每个机器一天有一个最多工作时间(<1000?)和能力level(<100),每个任务有所需时间time(<1000?)和最低所需机器能力level(<100),完成一个任务的对应收益为200*time+3*level,每个机器一天最多一个任务,求问最多一天完成多少任务,如果有多种方案,给出最大收益。

题解:贪心,对机器按照能力为第一关键字,时间为第二关键字,由小到大排序,依次从剩余任务中选取,(能够完成并且总价值最大)的任务,具体的算法见代码。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

;

struct node
{
    int t;
    int v;
    ;
    node() {}
    node(int t_,int v_)
    {
        t=t_,v=v_,used=;
    }
    bool operator<(const node& rhs)const
    {
        if(used!=rhs.used) return used>rhs.used;
        +v*<rhs.t*+rhs.v*;
    }
};

vector<int> a[N],b[N];
vector<node> c;
int n,m;
LL ans=,ans1=;

void init()
{
    ; i<N; i++) a[i].clear(),b[i].clear();
    c.clear();
    ans=,ans1=;
}

int main()
{
    scanf("%d%d",&n,&m);
    init();
    ; i<n; i++)
    {
        int t,v;
        scanf("%d%d",&t,&v);
        a[v].push_back(t);
    }
    ; i<m; i++)
    {
        int t,v;
        scanf("%d%d",&t,&v);
        b[v].push_back(t);
    }
    ; i<N; i++)
    {
        sort(a[i].begin(),a[i].end());
        ; j<b[i].size(); j++) c.push_back(node(b[i][j],i));
        sort(c.begin(),c.end());
        ; j<a[i].size(); j++)
        {
            ;
            ) continue;
            &&c[pos].used) pos--;
            ) continue;
            c[pos].used=;
            ans1++;
            ans+=c[pos].t*+c[pos].v*;
        }
    }
    printf("%lld %lld\n",ans1,ans);
}

记第一次正式线上笔试(Tencent——正式考-技术研发类-综合-2018实习生招聘)的更多相关文章

  1. 记Booking.com iOS开发岗位线上笔试

    今晚参加了Booking的iOS职位线上笔试,结束后方能简单归纳一下. 关于测试内容: Booking采用了HackerRank作为测试平台,测试总时长为75分钟,总计4道题. 测试之前我很紧张,因为 ...

  2. 记一次线上bug排查-quartz线程调度相关

    记一次线上bug排查,与各位共同探讨. 概述:使用quartz做的定时任务,正式生产环境有个任务延迟了1小时之久才触发.在这一小时里各种排查找不出问题,直到延迟时间结束了,该任务才珊珊触发.原因主要就 ...

  3. 解Bug之路-记一次线上请求偶尔变慢的排查

    解Bug之路-记一次线上请求偶尔变慢的排查 前言 最近解决了个比较棘手的问题,由于排查过程挺有意思,于是就以此为素材写出了本篇文章. Bug现场 这是一个偶发的性能问题.在每天几百万比交易请求中,平均 ...

  4. 放码来战!HMS Core线上Codelabs挑战赛正式开始

    亲爱的开发者,在1024程序员节即将到来之际,HMS Core准备了一场线上Codelabs挑战赛,现向你发出诚挚邀请,希望你能将新奇的想法和对产品的思考融入代码,用技术与世界对话. HMS Core ...

  5. 记一次线上Kafka消息堆积踩坑总结

    2018年05月31日 13:26:59 xiaoguozi0218 阅读数:2018更多 个人分类: 大数据   年后上线的系统,与其他业务系统的通信方式采用了第三代消息系统中间件Kafka.由于是 ...

  6. 记一次线上 OOM 和性能优化

    大家好,我是鸭血粉丝(大家会亲切的喊我 「阿粉」),是一位喜欢吃鸭血粉丝的程序员,回想起之前线上出现 OOM 的场景,毕竟当时是第一次遇到这么 紧脏 的大事,要好好记录下来. 1 事情回顾 在某次周五 ...

  7. 记一次线上Curator使用过程JVM栈溢出解决

       为了同学们看起来一目了,特按如下思路进行讲解. 1.出现的场景    2.分析及解决的过程    3.总结 最近公司要使用zookeeper做配置管理(后面简称ZK),然后自己就提前用虚拟机进行 ...

  8. 记一次线上coredump事故

    1.事故背景 上周三凌晨,我负责的某个模块在多台机器上连续发生coredump,幸好发生在业务低峰期,而且该模块提供的功能也不是核心流程功能,所以对线上业务影响比较小.发生coredump后,运维收到 ...

  9. 记一次线上事故的JVM内存学习

    今天线上的hadoop集群崩溃了,现象是namenode一直在GC,长时间无法正常服务.最后运维大神各种倒腾内存,GC稳定后,服务正常.虽说全程在打酱油,但是也跟着学习不少的东西. 第一个问题:为什么 ...

随机推荐

  1. UniEAP Platform V5.0建库

    create tablespace platform datafile 'platform.dbf' size 100M reuse autoextend on next 50M; . . drop ...

  2. Unity3D 旋转

    Unity有两种设置物体旋转的方式,一种时用Rotate()函数来旋转,另一种时直接构造目标Quaternion来直接赋予rotation. 好吧,不知到写什么,各种旋转和unity2D差不多.在国内 ...

  3. 配置本地访问远程Linux系统服务器的jupyter notebook

    环境情况 远程服务器上配置了anaconda 本地主机没有安装anaconda(其实安不安装都无所谓,有浏览器就行) 配置步骤如下 登录远程服务器 生成配置文件 jupyter notebook -- ...

  4. OUTLOOK、foxmail等无法直接打开邮件中的超级链接问题

         部分电脑,在OUTLOOK或Foxmail收到隔离邮件通知时,点击发送或删除时,提示“一般性错误,*******************,找不到应用程序”.或打开其它HTML格式的邮件正文中 ...

  5. flask config笔记

    #从flask这个包中导入Flask这个类 #Flask这个类是项目的核心,以后很多操作都是基于这个类的对象 #注册url.注册蓝图等都是基于这个类的对象 from flask import Flas ...

  6. mysql8无法用navicat连接(mysql8加密方式的坑)

    关键词:mysql8无法用navicat连接,navicat无法连接mysql8,mysql8,mysql8的加密方式 [1]mysql8 的坑 密码加密规则 在MySQL 8.0.以上版本中,cac ...

  7. Active Directory Users and Computers 安装与使用(win7&win10)

    一.         ADUC安装 根据自己电脑所使用的Windows操作系统,找到对应的ADUC管理工具补丁包点击下载后安装. Windows7补丁下载链接:https://www.microsof ...

  8. MySQL -2- 体系结构

    1. 体系结构 1.1 C/S(客户端/服务端)模型介绍   image TCP/IP方式(远程.本地): mysql -uroot -poldboy123 -h 10.0.0.51 -P3306 S ...

  9. C++中的new/delete、构造/析构函数、dynamic_cast分析

    1,new 关键字和 malloc 函数区别(自己.功能.应用): 1,new 关键字是 C++ 的一部分: 1,如果是 C++ 编译器,则肯定可以用 new 申请堆空间内存: 2,malloc 是由 ...

  10. MySql 面试开发技术点汇总

    表结构设计 1.为什么一定要设一个主键?  答:因为你不设主键的情况下,innodb也会帮你生成一个隐藏列,作为自增主键.所以啦,反正都要生成一个主键,那你还不如自己指定一个主键,在有些情况下,就能显 ...