2017.5.21入门组总结

37 篇文章 0 订阅
36 篇文章 0 订阅

入门组总结

第一题:

题意:如果每个数字的每一位都不能出现t,则数到第m个是第几个

思路:数据规模不大,就1≤m≤100000,足足可以过,“暴力出奇迹!!!”

           于是开码,也就是一个循环,每次将i转为字符串,post一 下有没有t,没有就+1

 

第二题:

题意:有两种人,每个人都有一个能力值,如果第一种人的任意一个  人的能力值比第二种的人大,就算一种友好关系,求有多少对  友好关系

考试思路:将两种人都按小到大排序,用贪心思想,记录下上一个人 的能力值最多到第几位。每次判断,这个人的能力值还可 以大于多少 人的能力值。

 

结果:请况“惨不忍睹”,快排的“while b[j]>mid do”

写成了“while b[i]>mid do”结果全部超时,荣获0!!分

 

做法:①全:两个快排,找到如果大于a[i]的就break,居然能 过,这数据也是......(没谁了)

           ②将第二种人快排,然后用二分查找到,最多能大于第二       种人能力值的位置,用一个整形统计即可

③即考试思路,同上

 

第三题:

题意:给出一个方阵,求t个位置的(x,y)的左上角+右下角(不只是  两个位置)

思路:不是很难AC

   首先,先求出前缀和

 公式为a[i,j]=a[i-1,j]+a[i,j-1]-a[i-1,j-1]

 然后每一个位置,可以推出一个!!公式!!

 公式为:a[n,n]+a[x-1,y-1]-a[x,n]-a[n,y]+a[x,y]

 凭这个公式就能A掉第三题。

 

第四题:

题意:有t组数据,每一组包括一个方阵、两个人所在的位置和走的  方向。走过的地方不可以走(单方),第一个人遇到不可以走的  地方就右转,第二个人左转。判断这两个人能不能相遇。

思路:首先看数据1<=t<=10,1<=n<=1000。在最坏情况下,时间复杂  度就是O(10*1000*1000)=O(10000000)。暴力+模拟觉对能过,  只是想不想打罢了。

 首先,定义两个布尔类型bool1、bool2,来判断第一个人能不  能走和第二个人能不能走

 在每一次循环中,将当前方向的坐标求出,判断这个坐标可不  可走:

①如果可走,就替换x和y,并将当前位置设为已走过。

②如果不可以,就左转或右转,再将转后的坐标求出,再   次判断可走否。如果不可走,就将这个人设为已经不可    走了 ;如果可以,替换记录。

 如果到最后,两个人的坐标相等,就输出坐标。如果两个人都

 不可以走,就输出“-1 ”

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值