zoukankan      html  css  js  c++  java
  • 清北学堂 day one

    qwq
    清北学堂日记(1)
    {
    day one 蒙b了一天。 qaq。 上午将基础算法,划了一天的水,主要讲了些基础算法。
    那么,讲一讲上午做了些什么吧 qwq。
    题目讲解
    {
    first 讲了(假的)01背包,今天351突发奇想 相出了状压的方法 qwq
    second 热身题 好数 就是到数位dp,如果我学了,肯定会(歪脸) 但是范围挺小的 直接暴力 不解释
    third 立体图 由于题目太过毒瘤 大模拟 来的将 总之 先左再右,先下再上,先后再前 这样放立方体
    至于旁边的点点怎么打 可一直接全覆盖成点 然后放立方体
    forth 二分
    {
    1 排序 懒得讲 就是快排吗
    2 求一个数组中的a【j】满足a【j-1】<a[【j】&&a【j+1】<a【j】
    }
    划重点 好题一个
    {
    有一个n*m的矩阵a[i][j],满足a[i][j]<a[i][j+1],a[i][j]<a[i+1][j]。
    问这个矩阵中是否存在数字k。
    每次你可以询问一个位置的值,问最坏情况下最少需要询问几次。
    O(n+m)
    题解 :
    从右上角开始 如果所取值比所要值大就删去一行或列(单调性吗)
    这样不但删 最终就能找出所要的值
    操作如图
    }
    fifth 贪心
    {
    1(伪)石子合并 直接和成一堆 qwq
    2 取数游戏 题目过水已隐藏
    3 取区间游戏 蛮有意思的 其实是我贪心做太少 看题
    有n个区间,第i个区间形如[li,ri]。
    要求选择最多的区间,使得任意两个区间都互相不重叠。
    n<=10W
    sort (r)
    MAX 表示已知区间右端点的最大值 MAX=0
    for (i=1; i<=n; i++) if (l[i]>MAX) {ans++; MAX=r[i];}
    题解 :
    把这些区间按有端点值从小到大排序 遇见能取的就取
    理由 如果这个不去 那么取下一根 从这里看是等价的
    但是 会影响下面的 明明可以取到的 但因为最右但向右了 就有可能取不到
    请感性理解一下
    4 打怪兽 也很好(都是我太菜了 别说了 qwq)
    有n只怪兽,你可以随便选个顺序打过去,初始你有a滴血,打掉第i 个怪兽会扣掉你bi滴血,扣完后会掉落一个血瓶,
    你可以回复ci点血,打完这n个怪兽后你才能去见BOSS。
    当你血量<=0时你会挂掉。
    问你能否见到BOSS,输出任意一种可行的方案。
    n<=10W
    题解:
    两种怪兽:可以加血的, 以及会扣血
    先打加血怪,再打扣血怪(不用解释)
    对于加血怪来说:b从小到大打(感性理解)
    对于扣血怪来说:c从大到小打(加血怪的逆过程)
    }
    sixth 分治
    {
    1 残缺方块问题 就是从中间切两刀 中间放一个三角
    划重点 好啊 这题 但是我太菜了 我需要在修炼一下3
    Cf goodbye 2018 F 题
    一个人想从A点到B点,有n段区域需要经过。第i段区域长为ai。每一段区域可能是——陆地、海洋、岩浆。
    它行走速度是5s/单位,游泳速度是3s/单位,飞行速度是1s/单位。
    每行走/游一单位距离它能获得1点能量。
    每飞行一单位需要消耗1点能量。 一开始没能量。
    陆地可以走或飞,海洋可以游或飞,岩浆只能飞。
    问至少多少时间能走到。
    n,ai<=10W。 G表示陆地 R海洋 Y岩浆 GR 2 2 尽可能让G变成飞,之后再尽可能把游变成飞
    G 3
    7.5 s + 1.5s 9 s
    GY 1 2 5s + 2.5s + 2.5s + 2s = 12s 可以做到只在一处陆地往回走,一处海洋往回游
    GY 2 2
    G….R….
    R前岩浆距离总和a,除了岩浆的距离总和是b,让G所走的路增加a-b
    R后(包括R)岩浆距离总和x,其它总和是y,R前余留的能量是z,则R游的路增加x-y-z
    处理完往回的情况 GYGY 1 100 100 1
    之后,ai就表示第i段路的距离了
    f[i]表示第i段路结束后,还剩的能量。 始终要保证 f[i]都>=0
    假如把第j段路的本来走的变成飞, f[j], f[j+1] ,.., f[n] - 一个常数
    min{f[j],…,f[n]} >= 这个常数
    从后往前枚举,再判断后缀最小值是否大于等于一个常数,来决定是否飞。
    //尽可能把走的变成飞的 之后再尽可能把游的变成飞的
    }
    }
    qwq 上午差不多就这么多题了
    下午主要是考试
    题目我会单独来讲
    qwq

  • 相关阅读:
    利用同步网盘搭建个人或团队SVN服务器
    Entity FrameWork Code First 之 MVC4 数据库初始化策略用法
    Entity FrameWork Code First 迁移命令详解
    Bootstrap Paginator分页插件+ajax
    Bootstrap的js分页插件属性介绍
    AtomicBoolean介绍与使用
    java线程:Atomic(原子)
    Java里的CompareAndSet(CAS)
    ThreadLocal详解
    CalendarUtil 日期操作工具类
  • 原文地址:https://www.cnblogs.com/simba351/p/10321477.html
Copyright © 2011-2022 走看看