2017.9.4 栅栏 失败总结
这个题如果不往搜索上想的话就基本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 栅栏 失败总结相关推荐
- 《麻省理工科技评论》:2018年18大科技趋势,2017年7大失败技术
来源:科技周 摘要:2018 年伊始,许多科技大势仍在继续,正如比尔·盖茨所说,"大多数人高估了某种技术的短期价值,低估了其长期价值."同样,大多数的年度预测会高估了一年内一些事件 ...
- 找不到mfc140u.dll或者Microsoft Visual C++ 2017 Redistributable一直安装失败解决
找不到mfc140u.dll 安装后提示这个问题,我将xshell卸载重新安装后发现安装过程中提示Microsoft Visual C++ 2017 Redistributable一直安装失败,所以问 ...
- 2017.3.6 种树 失败总结
一看这题--难道不是 n^2 dp? 怎么可能不是n^2dp? n=200000 怎么搞... 总之要想尽一切方法搞出来.. 想到了网络流,但这个m是至多而不是定值. 想到了最短路,但没法确定m ...
- 2017.10.18 开店 失败总结
噩梦+级别的题,最近的题又难想又难调,还都是第一次打 以前做过和这个题很像的题,,但并没有想到. 注意前缀和的应用,似乎很多题都想不到用前缀和化成点. 然后就是套路:每个点到一个点的距离==每个点到根 ...
- 2017.10.13 轮状病毒 失败总结
这个题可以用矩阵树定理,构造基尔霍夫矩阵,然后直接求行列式.. 但这样做会被卡精度,所以需要考虑有没有递推的做法 首先想按联通块个数来分状态,但除个数外,还有每个联通块的大小也会影响答案, 所以这是不 ...
- 2017.10.11 灾难 失败总结
想了一上午没有结果,主要是因为原图搜索性太强,,就是每个点的影响虽然是固定的,但决策是需要遍历的.. 所以不能抽象成数字拓扑思考,不然同样的影响会被访问多次,却因为目标点的状态不同 而无法继续化简 ...
- 2017.9.29 road 失败总结
首先要明确:多源最短路不只有floyd,还有n遍单源最短路 而且有时比floyd快. 所以可以用n遍spfa求所有点的单源最短路 期望复杂度n*(n*2) 然后对于每个单源最短路,求出经过每条边的次数 ...
- 2017.9.28 lca 失败总结
序号连续,,体现在树上一点关系都没有..所以这一条性质用不上就只能暴力了 所以就需要考虑序号连续有什么用. 首先所求的是一个区间所以就可以用前缀和化成两个点←重要套路 然后求lca往上的距离就可以每个 ...
- 2017.9.26 货币兑换 失败总结
这个题首先要注意到提示:全买全卖,,不然很容易误入歧途 然后可以根据确定性n^2 dp,,由于它是全买全卖,所以枚举上一个买入的点在哪里,算全卖出的价值取max 如果这个点不卖,则它一定有钱,所以继承 ...
最新文章
- spring与mybatis三种整合方法
- ubuntu12.04编译android4.0源代码Deug2
- 企业数字化转型,一文通读什么是数字化中台?
- CSS3--2D3D的使用
- JS判断一个数字是否为小数
- CIRIquant:circRNA定量和剪接体转换识别
- 幽灵漏洞(Ghost gethost)
- JVM垃圾回收机制GC详解
- python自学教程-python怎么快速自学?
- java requestparams_详解在Spring MVC中使用注解的方式校验RequestParams
- 背诵华为hcia认证考试题库答案能过吗?华为认证等级是怎样的
- Octotree:一款超实用的GitHub可视化代码树插件
- AA制:用算法解决生活中的AA制问题
- 激光导航——让扫地机器人行走自如的技术
- IE11 js导出excel提示Automation 服务器不能创建对象
- python爬虫请求头是什么意思_Pytho爬虫中Requests设置请求头Headers的方法
- Github Page 个人主页——自定义域名
- Android手机清除锁屏密码
- Linux用到的大数据相关命令
- AWS如何安全顺利关闭所有的免费服务
热门文章
- java猜拳游戏代码_猜拳游戏 - java代码库 - 云代码
- 编译原理总结(个人向)
- php中用js自定义弹窗,用js实现的自定义的对话框的实现代码_javascript技巧
- spikingjelly的20201221版本跑通ANN2SNN
- 【踩坑】Linux下配置torch-geometric
- 经典神经网络 | Faster R-CNN论文解析
- Python官方文档学习心得(第一章)
- python 录入数据不重复_python Django批量导入不重复数据
- 在windows7系统中显示和隐藏系统保留盘
- getter 和 setter方法