愤怒的小鸟(十分版)
来源:互联网 发布:ubuntu14.04安装php 编辑:程序博客网 时间:2024/05/04 12:50
// 难道是被卡了精度??
#include<iostream>
#include<cstdio>#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const double eps=1e-8;
inline int read(){
int num=0,f=1; char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9') num=num*10+ch-'0',ch=getchar();
return num;
}
double x[25],y[25];
int dp[(1<<19)],p[25][25],t,n,m;;
void dfs(int x,int y,int z){
if(dp[y]!=-1&&dp[y]<=z) return;
dp[y]=z;
if(y==(1<<n)-1) return ;
for(int i=x;i<=n;i++){
if(y&(1<<(i-1))) continue;
for(int j=i+1;j<=n;j++){
if(y&(1<<(j-1))) continue;
if(p[i][j]==0) continue;
dfs(x+1,(y|p[i][j])+(y&p[i][j]),z+1);
}
}
for(int i=x;i<=n;i++){
if(!(y&(1<<(i-1)))){
dfs(x+1,y|(1<<(i-1)),z+1);
}
}
}
int main(){
scanf("%d",&t);
while(t--){
n=read(),m=read();
for(int i=0;i<(1<<19);i++) dp[i]=-1;
for(int i=1;i<=n;i++) scanf("%lf%lf",&x[i],&y[i]);
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
double a=(y[i]/x[i]-y[j]/x[j])/(x[i]-x[j]),
b=y[i]/x[i]-a*x[i];
for(int k=1;k<=n;k++){
if(fabs(a*x[k]*x[k]+b*x[k]-y[k])<eps){
p[i][j]|=(1<<(k-1));
}
}
}
}
dfs(1,0,0);
printf("%d\n",dp[(1<<n)-1]);
}
return 0;
}
阅读全文
0 0
- 愤怒的小鸟(十分版)
- 愤怒的小鸟(满分版)
- 奋怒的小鸟 愤怒的小鸟 PC版
- 【转】愤怒的小鸟 PC汉化版
- 匀速运动,太空版愤怒的小鸟
- 精简版—愤怒的小鸟
- 愤怒的小鸟(状压DP)
- NOIP2016愤怒的小鸟(洛谷2831)
- NOIP2016 愤怒的小鸟 (状压DP)
- 洛谷P2831 愤怒的小鸟 (NOIp2016)
- 愤怒的小鸟
- 愤怒的小鸟
- 愤怒的小鸟
- [NOIP2016] 愤怒的小鸟
- NOIP2016愤怒的小鸟
- P2831 愤怒的小鸟
- luoguP2831 愤怒的小鸟
- [NOIP2016]愤怒的小鸟
- R2: 已解释和未解释的方差
- Tornado官方文档(一)【快速开始】
- 35.Oracle杂记——Oracle常用动态视图v$SQL_PLAN
- c语言递归阶乘汉诺塔文曲星游戏词典制作文件调用整合
- 迭代器模式
- 愤怒的小鸟(十分版)
- Redis事务
- Python编码问题
- for循环
- 36.Oracle杂记——Oracle常用动态视图V$SQL_PLAN_STATISTICS
- c# Visual Studio2015不能创建项目
- Web服务器高并发的解决方案&TCP沾包问题&服务器TIME_WAIT异常
- 小程序学习心得之事件冒泡
- 基于OpenCV-python3实现抠图&替换背景图