zoukankan      html  css  js  c++  java
  • 贪心+二分10.2

    T1

    problem

    要堆一个雪人需要三个不同大小的雪球.现在有n个给定大小的雪球,问能堆起多少个雪人.

    ans

    数量最多的球先用.比如(100,1,1,1,1).如果先取(1,1,1),就只能堆一个,但是如果用了(100)中的一个,就可以堆两个.多的一定先用.所以只要统计+排序就可以了.

    T2

    problem

    超市打折.如果购物车里最少有一个凳子,则可以半价购买购物车里最便宜的物品.现在你要购买n个物品,其中一些是凳子.你有k个购物车,求一个最优的购物方案使得花费最少.

    ans

    凳子的最大优惠只能是优惠他自己.因为假设一个购物车中凳子不是最贵的,那么只能优惠凳子.如果凳子是最贵的,结果只会更劣.所以把前(k-1)贵的凳子放进前(k-1)个购物车,剩下的全部装在一个购物车里.

    T3

    problem

    有n个罗汉,每个罗汉有重量w和力量s
    定义一个罗汉的危险值为上面所有物品的重量值和减去他的力量.安排一个顺序使得危险值最大的罗汉危险值最小.

    ans

    考虑邻项交换法得到一个结论.按照(w_i+s_i)从小到大的顺序排序结果最优.

    T3

    problem

    [JSOI2007]基地里有n个建筑收到了严重的损伤,但只有一个维修工人.修复一个建筑需要(t_i)的时间,工人一次只能修一个,如果某个建筑在(b_i)时间里没有修好,它就报废了.要求制定一个合理的顺序,来抢修更多建筑.

    ans

    先按照d从小到大排序,中途对决策做更改.遍历所有建筑i,如果能修就修.

    如果不能,那么在先前修复的建筑中找到耗时最大的建筑,时光倒流,如果那个建筑的耗时比这个长,那就放弃那个,改修这个.相当于修同样多的建筑,使用的总时间最短.时光倒流可以通过大根堆实现.

    T4

    problem

    [GDOI2018 D1T2]给定a[1...n],a_iin [0,m-1],每次操作可以在%m意义下对任意一个区间[l,r]整体+1或者-1,求最少几次操作可以使得所有数字变成0.

    ans

    对a维护一个差分数组,我们的目标是把差分数组变成全0.区间加减变成了端点加减.一个正数对应一个负数.如果正数之和为A,负数之和为B,那么结果就是(max(A,|B|)).

    T5

    problem

    给定一个最大240位的大整数S,去掉其中任意N个数字,使得剩下的数字组成一个新的正整数S'.对于给定的N和S,寻找一种方案使得剩下的数字组成的新数S'最小.

    ans

    从前往后扫,如果一直递增就删掉最后的数.如果出现递减就把拐点删掉然后从头开始再扫一遍.

    T6

    problem

    各处n个正整数,需要把他们连接成一排,组整一个最大的多位整数.

    ans

    T7

    problem

    给定一棵n个点的有根树,每个点x上有a[x]朵樱花,设fa[x]表示父亲,son[fa[x]]表示父亲的儿子数.现在可以删掉一些节点,然后被删掉节点的樱花会加给父亲,它的儿子也会接在父亲上.要求删完x之后,fa[x]的樱花数+fa[x]的儿子数<M.问最多能删除多少个点.

    ans

    自底向上删除,每次删除儿子中a[x]+son[x]最小的一个,这样对自己的增量最小.自底向上删除更有利于实现.而且能删要尽量删除.因为对于一个点和它父亲,只能删除其中一个.如果删除了父亲,会导致爷爷的键值增加,而删除自己就不会,更有利于上层的点被删除.

    T8

    problem

    给出一个n点m边的有向图,且保证前n-1条边构成一个以1为根的dfs树.T-simple的定义是至多一条边不在这棵树上的环.问至少要选中多少条边使得每个T-simple都至少被选中一条边.

    ans

    因为这是一棵dfs数,所以图中除了树边就只有返祖边了.

    先来看一个子问题,如果是一个序列要求若干区间都要被选中,那么就从前往后扫,在未选择区间的右端点选点即可.所以把问题转化到树上也是类似的.

    T9

    problem

    给出一个M个逆序对的数列,求出一个最小的,字典序大于原序列的,逆序对也为M的数列.N<=5e6.

    ans

  • 相关阅读:
    工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于80%,就发送邮件报警
    编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
    显示统计占用系统内存最多的进程,并排序
    总结IP配置方法
    总结ip分类以及每个分类可以分配的IP数量
    总结描述TCP三次握手四次挥手
    描述TCP和UDP区别
    简述osi七层模型和TCP/IP五层模型
    创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
    【转载】Centos升级gcc至5.4.0
  • 原文地址:https://www.cnblogs.com/i-cookie/p/11617424.html
Copyright © 2011-2022 走看看