NOIP愤怒的小鸟】的更多相关文章

愤怒的小鸟 Description: 给你\(n<=18\)个小猪,发射的小鸟轨迹为抛物线,求最小用多少个小鸟可以将小猪全部干掉 看到n很小,我想到了搜索,于是我用\(dfs\)枚举出,每个抛物线打掉的小猪集合然后判断他的合法性,结果TLE成了50分,mmp,瞄了一眼题解,看到他是枚举小猪,来确定抛物线,感觉妙了很多,于是我写了如下的 code: #include<cstdio> #include<cstring> #include<iostream> using…
[NOIP2016]愤怒的小鸟 时间限制:1 s   内存限制:256 MB [题目描述] Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如y = ax^2 + bx的曲线,其中a, b是Kiana指定的参数,且必须满足a<0. 当小鸟落回地面(即x轴)时,它就会瞬间消失. 在游戏的某个关卡里,平面的第一象限中有n只绿色的小猪,其中第i只小猪所在的坐标为…
愤怒的小鸟 noip-d2t3 luogu-2831 题目大意:给你n个点,问最少需要多少条经过原点的抛物线将其覆盖. 注释:1<=点数<=18,1<=数据组数<=30.且规定抛物线是开口向下的. 想法:其实一开始的想法是很偏的,就是设dp[i][j][k]表示在状态k下建立$i_{th}$和$j_{th}$的抛物线的最少条数,然后向后转移.这显然是错误的,错误原因在于... 我日,没个转移.然后看了一下lijinnn的题解...啊?切了. 是这样的,我们通过记录每条抛物线所能覆盖…
Description Input Output Sample Input 22 01.00 3.003.00 3.005 21.00 5.002.00 8.003.00 9.004.00 8.005.00 5.00 Sample Output 11 Sample Explanation HINT 题解 暴力做法: 1.因为三点可以确定一条抛物线,又必过原点,那么只需要再找两个点就能确定一条抛物线; 2.枚举点对,求出抛物线方程,注意两点的$x$坐标不能相等,抛物线的二次项系数必须小于$0$;…
Problem Description \(Kiana\) 最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于 \((0,0)\) 处,每次 \(Kiana\) 可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如 \(y=ax^2+bx\) 的曲线,其中 \(a,b\) 是\(Kiana\)指定的参数,且必须满足 \(a < 0,a,b\) 都是实数. 当小鸟落回地面(即 \(x\) 轴)时,它就会瞬间消失. 在游戏的某个关卡里,平面的第一象…
[题意]Universal Online Judge [算法]状态压缩型DP [题解]看数据范围大概能猜到是状压了. 根据三点确定一条抛物线,枚举两个点之间的抛物线,再枚举有多少点在抛物线上(压缩为状态c[]),这样预处理出至多n*n/2+n条抛物线.(注意加上只经过一点的抛物线) 然后f[i]表示猪的消灭状态为i的最小步数,转移方程:f[i&c[j]]=min(f[i&c[j]],f[i]+1). #include<cstdio> #include<cstring>…
题面 题解 好像昨天wxl大爷讲的是O(Tn*2^n)的做法,后来没想通,就自己写了个O(Tn^2*2^n)的暴力状压, 莫名其妙过了??数量级二十亿??懵逼,可能到了CCF老爷机上就T了.dp[S]表示现在猪的状态, 然后枚举两只鸟,然后开炮. 代码 #include<bits/stdc++.h> using namespace std; const int MAXN = 18; const int inf = 0x3f3f3f3f; const double eps = 1e-6; //精…
貌似还没有写过状压DP的题目,嗯,刚好今天考了,就拿出来写一写吧. 题目大意: 额,比较懒,这次就不写了... 思路分析: 先教大家一种判断题目是不是状压DP的方法吧. 很简单,那就是--看数据范围!一般状压DP的题目,数据都会在10到20左右. 那么有了状压的思路以后,这题应该怎么来做呢? 很容易想到的是:枚举任意两个点,算出抛物线的解析式,然后预处理出n2条抛物线每条抛物线经过猪的集合(假设存在line[i,j]中),预处理就是这样了.状压DP的话就是,二进制第i位的0/1表示第i只猪是否被…
Day1 思路: 大致是 把一个环拆成链, 找某个人无非是向右找或向左找(即对当前点加或减) 若加上要移动的位置后坐标大于总人数, 就把当前坐标减去总人数, 若减去要移动的位置后坐标小于0, 就把当前坐标加上总人数 另外要注意的就是每个小人的朝向问题, 这个也很好解决. 通过观察不难发现,小人面朝里, 向右移动的话, 就是加, 向左为减. 小人面朝外则反之. 最后输出当前坐标小人的名称. #include <iostream> #include <cstdio> #include…
[题外话] 感谢UBUNTU为保存程序做出贡献:https://paste.ubuntu.com : 感谢洛谷OJ的私人题库保存题面:https://www.luogu.org : 现在我的题解的所有程序均保存在UBUNTU上,需要时单击超链接查看 : 由于题目的不确定性,现在所有测试数据的建立全部来自于参加本次巨石杯的选手 OYCY & LSH 下面的程序为本人程序,暂且未知评测状态,会有误差,会及时更正!!! 5月14日 绿城育华NOIP巨石杯试卷解析 T1 最大的最小 [地址]https:…