记第一次正式线上笔试(Tencent——正式考-技术研发类-综合-2018实习生招聘)
选择题做的跟傻逼一样,不多说了。。大学只打了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实习生招聘)的更多相关文章
- 记Booking.com iOS开发岗位线上笔试
今晚参加了Booking的iOS职位线上笔试,结束后方能简单归纳一下. 关于测试内容: Booking采用了HackerRank作为测试平台,测试总时长为75分钟,总计4道题. 测试之前我很紧张,因为 ...
- 记一次线上bug排查-quartz线程调度相关
记一次线上bug排查,与各位共同探讨. 概述:使用quartz做的定时任务,正式生产环境有个任务延迟了1小时之久才触发.在这一小时里各种排查找不出问题,直到延迟时间结束了,该任务才珊珊触发.原因主要就 ...
- 解Bug之路-记一次线上请求偶尔变慢的排查
解Bug之路-记一次线上请求偶尔变慢的排查 前言 最近解决了个比较棘手的问题,由于排查过程挺有意思,于是就以此为素材写出了本篇文章. Bug现场 这是一个偶发的性能问题.在每天几百万比交易请求中,平均 ...
- 放码来战!HMS Core线上Codelabs挑战赛正式开始
亲爱的开发者,在1024程序员节即将到来之际,HMS Core准备了一场线上Codelabs挑战赛,现向你发出诚挚邀请,希望你能将新奇的想法和对产品的思考融入代码,用技术与世界对话. HMS Core ...
- 记一次线上Kafka消息堆积踩坑总结
2018年05月31日 13:26:59 xiaoguozi0218 阅读数:2018更多 个人分类: 大数据 年后上线的系统,与其他业务系统的通信方式采用了第三代消息系统中间件Kafka.由于是 ...
- 记一次线上 OOM 和性能优化
大家好,我是鸭血粉丝(大家会亲切的喊我 「阿粉」),是一位喜欢吃鸭血粉丝的程序员,回想起之前线上出现 OOM 的场景,毕竟当时是第一次遇到这么 紧脏 的大事,要好好记录下来. 1 事情回顾 在某次周五 ...
- 记一次线上Curator使用过程JVM栈溢出解决
为了同学们看起来一目了,特按如下思路进行讲解. 1.出现的场景 2.分析及解决的过程 3.总结 最近公司要使用zookeeper做配置管理(后面简称ZK),然后自己就提前用虚拟机进行 ...
- 记一次线上coredump事故
1.事故背景 上周三凌晨,我负责的某个模块在多台机器上连续发生coredump,幸好发生在业务低峰期,而且该模块提供的功能也不是核心流程功能,所以对线上业务影响比较小.发生coredump后,运维收到 ...
- 记一次线上事故的JVM内存学习
今天线上的hadoop集群崩溃了,现象是namenode一直在GC,长时间无法正常服务.最后运维大神各种倒腾内存,GC稳定后,服务正常.虽说全程在打酱油,但是也跟着学习不少的东西. 第一个问题:为什么 ...
随机推荐
- java:Mybatis框架1(基本配置,log4j,Junit4(单元测试))
1.mybatis01: db.properties: driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test userna ...
- ABAP的smartform赋值
添加文本后, 在输出选项中指定行/列
- USACO3.3 A Game【区间dp】
这道题也是一道非常有意思的区间$dp$,和在纪中的这道题有点像:取数游戏 (除了取数规则其它好像都一样诶) 当时在纪中的时候就觉得这个$dp$非常不好想,状态定义都不是很容易想到. 但是做过一道这种题 ...
- python 并发编程 进程池与线程池
一 进程池与线程池 1.为什么需要进程池和线程池 基于多进程或多线程实现并发的套接字通信,然而这种实现方式的致命缺陷是: 服务端的程序运行在一台机器身上,一台机器性能是有极限的,不能无限开线程 服务的 ...
- Centos7单机安装Tableau2018.2
cd先将服务器防火墙80级8850端口打开 临时关闭SELinux/防火墙 setenforce 0 iptables -F 重点 重点 不能用root用户安装 不能用root用户安装 第一步先创建一 ...
- java中的小知识点
1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...
- Inversions After Shuffle CodeForces - 749E (概率,期望)
大意: 给定一个$n$排列, 随机选一个区间, 求将区间随机重排后整个序列的逆序对期望. 考虑对区间$[l,r]$重排后逆序对的变化, 显然只有区间[l,r]内部会发生改变 而长为$k$的随机排列期望 ...
- JavaEE--JSP详解
一.JSP JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导.许多公司参与一起建立的一种 ...
- Jade学习(一)之特性、安装
前言 流行的模板 PHP:Smarty SimpleTemplate Xtemplate Savant Java:Velocity FreeMarker Jbyte C#:Dotiquid Sharp ...
- 说说 MicroPython 的项目整体架构
今天来说说 MicroPython 的架构情况,如果有必要我会做一些源码分析的文章供大家参考. 先来认识一下 MicroPython 整体情况,可以从软件的角度上去看待,首先我们拿到 MicroPyt ...