博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[NOIP2016]愤怒的小鸟
阅读量:4328 次
发布时间:2019-06-06

本文共 1935 字,大约阅读时间需要 6 分钟。

搜索基础

EndSaH的

#include
using namespace std;const int MAXN=20;const double eps=1e-6;struct Point{ double x,y;}p[MAXN],surp[MAXN];struct Para{ double a,b;}par[MAXN];int T,n,m,ans;inline bool equal(double x,double y){ return x-y>=-eps&&x-y<=eps;}inline bool inc(double a,double b,double x,double y){ return equal(a*x*x+b*x,y);}inline void build(double &a,double &b,double x1,double y1,double x2,double y2){ a=(x2*y1-x1*y2)/(x1*x2*(x1-x2)); b=(x1*x1*y2-x2*x2*y1)/(x1*x2*(x1-x2));//矩阵乘法+逆矩阵求法 }inline void dfs(int now,int num,int rest){//DFS最重要的是分清楚情况 if(num+rest>=ans) return; if(now>n){ ans=num+rest; return; } for(int i=1;i<=num;i++){ if(inc(par[i].a,par[i].b,p[now].x,p[now].y)){ dfs(now+1,num,rest);//此点已被覆盖 return; } } for(int i=1;i<=rest;i++){ if(equal(p[i].x,p[now].x)) continue; double a,b; build(a,b,surp[i].x,surp[i].y,p[now].x,p[now].y);//组成新抛物线 if(a<0){ par[num+1]=(Para){a,b}; Point tmp=surp[i]; for(int j=i;j<=rest-1;j++) surp[j]=surp[j+1]; dfs(now+1,num+1,rest-1); for(int j=rest;j>=i+1;j--) surp[j]=surp[j-1]; surp[i]=tmp; } } surp[rest+1]=p[now];//不与任何点组成新抛物线 dfs(now+1,num,rest+1);}int main(){ scanf("%d",&T); while(T--){ ans=1e9; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scanf("%lf%lf",&p[i].x,&p[i].y); } dfs(1,0,0); printf("%d\n",ans); }}

\(DP\)做法

#include
using namespace std;const int INF=1e8;double x[20],y[20];int para[200],dp[1<<18];int n,m,countpara;int Min(int x,int y){return x
=-1e-6&&t<=1e-6;//精度判断 }void pre(){ scanf("%d%d",&n,&m); for(int i=0;i<(1<
=0) continue; para[countpara]=(1<

转载于:https://www.cnblogs.com/lizehon/p/10630570.html

你可能感兴趣的文章
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-6.微信扫码登录回调本地域名映射工具Ngrock...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-8.用户模块开发之保存微信用户信息...
查看>>
Linux下Nginx安装
查看>>
LVM扩容之xfs文件系统
查看>>
Hbase记录-client访问zookeeper大量断开以及参数调优分析(转载)
查看>>
代码片段收集
查看>>
vue-cli3创建项目时报错
查看>>
输入1-53周,输出1-53周的开始时间和结束时间
查看>>
实验二
查看>>
shell——按指定列排序
查看>>
crash 收集
查看>>
507 LOJ 「LibreOJ NOI Round #1」接竹竿
查看>>
UI基础--烟花动画
查看>>
2018. 2.4 Java中集合嵌套集合的练习
查看>>
精通ASP.NET Web程序测试
查看>>
vue 根据不同属性 设置背景
查看>>
51Nod1601 完全图的最小生成树计数 Trie Prufer编码
查看>>
Codeforces 1110D. Jongmah 动态规划
查看>>
android驱动在win10系统上安装的心酸历程
查看>>
优雅的程序员
查看>>