这个题如果不往搜索上想的话就基本gg了  所以这个题很坑啊,完全在想dp、贪心、网络流

其实就是二分+搜索

但普通的搜索是50^1000   这个就太容易炸了

但有一个偏向玄学的剪枝把这样一个效率降到了平均 2ms、

就是剩下板的长度如果小于需要板的长度,就return、、

这个玄学剪枝的效率简直推动了社会的进步

还有就是如果这个板子比最小的需求都小,那他就不用考虑了、、

bs爆搜题,玄学不靠谱不说,还难调

码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{return a>b;
}
int minn=9999999,a[3004],aa[3004],b[3004],lfl,mid,l,r,n,m,ans,js,xq,ttt;
bool ky,lf[3004];
void dfs(int qi,int o)
{int i;if(ttt<lfl+xq||ky)return;if(o==n+1){ky=1;return ;}for(i=qi;i<=m;i++){if(a[i]<minn&&lf[i]==0)lf[i]=1,lfl+=a[i];if(a[i]<b[o]||lf[i])continue;a[i]-=b[o];if(b[o+1]==b[o])dfs(i,o+1);else dfs(1,o+1);if(lf[i]==1){lf[i]=0;lfl-=a[i];}a[i]+=b[o];}
}int main()
{int i;scanf("%d",&m);for(i=1;i<=m;i++)scanf("%d",&aa[i]),ttt+=aa[i];      scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&b[i]),minn=min(minn,b[i]);sort(aa+1,aa+1+m,cmp);sort(b+1,b+1+n,cmp);  l=0;r=n+1;while(l<r){for(i=1;i<=m;i++)a[i]=aa[i];mid=(l+r)>>1;ky=0;for(i=1;i<=m;i++)lf[i]=0;xq=0;for(i=n-mid+1;i<=n;i++)xq+=b[i];lfl=0;dfs(1,n-mid+1);if(ky)l=mid+1,ans=mid;else r=mid; }printf("%d",ans);}

2017.9.4 栅栏 失败总结相关推荐

  1. 《麻省理工科技评论》:2018年18大科技趋势,2017年7大失败技术

    来源:科技周 摘要:2018 年伊始,许多科技大势仍在继续,正如比尔·盖茨所说,"大多数人高估了某种技术的短期价值,低估了其长期价值."同样,大多数的年度预测会高估了一年内一些事件 ...

  2. 找不到mfc140u.dll或者Microsoft Visual C++ 2017 Redistributable一直安装失败解决

    找不到mfc140u.dll 安装后提示这个问题,我将xshell卸载重新安装后发现安装过程中提示Microsoft Visual C++ 2017 Redistributable一直安装失败,所以问 ...

  3. 2017.3.6 种树 失败总结

    一看这题--难道不是 n^2 dp?   怎么可能不是n^2dp? n=200000 怎么搞... 总之要想尽一切方法搞出来.. 想到了网络流,但这个m是至多而不是定值. 想到了最短路,但没法确定m ...

  4. 2017.10.18 开店 失败总结

    噩梦+级别的题,最近的题又难想又难调,还都是第一次打 以前做过和这个题很像的题,,但并没有想到. 注意前缀和的应用,似乎很多题都想不到用前缀和化成点. 然后就是套路:每个点到一个点的距离==每个点到根 ...

  5. 2017.10.13 轮状病毒 失败总结

    这个题可以用矩阵树定理,构造基尔霍夫矩阵,然后直接求行列式.. 但这样做会被卡精度,所以需要考虑有没有递推的做法 首先想按联通块个数来分状态,但除个数外,还有每个联通块的大小也会影响答案, 所以这是不 ...

  6. 2017.10.11 灾难 失败总结

    想了一上午没有结果,主要是因为原图搜索性太强,,就是每个点的影响虽然是固定的,但决策是需要遍历的.. 所以不能抽象成数字拓扑思考,不然同样的影响会被访问多次,却因为目标点的状态不同  而无法继续化简 ...

  7. 2017.9.29 road 失败总结

    首先要明确:多源最短路不只有floyd,还有n遍单源最短路 而且有时比floyd快. 所以可以用n遍spfa求所有点的单源最短路 期望复杂度n*(n*2) 然后对于每个单源最短路,求出经过每条边的次数 ...

  8. 2017.9.28 lca 失败总结

    序号连续,,体现在树上一点关系都没有..所以这一条性质用不上就只能暴力了 所以就需要考虑序号连续有什么用. 首先所求的是一个区间所以就可以用前缀和化成两个点←重要套路 然后求lca往上的距离就可以每个 ...

  9. 2017.9.26 货币兑换 失败总结

    这个题首先要注意到提示:全买全卖,,不然很容易误入歧途 然后可以根据确定性n^2 dp,,由于它是全买全卖,所以枚举上一个买入的点在哪里,算全卖出的价值取max 如果这个点不卖,则它一定有钱,所以继承 ...

最新文章

  1. spring与mybatis三种整合方法
  2. ubuntu12.04编译android4.0源代码Deug2
  3. 企业数字化转型,一文通读什么是数字化中台?
  4. CSS3--2D3D的使用
  5. JS判断一个数字是否为小数
  6. CIRIquant:circRNA定量和剪接体转换识别
  7. 幽灵漏洞(Ghost gethost)
  8. JVM垃圾回收机制GC详解
  9. python自学教程-python怎么快速自学?
  10. java requestparams_详解在Spring MVC中使用注解的方式校验RequestParams
  11. 背诵华为hcia认证考试题库答案能过吗?华为认证等级是怎样的
  12. Octotree:一款超实用的GitHub可视化代码树插件
  13. AA制:用算法解决生活中的AA制问题
  14. 激光导航——让扫地机器人行走自如的技术
  15. IE11 js导出excel提示Automation 服务器不能创建对象
  16. python爬虫请求头是什么意思_Pytho爬虫中Requests设置请求头Headers的方法
  17. Github Page 个人主页——自定义域名
  18. Android手机清除锁屏密码
  19. Linux用到的大数据相关命令
  20. AWS如何安全顺利关闭所有的免费服务

热门文章

  1. java猜拳游戏代码_猜拳游戏 - java代码库 - 云代码
  2. 编译原理总结(个人向)
  3. php中用js自定义弹窗,用js实现的自定义的对话框的实现代码_javascript技巧
  4. spikingjelly的20201221版本跑通ANN2SNN
  5. 【踩坑】Linux下配置torch-geometric
  6. 经典神经网络 | Faster R-CNN论文解析
  7. Python官方文档学习心得(第一章)
  8. python 录入数据不重复_python Django批量导入不重复数据
  9. 在windows7系统中显示和隐藏系统保留盘
  10. getter 和 setter方法