腾讯马拉松编程赛题.docx
- 文档编号:29082289
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:40
- 大小:133.36KB
腾讯马拉松编程赛题.docx
《腾讯马拉松编程赛题.docx》由会员分享,可在线阅读,更多相关《腾讯马拉松编程赛题.docx(40页珍藏版)》请在冰豆网上搜索。
腾讯马拉松编程赛题
4500小Q系列故事——屌丝的逆袭TimeLimit:
0.1Seconds MemoryLimit:
65536K
一段时间以后,随着对工作环境以及同事的熟悉,小Q逐渐放松下来,在工作间隙,他细细观察了自己的工作环境,发现整个工作室是一个N行M列的矩形布局,或者是因为屌丝的本性逐步暴露,他还暗自给每个同事在心里进行了魅力值评分(为区别男女,男生一律用负整数表示,女生一律用正整数表示)。
现在,小Q把所有人的数据记录下来,并且这样定义一个位置的价值:
一个位置的价值只和其上下左右四个邻居的魅力值有关(对于靠边的位置,只考虑其存在的邻居);如果某位置的邻居和该位置主人性别不同,则总分加上邻居魅力值的绝对值,否则减去;对周围所有邻居的数据处理后,最终的得分即为这个位置的最终得分,得分越高,则该位置越好;现在你能帮助小Q计算一下哪里才是最佳位置吗?
Input输入包含多组测试数据;每组测试数据的第一行包含2个整数N和M,表示工作室的布局是N行M列;接下来的N行,每行有M个整数,分别表示对应位置员工的魅力值数据Ki,正整数表示女生的魅力值,负整数表示男生的魅力值;N和M为0的时候表示输入数据结束。
[TechnicalSpecification]N<=20M<=20-100<=Ki<=100
Output请计算并输出最佳位置的行列号以及对应的得分,如果得分最高的位置有多个,则请输出行号最小的那个,行号还相同的话,再比较列号,只输出列号最小的那个即可。
SampleInputSampleOutput
2312111002
5-43
-637
4501小明系列故事——买年货TimeLimit:
2.0Seconds MemoryLimit:
65536K
还没看完通知,小明就高兴的要死,因为他就是都尚的会员啊。
迫不及待的小明在超市逛了一圈发现超市里有n件他想要的商品。
小明顺便对这n件商品打了分,表示商品的实际价值。
小明发现身上带了v1的人民币,会员卡里面有v2的积分。
他想知道他最多能买多大价值的商品。
Input输入包含多组测试用例。
每组数据的第一行是四个整数n,v1,v2,k;然后是n行,每行三个整数a,b,val,分别表示每个商品的价钱,兑换所需积分,实际价值。
[TechnicalSpecification]1<=n<=1000<=v1,v2<=1000<=k<=50<=a,b,val<=100
Ps.只要钱或者积分满足购买一件商品的要求,那么就可以买下这件商品。
Output对于每组数据,输出能买的最大价值。
详细信息见Sample。
SampleInputSampleOutput
5161425012
4330104
032441
233334
332344
102
4502吉哥系列故事——临时工计划TimeLimit:
1.0Seconds MemoryLimit:
32768K
已知吉哥一共有m天的假期,每天的编号从1到m,一共有n份可以做的工作,每份工作都知道起始时间s,终止时间e和对应的工资c,每份工作的起始和终止时间以天为单位(即天数编号),每份工作必须从起始时间做到终止时间才能得到总工资c,且不能存在时间重叠的工作。
比如,第1天起始第2天结束的工作不能和第2天起始,第4天结束的工作一起被选定,因为第2天吉哥只能在一个地方工作。
现在,吉哥想知道怎么安排才能在假期的m天内获得最大的工资数(第m+1天吉哥必须返回学校,m天以后起始或终止的工作是不能完成的)。
Input第一行是数据的组数T;每组数据的第一行是2个正整数:
假期时间m和可做的工作数n;接下来n行分别有3个正整数描述对应的n个工作的起始时间s,终止时间e,总工资c。
[TechnicalSpecification]1<=T<=10009 Output对于每组数据,输出吉哥可获得的最高工资数。 SampleInputSampleOutput 1102 105 15100 31010 510100 142 612266 4503湫湫系列故事——植树节TimeLimit: 0.5Seconds MemoryLimit: 32768K 湫湫老师的班里要选出3个小朋友。 已知湫湫的班里共有n个孩子,每个孩子有Bi个朋友(i从1到n),且朋友关系是相互的,如果a小朋友和b小朋友是朋友,那么b小朋友和a小朋友也一定是好朋友。 为了选择的公平性,湫湫老师会随机抽取3个小朋友出来(每个人被抽到的概率相同),但是她很希望这3个小朋友之间的关系完全相同,湫湫老师想请你帮她算算抽到的3个小朋友正好关系相同的概率是多少? PS.关系相同就是指要么3个人互相是好朋友,要么3个人互相都不是好朋友。 Input输入数据第一行是一个整数T(1<=T<=1000),表示输入数据的组数;每组数据的第一行是一正整数n表示孩子的总数(2 Output对于每组数据,请输出抽到的3个小朋友关系相同的概率,结果保留3位小数。 SampleInputSampleOutput 10.400 5 33334 4504威威猫系列故事——篮球梦TimeLimit: 0.1Seconds MemoryLimit: 32768K 一场NBA篮球比赛总共48分钟,假如我们现在已经知道当前比分A: B,A代表我方的比分,B代表对方的比分,现在比赛还剩下t秒时间。 我们简单的认为双方各自进攻一次的时间皆固定为15秒(不到15秒则进攻不得分),且为交替进攻,即我方进攻一次,接着对方进攻,依次循环。 进攻有三种选择方式: (这里不考虑命中率)造犯规,(假设都两罚一中)得1分;中距离投篮得2分;三分球得3分。 为了简化问题,假设在对方回合,由于我方防守比较好,只让对手得1分,且为固定,即对方的进攻回合就为每回合得1分。 现在比赛进入最后关头,接下来第一个回合是我方进攻,现在威威猫想要知道教练有多少种不同的选择能使我方可能赢得比赛(可能的意思就是不考虑命中率的情况)。 Input输入有多组数据(不超过250组);每组数据包含3个整数A,B和t,其中A和B表示当前的比分(0<=A,B<=200),t表示还剩多少时间(单位秒0<=t<=600)。 Output请输出可行的方案数,每组数据输出占一行。 SampleInputSampleOutput 8890506 Hint: 样例解析: 当前比分是88: 90,还剩50秒则对方还最多有一次进攻机会(最后5秒进攻不成功),我方有两次,对方的最终得分将是91,我方至少在两回合中拿到4分才能胜利,所以所有方案数是6种,即: 第一球第二球 13 22 23 31 32 33 4505小Q系列故事——电梯里的爱情TimeLimit: 0.1Seconds MemoryLimit: 65536K 于是,小Q便在陪伴女神的同时,也关注着电梯中显示的楼层数字,并且他注意到电梯每向上运行一层需要6秒钟,向下运行一层需要4秒钟,每开门一次需要5秒(如果有人到达才开门),并且每下一个人需要加1秒。 特别指出,电梯最开始在0层,并且最后必须再回到0层才算一趟任务结束。 假设在开始的时候已知电梯内的每个人要去的楼层,你能计算出完成本趟任务需要的总时间吗? 这是个很简单的问题,要知道,小Q已经修炼到快速心算出结果的境界,现在你来编程试试吧! Input输入首先包含一个正整数C,表示有C组测试用例。 接下来C行每行包含一组数据,每组数据首先是一个正整数N,表示本次乘坐电梯的人数,然后是N个正整数Ai,分别表示大家要去的楼层。 C<=100N<=15Ai<=100 Output请计算并输出完成一趟任务需要的时间,每组数据输出占一行。 SampleInputSampleOutput 259 42432108 3101010 4506小明系列故事——师兄帮帮忙TimeLimit: 1.0Seconds MemoryLimit: 32768K 题目是这样的: 给你n个数字,分别是a1,a2,a3,a4,a5……an,这些数字每过一个单位时间就会改变,假设上一个单位时间的数字为a1’,a2’,a3’……an’,那么这个单位时间的数字a[i]=a[i-1]’*K(i==1的时候a[1]=a[n]’*K),其中K为给定的系数。 现在的问题就是求第t单位时间的时候这n个数字变成了什么了? 由于数字可能会很大,所以只要你输出数字对10^9+7取余以后的结果。 Input输入数据第一行是一个正整数T,表示有T组测试数据;每组数据有两行,第一行包含输入三个整数n,t,k,其中n代表数字个数,t代表第t个单位时间,k代表系数;第二行输入n个数字ai,代表每个数字开始的时候是多少。 T<=100,1<=n<=10^4,0<=t<=10^9,其中t=0表示初始状态,1<=k<=10^9,1<=ai<=10^9 Output对于每组数据请输出第t单位时间后这n个数字变成了什么,输出的时候每两个数字之间输出一个空格,行末不要输出多余的空格,具体见样例。 SampleInputSampleOutput 2507525 325305123 123123 4507吉哥系列故事——恨7不成妻TimeLimit: 0.5Seconds MemoryLimit: 65536K 吉哥观察了214和77这两个数,发现: 2+1+4=77+7=7*277=7*11最终,他发现原来这一切归根到底都是因为和7有关! 所以,他现在甚至讨厌一切和7有关的数! 什么样的数和7有关呢? 如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关——整数中某一位是7;整数的每一位加起来的和是7的整数倍;这个整数是7的整数倍;现在问题来了: 吉哥想知道在一定区间内和7无关的数字的平方和。 Input输入数据的第一行是case数T(1<=T<=50),然后接下来的T行表示T个case;每个case在一行内包含两个正整数L,R(1<=L<=R<=10^18)。 Output请计算[L,R]中和7无关的数字的平方和,并将结果对10^9+7求模后输出。 SampleInputSampleOutput 3236 19221 10110 1717 4508湫湫系列故事——减肥记ITimeLimit: 1.0Seconds MemoryLimit: 65536K 为了方便你制作食谱,湫湫给了你每日食物清单,上面描述了当天她想吃的每种食物能带给她的幸福程度,以及会增加的卡路里量。 Input输入包含多组测试用例。 每组数据以一个整数n开始,表示每天的食物清单有n种食物。 接下来n行,每行两个整数a和b,其中a表示这种食物可以带给湫湫的幸福值(数值越大,越幸福),b表示湫湫吃这种食物会吸收的卡路里量。 最后是一个整数m,表示湫湫一天吸收的卡路里不能超过m。 11<=n<=100 0<=a,b<=100000 1<=m<=100000 Output 对每份清单,输出一个整数,即满足卡路里吸收量的同时,湫湫可获得的最大幸福值。 SampleInputSampleOutput 3510 331120 7753 99103 1068 75 6 4509湫湫系列故事——减肥记IITimeLimit: 2.0Seconds MemoryLimit: 65536K 湫湫实在太忙了,所以没时间去算一天有多少时间可以用于锻炼,现在她把每日行程告诉你,拜托你帮忙算算吧~皮埃斯: 一天是24小时,每小时60分钟 Input输入数据包括多组测试用例。 每组测试数据首先是一个整数n,表示当天有n件事要做。 接下来n行,第i行是第i件事的开始时间和结束时间,时间格式为HH: MM。 1<=n<=50000000<=HH<=2300<=MM<=59 Output请输出一个整数,即湫湫当天可以用于锻炼的时间(单位分钟) SampleInputSampleOutput 141256 15: 3618: 4001: 3510: 36179 04: 5422: 36 10: 1818: 40 11: 4717: 53 [hint]大量输入,建议用scanf读数据。 4510小Q系列故事——为什么时光不能倒流TimeLimit: 0.1Seconds MemoryLimit: 65536K 假设现在已知当前的时间,让时间倒退回若干,你能计算出钟表显示的时间吗? Input 输入首先包含一个整数N,表示有N组测试用例。 接下来的N行表示N个测试用例,每行包括2个时间HH: MM: SShh: mm: ssHH: MM: SS表示当前的时间,hh: mm: ss表示希望倒退回去的时间。 [TechnicalSpecification]00<=HH<=1100<=hh<=9900<=MM,SS,mm,ss<=59 Output请计算并输出钟表倒退后显示的时间,要求输出格式为HH: MM: SS(即时分秒均显示2位,不足则补0),每组数据输出占一行。 SampleInputSampleOutput 209: 14: 11 11: 28: 3202: 14: 2104: 59: 59 05: 00: 0096: 00: 01 4511小明系列故事——女友的考验TimeLimit: 0.2Seconds MemoryLimit: 32768K 1、假设小明在的位置是1号点,女朋友在的位置是n号点,则他们之间有n-2个点可以走,小明每次走的时候只能走到比当前所在点编号大的位置;2、小明来的时候不能按一定的顺序经过某些地方。 比如,如果女朋友告诉小明不能经过1->2->3,那么就要求小明来的时候走过的路径不能包含有1->2->3这部分,但是1->3或者1->2都是可以的,这样的限制路径可能有多条。 特别说明,如果123这三个点共线,但是小明是直接从1到3然后再从3继续,那么此种情况是不认为小明经过了2这个点的。 Input输入包含多组样例,每组样例首先包含两个整数n和m,其中n代表有n个点,小明在1号点,女朋友在n号点,m代表小明的女朋友有m个要求;接下来n行每行输入2个整数x和y(x和y均在int范围),代表这n个点的位置(点的编号从1到n);再接着是m个要求,每个要求2行,首先一行是一个k,表示这个要求和k个点有关,然后是顺序给出的k个点编号,代表小明不能走k1->k2->k3……->ki这个顺序的路径;n和m等于0的时候输入结束。 [TechnicalSpecification]2<=n<=501<=m<=1002<=k<=5 Output对于每个样例,如果存在满足要求的最短路径,请输出这个最短路径,结果保留两位小数;否则,请输出”Cannotbereached! ”(引号不用输出)。 SampleInputSampleOutput 3121532.00 110000Cannotbereached! 21115321.65 31212 212122 12521 3 123 2 45 2 15 4512吉哥系列故事——完美队形ITimeLimit: 1.0Seconds MemoryLimit: 65536K 有一天,有n个人按顺序站在他的面前,他们的身高分别是h[1],h[2]...h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则称之为完美队形: 1.挑出的人保持他们在原队形的相对顺序不变;2.左右对称,假设有m个人形成新的队形,则第1个人和第m个人身高相同,第2个人和第m-1个人身高相同,依此类推,当然,如果m是奇数,中间那个人可以任意;3.从左到中间那个人,身高需保证递增,如果用H表示新队形的高度,则H[1] 最多能选出多少人组成完美队形? Input第一行输入T,表示总共有T组数据(T<=20);每组数据先输入原先队形的人数n(1<=n<=200),接下来一行输入n个整数,表示按顺序从左到右原先队形位置站的人的身高(50<=h<=250,不排除特别矮小和高大的)。 Output请输出能组成完美队形的最多人数,每组数据输出占一行。 SampleInputSampleOutput 23 344 1211221 4513吉哥系列故事——完美队形IITimeLimit: 1.0Seconds MemoryLimit: 65536K 假设有n个人按顺序站在他的面前,他们的身高分别是h[1],h[2]...h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形: 1.挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的;2.左右对称,假设有m个人形成新的队形,则第1个人和第m个人身高相同,第2个人和第m-1个人身高相同,依此类推,当然如果m是奇数,中间那个人可以任意;3.从左到中间那个人,身高需保证不下降,如果用H表示新队形的高度,则H[1]<=H[2]<=H[3]....<=H[mid]。 最多能选出多少人组成新的完美队形呢? Input输入数据第一行包含一个整数T,表示总共有T组测试数据(T<=20);每组数据首先是一个整数n(1<=n<=100000),表示原先队形的人数,接下来一行输入n个整数,表示原队形从左到右站的人的身高(50<=h<=250,不排除特别矮小和高大的)。 Output请输出能组成完美队形的最多人数,每组输出占一行。 SampleInputSampleOutput 23 344 12112214514湫湫系列故事——设计风景线TimeLimit: 3Seconds MemoryLimit: 65536K 新的风景线最好能建成环形,如果没有条件建成环形,那就建的越长越好。 现在已经勘探确定了n个位置可以用来建设,在它们之间也勘探确定了m条可以设计的路线以及他们的长度。 请问是否能够建成环形的风景线? 如果不能,风景线最长能够达到多少? 其中,可以兴建的路线均是双向的,他们之间的长度均大于0。 Input测试数据有多组,每组测试数据的第一行有两个数字n,m,其含义参见题目描述;接下去m行,每行3个数字uvw,分别代表这条线路的起点,终点和长度。 [TechnicalSpecification]n<=100000m<=10000001<=u,v<=nw<=1000 Output对于每组测试数据,如果能够建成环形(并不需要连接上去全部的风景点),那么输出YES,否则输出最长的长度,每组数据输出一行。 SampleInputSampleOutput 33YES 121 231 311 4515小Q系列故事——世界上最遥远的距离TimeLimit: 0.2Seconds MemoryLimit: 65536K 在腾讯第二届编程马拉松大赛进行到第5天的时候(即2013年3月24日),假设已知现在的日期和穿越的天数D,你能计算出小Q和女友各自到达的年代吗? Input 输入首先包含一个整数N,表示有N组测试用例;接下来N行是N组数据,每一行包含一个正整数D(D<=10,0000),D表示向前穿越的天数。 Output 请计算并输出小Q和女友分别到达的日期,日期格式为YYYY/MM/DD,两个日期中间用一个空格隔开,每组数据占一行,具体输出格式请参见样例。 SampleInputSampleOutput 22013/03/302013/03/18 62013/04/232013/02/22 30 4516威威猫系列故事——因式分解TimeLimit: 0.2Seconds MemoryLimit: 65536K 在我们学习数学的过程中,经常需要把一个多项式进行因式分解,也就是把它写成乘积的形式,比如多项式x^2+3x+2分解因式的结果就是(x+1)(x+2)。 这个因式一眼就能看出来,但是当x的指数更高时,就不太容易分解了。 现在,威威猫就是在研究如何编写程序来实现对多项式的因式分解。 Input输入第一行是一个整数T(T<=50),表示测试数据的组数;接下来是T行字符串表示T个测试用例,每行1个数学多项式,多项式长度不会超过100个字符,每个多项式表示形式如下: A[1]x^P[1]+A[2]x^P[2]+...+A[m]x^P[m]其中0<=P[i]<=5,A[i]表示x^P[i]的系数,A[i]=0时直接简写为0,A[i]=1和-1时分别简写为x^P[i]与-x^P[i],P[i]=0和1时分别简写为A[i]与A[i]x,且同一指数r的对应项系数之和的绝对值不超过1000,每行中没有多余空格,具体格式可参考SampleInput。 Output对于每组测试数据,首先输出Case#X: ,X代表多项式编号,从1开始计数,然后输出因式分解的结果,分解结果的表示形式规定如下: (x+B[1])(x+B[2])...(x+B[m])其中,B[1]<=B[2]<=...<=B[m],若B[i]=0则不加括号直接简写为x,如果无法表现成上述格式,则输出"-1"。 具体可参考SampleOutput。 SampleInputSampleOutput 4Case#1: x xCase#2: (x+1) x+1Case#3: (x-1)xx -2x^2+x^2+x^3Case#4: -1 2x+2 4517小小明系列故事——游戏的烦恼TimeLimit: 1.0Seconds MemoryLimit: 32768K 小小明最近在玩一款游戏,它由n*m大小的矩阵构成,矩阵上会随机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 腾讯 马拉松 编程