精度卡了一个点,别人自带大常数,我自带大浮点误差qwq.

听了好几遍,一直没动手写一写。

f[S]表示S集合中的猪被打死的最少抛物线数,转移时考虑枚举两个点,最低位的0为第一个点,枚举第二个点,构造一条抛物线。

检查这条抛物线能否“顺便”打死更多的猪,然后转移即可。

注意存在一种情况,只剩下一个点,这时候要给最低位0单独开一条抛物线(体现在代码里就是f[i|(1<<(st-1))]单独转移一次)

//失误 这是一个
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath> using namespace std;
typedef long double db; const int MAXN=;
const db eps=1e-; inline void calc(db x1,db y1,db x2,db y2,db &a,db &b){
a=(db)1.0*(x1*y2-x2*y1)/(x1*x2*(x2-x1));
b=(db)1.0*(x1*x1*y2-x2*x2*y1)/(x1*x2*(x1-x2));
}
inline db F(db a,db b,db x){return (db)1.0*a*x*x+1.0*b*x;}
inline bool equal(db x,db y){return fabs(x-y)<=eps;} int n,useless; db px[MAXN],py[MAXN];
int f[<<MAXN]; void solve(){
scanf("%d%d",&n,&useless);
memset(f,0x7f,sizeof(f));
f[]=;
for(int i=;i<=n;i++) scanf("%Lf%Lf",&px[i],&py[i]);
int st=;db u,v;
for(int i=;i<(<<n);i++){
for(st=;st<=n;st++)if(!((<<(st-))&i))break;
f[i|(<<(st-))]=min(f[i|(<<(st-))],f[i]+);
for(int j=st+;j<=n;j++){
if((<<(j-))&i) continue;
int tmp=i|(<<(st-));
calc(px[st],py[st],px[j],py[j],u,v);
if(u>=) continue;
tmp|=(<<(j-));
for(int k=;k<=n;k++){
if(k==j||k==st) continue;
if(i&(<<(k-))) continue;
if(equal(F(u,v,px[k]),py[k])) tmp|=(<<(k-));
}
f[tmp]=min(f[tmp],f[i]+);
}
}
cout<<f[(<<n)-]<<endl;
} int main(){
int T;
scanf("%d",&T);
while(T--) solve();
return ;
}

[LOJ] #2363「NOIP2016」愤怒的小鸟的更多相关文章

  1. LOJ #2359. 「NOIP2016」天天爱跑步(倍增+线段树合并)

    题意 LOJ #2359. 「NOIP2016」天天爱跑步 题解 考虑把一个玩家的路径 \((x, y)\) 拆成两条,一条是 \(x\) 到 \(lca\) ( \(x, y\) 最近公共祖先) 的 ...

  2. [LOJ] #2360. 「NOIP2016」换教室

    期望DP #include<iostream> #include<cstring> #include<cstdio> #include<cctype> ...

  3. 「NOIP2016」愤怒的小鸟

    传送门 Luogu 解题思路 首先这个数据范围十分之小啊. 我们考虑预处理出所有可以带来贡献的抛物线 三点确定一条抛物线都会噻 然后把每条抛物线可以覆盖的点状压起来,然后状压DP随便转移就好了. 有一 ...

  4. Loj #2192. 「SHOI2014」概率充电器

    Loj #2192. 「SHOI2014」概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器: 「采用全新纳米级加工技术,实现元件与导线能否通电完 ...

  5. Loj #3096. 「SNOI2019」数论

    Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...

  6. Loj #3093. 「BJOI2019」光线

    Loj #3093. 「BJOI2019」光线 题目描述 当一束光打到一层玻璃上时,有一定比例的光会穿过这层玻璃,一定比例的光会被反射回去,剩下的光被玻璃吸收. 设对于任意 \(x\),有 \(x\t ...

  7. Loj #3089. 「BJOI2019」奥术神杖

    Loj #3089. 「BJOI2019」奥术神杖 题目描述 Bezorath 大陆抵抗地灾军团入侵的战争进入了僵持的阶段,世世代代生活在 Bezorath 这片大陆的精灵们开始寻找远古时代诸神遗留的 ...

  8. Loj #2542. 「PKUWC2018」随机游走

    Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次 ...

  9. Loj #3059. 「HNOI2019」序列

    Loj #3059. 「HNOI2019」序列 给定一个长度为 \(n\) 的序列 \(A_1, \ldots , A_n\),以及 \(m\) 个操作,每个操作将一个 \(A_i\) 修改为 \(k ...

随机推荐

  1. Ecliplse 指定JRE

    http://blog.csdn.net/hongweigg/article/details/9987649 在Eclipse启动的过程中,它会去找系统环境变量设置的JRE_HOME或JDK_HOME ...

  2. Mr.Jin系统发布报告——WIN7 WIN8双系统下的学习模式系统

    Mr.Jin系统发布报告           本文由Mr.Jin原创发表于博客园.CSDN论坛 http://www.cnblogs.com/CHPowerljp-IT/p/3463850.html ...

  3. 黑客攻防技术宝典web实战篇:工具web服务器习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 在什么情况下 Web 服务器会显示目录列表? 如果请求某目录的 URL 且满足以下条件,W ...

  4. ipset 学习总结

    用途:当机器受到网络攻击时,使用 iptables 封 IP,有时候可能会封禁成千上万个 IP,如果添加成千上万条规则, 在一台注重性能的服务器或者本身性能就很差的设备上就不在适用了.ipset 就是 ...

  5. 递推DP HDOJ 5459 Jesus Is Here

    题目传送门 题意:简单来说就是sn = sn-1 + sn-2递推而来,求其中所有c字符的:∑i<j:sn[i..i+2]=sn[j..j+2]=‘‘cff"(j−i) mod 530 ...

  6. 18.3.2从Class上获取信息(方法)

    package d18_3_1; import java.lang.reflect.Method; import java.util.Arrays; /** * 获取Class对应类所包含的方法的四个 ...

  7. [转]FaceBook ATC 弱网测试工具环境搭建

    工具简介 ATC是FaceBook开源的移动网络测试工具Augmented Traffic Control(ATC),能够方便的让我们模拟各种网络环境进行测试. ATC有两个最吸引人的特点: 在手机上 ...

  8. MATLAB学习总结(1)

    MATLAB学习总结(1)   path help path cd(current directory) savepath pathtool

  9. 分布式技术EJB3_分库架构 - 【动力节点官网】北京Java …

    分布式技术EJB3_分库架构 - [动力节点官网]北京Java … http://www.bjpowernode.com/xiazai/2220.html <程序天下--EJB JPA数据库持久 ...

  10. (转)SpringMVC学习(七)——Controller类的方法返回值

    http://blog.csdn.net/yerenyuan_pku/article/details/72511844 本文所有案例代码的编写均建立在前文SpringMVC学习(六)——SpringM ...