zoukankan      html  css  js  c++  java
  • 泥点spot

    Spot 
    描述 
    有n个泥点,排成一排,第i个泥点坐标为ai。有m个木板,第i个木板长为li。现在用尽可能少的木板覆盖所有泥点。 
    问:使用木板的最少数量以及最优方案数(mod 1000000007),若不能完全覆盖,请输出“NO”。 
    注意: 
    泥点可重复覆盖,木板可重叠。 
    计算方案时,长度相等的两个板不等价,视为两种板。 
    输入 
    第1行:一个数n 
    第2行:n个数a1,a2…an(从小到大给出) 
    第3行:一个数m 
    第4行:m个数l1,l2…ln 
    输出 
    第1行,一个数,使用木板的最少数量 
    第2行,一个数,最优方案数 
    若不能完全覆盖,请输出“NO” 
    样例输入 



    10 
    样例输出 

    10 
    数据范围和约定 
    对于20%的数据:n=1 
    对于另外20%的数据:m=1 
    对于100%的数据: 
    1<=n,m<=15 
    0<=ai<=1000000000 
    1<=li<=1000000000 
    时空限定 
    内存限制为 512 MB 
    时间限制为 1 s 
    评测环境和细则 
    评测开启-O2优化 
    评测软件为lemon 
    评测忽略行尾空格 
    文件名 
    提交文件名为spot.cpp/pas 
    输入文件名为spot.in 
    输出文件名为spot.out

    n,m<=15,先确定是状压

    一开始f[i][j],i表示前i个木板,j压的是泥点 
    再用g[i][j] 在dp的时候记录方案数 
    但是要考虑的情况会多到爆炸 
    在卡了一个下午后,本蒟蒻毅然决然的决定 换!状!态!!!!

    用f[i][j],i表示前i个泥点,j压的是木板,f[i][j]表示方案数 
    初始化成负数 
    最后再扫一遍f[n][0-maxp],找不是负数中最小的,没找着就输出”NO” 
    这样比以前的好处是: 
    泥点最后一定要全都选完,但木板不一定,比较好转移。

    错误的第一次code

  • 相关阅读:
    luoguP1600 天天爱跑步(NOIP2016)(主席树+树链剖分)
    luogu P3919 [模板]可持久化数组(可持久化线段树/平衡树)(主席树)
    luoguP3384 [模板]树链剖分
    luoguP2590 [ZJOI2008]树的统计(树链剖分)
    luoguP1505 [国家集训队]旅游(真的毒瘤)
    入手node
    小程序中如何实现评论中的点亮星星
    小程序学习网
    css3实现小程序的动画
    scroll-view
  • 原文地址:https://www.cnblogs.com/A-LEAF/p/7225397.html
Copyright © 2011-2022 走看看