长沙集训day6

    一星期马上过去了,但下星期觉定还要继续学下去,毕竟也都期望在OI这方面那到一个好的成绩吧。

    t1:第一题是你有一个神奇的背包,这个背包的容量为h,当你装入一个东西后,它的容量会增加一些(当然前提是你的先把东西装进去),他会给你每个物品的占用空间和增长空间,问你能不能把所有的物品放进去。

    这题一看就是一个大贪心哇,先把物品增长的空间从大到小排序,如果增长空间相同那么就把占地方大的物品放在前面,因为你要

将所有的物品放进去,既然增长的空间相同,那么就肯定把大的先放进去。然后就从第一个物品往下扫,如果这个物品可以放进去,用bool型数组记录下这个物品放进去了在从头扫,如果放不进去,那么就继续向下扫知道找到可以放进去的背包。但如果到了最后还是没有放进去东西,就输出No,反之输出Yes。

    因为数据有点大我这个算法差不多相当于两重循环加了一丢丢优化,所以最后和期望的一样,那到了75分。

    t2:给你一个队列,让你从中找出一个区间[L,R]是的区间中存在一个数Ak可以被其中所有数整除。然后就从1到n依次枚举点a[i]

然后用head和tail维护一个区间的队头队尾,然后队头依次加一队尾减一,如果a[head]%a[i]!=0用一个bool变量l=true,记录l=false;然后head就停在当前位置.....有什么不对呢?当然了,因为你是先head++;在判断的a[head]%a[i]!=0,所以head并不是停在他该停的位置,所以还的head--;

tail处理也是一样的。然后记录下两个指针都停止的时候的位置,切记用二维数组记录一下f[head][tail]已经访问过了,防止重复查找区间。

    t3:(提都没有看懂赛QAQ)

  

      今天本来期望得分上3位数,但.....但........t2最后输出答案时忘了排序后再输出....我的55分不翼而飞QAQ。拿到成绩后我又自己加上排序后升序输出,然后我的5分就变成了60分。无语............所以今天拿到了80分,继续努力吧0.0

 

posted @ 2017-08-07 21:51  列車員lcy  阅读(100)  评论(0编辑  收藏  举报