洛谷 P2831 愤怒的小鸟】的更多相关文章

洛谷P2831 愤怒的小鸟 原题链接 题解 首先简单数学公式送上. \(ax_1^2+bx_1=y_1\) \(ax_2^2+bx_2=y_2\) \(ax_1^2x_2+bx_1x_2=y_1x_2\) \(ax_2^2x_1+bx_2x_1=y_2x_1\) \(a=(y_1x_2-y_2x_1)/x_1x_2(x_1-x_2)\) \(b=(y_1-ax_1^2)/x_1\) 不用证明吧... 85分 状态压缩.每次枚举两个点计算抛物线,然后消除这条线上所有点,再转移. // It is…
P2831 愤怒的小鸟 题目描述 Kiana 最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于 (0,0)(0,0) 处,每次 Kiana 可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如 y=ax^2+bxy=ax2+bx 的曲线,其中 a,ba,b 是Kiana 指定的参数,且必须满足 a < 0a<0,a,ba,b 都是实数. 当小鸟落回地面(即 xx 轴)时,它就会瞬间消失. 在游戏的某个关卡里,平面的第一象限中有 nn 只绿色…
这三道题一起做,有一点心得吧. 愤怒的小鸟,一眼看上去是爆搜,但是实现起来有困难(我打了0分出来). 还有一种解法是状压DP. 抛物线一共只有那么多条,我们枚举抛物线(枚举两个点),这样就能够预处理出b[i][j] 表示过点i,j的抛物线经过的点(状压). 然后写了个记忆化搜索,枚举每个状态是通过哪个抛物线转移而来(可能转移后比现状态经过的点要多,但是不影响答案正确性) 那么就这样A了... 论状态压缩的多种应用——篮球比赛2: 这题也是状压DP,但是DP的状态设计很NB: f[i][sta]表…
题目:https://www.luogu.org/problemnew/show/P2831 一开始想 n^3 贪心来着: 先按 x 排个序,那么第一个不就一定要打了么? 在枚举后面某一个,和它形成一条抛物线,选能顺便打掉最多的那个: 然后连样例都过不了... #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #def…
传送门 状压一眼题. 直接f[i]f[i]f[i]表示未选择状态为iii时的最小次数. 然后考虑现在怎么转移. 显然可以直接枚举消掉某一个点或者某两个点,复杂度O(n22n)O(n^22^n)O(n22n) 由于这个集合里面的所有点最终都会被消掉,因此顺序并不重要. 于是可以强制这一步会消掉lowbit(i)lowbit(i)lowbit(i) 那么当前有两个选择: 只消掉lowbit(i)lowbit(i)lowbit(i) 还会消掉其它的. 第一种直接递归,第二种可以预处理数组f[i][j]…
题意 题目链接 Sol 这题....我样例没过就A了??..算了,就当是样例卡精度吧.. 直接状压dp一下,\(f[sta]\)表示干掉\(sta\)这个集合里面的鸟的最小操作数 转移的时候判断一下一次能干掉多少鸟.. #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 100001; inline int read() { char c = getchar(); int x =…
愤怒的小鸟 题目链接 本来是刷状压DP的,然而不会.. 搜索是比较好想的,直接dfs就行了 我们可以知道两只猪确定一条抛物线 依次处理每一只猪,有以下几种方法: 1.先看已经建立的抛物线是否能打到这只猪 2.若1不可行,将这只猪与之前单着的猪配对,建抛物线 3.将这只猪单着,等待以后配对(若配不上,直接建一个只打一头猪的抛物线) 代码: #include<iostream> #include<cstring> #include<cstdio> using namespa…
题目:https://www.luogu.org/problemnew/show/P2831 状压dp.跑得很慢.(n^2*2^n) 注意只打一只猪的情况. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; ;; <<Lm)+],lm,tot,tp,list[Lm*…
noip好难呀. 上一个感觉有点长了,重开一个. 36.Vigenère 密码 粘个Openjudge上的代码 #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include <cstdlib> #include <algorithm> #include <iomanip> using namespace std; char a[…
其实我做的是洛谷的P3943,但是听说fstqwq窃题...... 题目描述: 小 C 拿来了一长串星型小灯泡,假装是星星,递给小 F,想让小 F 开心一点.不过,有 着强迫症的小 F 发现,这串一共 n 个灯泡的灯泡串上有 k 个灯泡没有被点亮.小 F 决定 和小 C 一起把这个灯泡串全部点亮. 不过,也许是因为过于笨拙,小 F 只能将其中连续一段的灯泡状态给翻转--点亮暗灯 泡,熄灭亮灯泡.经过摸索,小 F 发现他一共能够翻转 m 种长度的灯泡段中灯泡的状态. 小 C 和小 F 最终花了很长…