题解-NOI2003 智破连环阵】的更多相关文章

题面 NOI2003 智破连环阵 有 \(m\) 个靶子 \((ax_j,ay_j)\) 和 \(n\) 个箭塔 \((bx_i,by_i)\).每个箭塔可以射中距离在 \(k\) 以内的靶子.第 \(i+1\) 只有第 \(i\) 个靶子被射中时才能被射中.每个箭塔只能用一次,现在可以安排每个箭塔的射击顺序,求最少需要几个箭塔可以射光 \(m\) 靶子. 数据范围:\(1\le m,n\le 100\),\(1\le k\le 1000\),\(1\le ax_j,ay_j,bx_i,by_i…
LINK:智破连环阵 考试的时候 题意没理解清楚 题目是指一个炸弹爆炸时间结束后再放另一个炸弹 而放完一个炸弹紧接另一个炸弹.题目中存在然后二字. 这样我们可以发现某个炸弹只会炸连续的一段. 但是 由于点的坐标虽然只在第一象限 炸弹也在第一象限 不过简单的设出几个状态可以发现 是不可行的. 状压也不行.考虑贪心但是还是要要考虑坐标以及序号的问题 所以很难贪出正确答案. 无奈之下只能选择搜索了 一种比较简单的搜索方式还是搜出把序列分段. 可以发现这样复杂度最坏是2^n的. 求出分段之后我们还需要考…
目录 题意描述 算法分析 闲话 初步分析 具体思路 剪枝一 剪枝二 剪枝三 总结一下 代码实现 预处理 剪枝一 剪枝二 剪枝三 二分图匹配 代码综合 结语 又是被楼教主虐的体无完肤的一天 题意描述 在一个平面坐标系中,有 \(M\) 个目标点和 \(N\) 个炸弹,你的目标是用尽量少的炸弹炸毁所有目标. 目标点是有顺序的,只有每个目标点的前一个被毁灭,它才能被攻击. 每个炸弹可以炸到距离它不超过 \(k\) 个单位长度的点,一旦一个炸弹被启用,就可以一直对攻击范围内的点攻击. 求使用炸弹的最少数…
描述 B国在耗资百亿元之后终于研究出了新式武器--连环阵(Zenith Protected Linked Hybrid Zone).传说中,连环阵是一种永不停滞的自发性智能武器.但经过A国间谍的侦察发现,连环阵其实是由M个编号为1,2,-,M的独立武器组成的.最初,1号武器发挥着攻击作用,其他武器都处在无敌自卫状态.以后,一旦第i(1<=i< M)号武器被消灭,1秒种以后第i+1号武器就自动从无敌自卫状态变成攻击状态.当第M号武器被消灭以后,这个造价昂贵的连环阵就被摧毁了. 为了彻底打击B国科…
Description B国在耗资百亿元之后终于研究出了新式武器——连环阵(Zenith Protected Linked Hybrid Zone).传说中,连环阵是一种永不停滞的自发性智能武器.但经过A国间谍的侦察发现,连环阵其实是由M个编号为1,2,…,M的独立武器组成的.最初,1号武器发挥着攻击作用,其他武器都处在无敌自卫状态.以后,一旦第i(1<=i< M)号武器被消灭,1秒种以后第i+1号武器就自动从无敌自卫状态变成攻击状态.当第M号武器被消灭以后,这个造价昂贵的连环阵就被摧毁了.为…
一个炸弹炸一个区间的武器,想到二分图匹配 但是直接dfs断点显然不行,预处理出dis[i]为i到m的至多值来最优性剪枝,并且标记ok[i][j]为炸弹i可以炸到j武器,mx[i][j]为i炸弹从j武器开始最远能炸到哪,c[i][j]为i炸弹炸到1时候有j这个右端点 然后dfs+二分图匹配即可 #include<iostream> #include<cstdio> using namespace std; const int N=105; int m,n,k,lk[N],v[N],t…
(以下在描述复杂度时,认为$n$和$m$相同,因此一律使用$n$) 称第$i$个炸弹能匹配非空区间$[l,r]$,当且仅当$l$到$r$内所有武器都在$i$攻击范围内,且$r=m$或第$r+1$个武器不在$i$攻击范围内 (更通俗的表示即在第$l$个武器启动时,使用第$i$个炸弹恰好会攻击到第$r$个武器) 关于这个区间的匹配,显然可以在$o(n^{2})$的时间内预处理 下面,将$n$个武器划分为若干个区间,分别表示每一个炸弹所破坏的武器(恰好),爆搜来确定区间划分后,只需判定其是否合法,并用…
私のZJOI Day1 2017-3-21 07:52:53 有人在暴力膜 苟-- 富贵 无相忘 ZJOI2017交流群 133135071 如果你足够厉害 如果你足够厉害 如果你足够厉害 其实完全可以看那些大佬的ppt,分享见网址大佬ppt. ps:其实本人就是抄抄他们ppt,下午最后一节课实在想睡觉就没有认真听了...滑稽.jpg 以下正文 搜索专题 学军中学 周子鑫 题目传送门 NOIP2012 普及组 文化之旅 NOIP2015 提高组 斗地主 NOI2010 方程的解数 ZJOI200…
A 文本编辑器 无旋treap真好看 B 木棒游戏 暴力神仙题 C 数据生成器 树的直径两端点为Y, Z D 智破连环阵 搜索+二分图匹配优化 第一次写欸 列一下 void dfs (int y,int z)//划分到第几个点 划分了多少段 { 最优化剪枝 边界处理 注意要另存一波匹配 for (int i=y;i<=m;i++)//这一段划在哪里 { 加入对于这一段可行的边 如果有匹配 那么向下dfs 还原边 } }…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
NOIP 2017 全假模拟冲刺                                               hkd 题目名称 Spfa 走楼梯缩小版 滑稽 题目类型 传统 传统 传统 可执行文件名 spfa small huaji 输入文件名 spfa.in small.in huaji.in 输出文件名 spfa.out small.out huaji.out 每个测试点时限 1.0s 0.2s 1.5s 内存限制 256 MB 128 MB 128 MB 测试点数目 10…
之前研究过AMD,也写过一篇关于AMD的文章<以代码爱好者角度来看AMD与CMD>.代码我是有看过的,基本的原理也都明白,但实际动手去实现却是没有的.因为今年计划的dojo教程<静静的dojo>中,有一章节来专门讲解AMD,不免要把对AMD的研究回炉一下.时隔多日,再回头探索AMD实现原理时,竟抓耳挠腮,苦苦思索不得要领.作为开发人员,深感惭愧.故有此文,记录我在实现一个AMD加载器时的思考总结. requireJS是所有AMD加载器中,最广为人知的一个.目前的版本更凝聚了几位大牛…
题目链接: D. Vanya and Treasure time limit per test 1.5 seconds memory limit per test 256 megabytes input standard input output standard output Vanya is in the palace that can be represented as a grid n × m. Each room contains a single chest, an the room…
在<Java编程思想>中关于泛型的讲解中,提到了自限定类型: class SelfBounded<T extends SelfBounded<T>> 作者说道: 这就像两面镜子彼此照向对方所引起的目眩效果一样,是一种无限反射. SelfBounded类接受泛型参数T,而T由一个边界限定,这个边界就是拥有T作为其参数的SelfBounded 接下来,作者用了近3页的纸来进行解释这个问题,且语言极其晦涩难懂(可能是翻译的问题),但是最后给了一个非常好的例子,可破此阵: cl…
Problem E: Su-Su-Sudoku/center> 题目连接: http://codeforces.com/gym/100646/attachments Description By now, everyone has played Sudoku: you're given a 9-by-9 grid of boxes which you are to fill in with the digits 1 through 9 so that 1) every row has all n…
NOIP 2017 全假模拟冲刺 T1 Spfa 题目描述B 国在耗资百亿元之后终于研究出了新式武器——连环阵(Zenith ProtectedLinked Hybrid Zone).传说中,连环阵是一种永不停滞的自发性智能武器.但经过 A 国间谍的侦察发现,连环阵其实是由 M 个编号为 1,2,…,M 的独立武器组成的.最初,1 号武器发挥着攻击作用,其他武器都处在无敌自卫状态.以后,一旦第 i(1<=i< M)号武器被消灭,1 秒种以后第 i+1 号武器就自动从无敌自卫状态变成攻击状态.当…
题解降智警告 吐槽降智警告 思路降智警告 代码降智警告 题目传送门 洛谷 果然水题做多了连半道难点的都能给咱干蒙... 水题做多了降智  --鲁迅 题目大意:见传送门 心路历程见末尾 正解(大概): 状压 虽然有些难以理解,但是这道题里面有两种集合 一种是第i台电脑所联通的合起来就是S[i](代码内的line[i]) 另一种是指已经用了哪几台电脑 思路开始 反正无论如何一定得用几个S[i]拼成一个全集(1<<n)-1 于是就有了 struct Union { int A; }U[<<…
块状链表及其应用 思路楼上已经说的很清楚了 看代码注释 代码很丑 #include<cstdio> #include<cctype> #include<cstring> //#define gc() getchar() #define MAXIN 100000 #define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++) const int N=1024*1024…
https://www.lydsy.com/JudgeOnline/problem.php?id=1509 https://www.luogu.org/problemnew/show/P4408 sb题,但是我至今不知道为什么这张图就一定是棵树……这题意没说明白啊…… 显然求直径,再求一点使得该点到直径两端的点的距离的最小值最大. 没有什么好方法,最后一个点只能暴力,所以我们预处理两端点到每个点的dis即可. 于是我们两遍bfs求直径,顺道就给做了就行. (然后我不会bfs求直径,我只会dp求……
Analysis 题意虽然说先去谁家再去谁家,但是我们不需要管这个,因为AA.BB.CC三个点我们可以任意互相交换它们所代表的对象,所以题目要求的就是在一棵树上找到3个点AA.BB.CC令AB+BCAB+BC最大,同时要满足AC>ABAC>AB. 由于这是一棵树,它满足非常可爱的性质,就是如果找一个点出去两条路径使它们的合最大,那么一条是直径时一定会存在一种最大的方案. 所以我们可以使要找的两条路径其中一条是直径(设为ABAB),然后枚举剩下的点,找到一个到达直径端点最长的另一条路径,不过因为…