马上就要告别noip了呢。

这道题大家都说dfs可过。

但是数据范围一眼状压啊。

首先假设点是有序的(选取有先后顺序),其实这并不影响什么,但是却省下大量的时间和代码长度。

然后状压,dp[i]表示状态为i最少需要再用几条抛物线。

注意在枚举每一个点的抛物线的时候考虑在这个抛物线上会不会有其它点与它重合。

#include<bits/stdc++.h>
using namespace std;
#define eps 1e-10
inline double abs1(double a){return max(a, -a);}
int dp[(<<)];
double x[],y[];
int n;
double a,b;
void calc(int i,int j){
if(x[i]==x[j]){
a=;return ;
}
b=(y[i]*x[j]*x[j]-y[j]*x[i]*x[i])/(x[i]*x[j]*(x[j]-x[i]));
a=(y[i]-x[i]*b)/(x[i]*x[i]);
} int dfs(int i,int st){
if(dp[st])return dp[st];
if(!st)return ;
if(!((<<(i-))&st))return dp[st]=dfs(i+,st);
int ret=+dfs(i+,st^(<<(i-)));//自己一条抛物线
int sta=st;
for(int j=i+;j<=n;j++){//两点确定一条抛物线,所以只要枚举下一个点就害了
if((<<(j-))&sta){
sta|=(<<(j-));
calc(i,j);
if(a>-eps)continue;//判断能否在同一条抛物线上
int tmp=st^(<<(j-))^(<<(i-));
for(int k=i+;k<=n;k++){
if(!(tmp&(<<(k-))))continue;
double yy=a*x[k]*x[k]+b*x[k];
if(abs1(yy-y[k])<eps){
tmp^=(<<(k-));sta|=(<<(k-));}
}
ret=min(ret,+dfs(i+,tmp));
}
}
return dp[st]=ret;
}
int T;
int main(){
scanf("%d",&T);
while(T--){
memset(dp,,sizeof(dp));
int m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)dp[<<(i-)]=;
for(int i=;i<=n;i++)scanf("%lf%lf",&x[i],&y[i]);
dfs(,(<<n)-);
printf("%d\n",dp[(<<n)-]);
}
return ;
}

NOIP系列(续)的更多相关文章

  1. HBase之CF持久化系列(续3——完结篇)

    相信大家在看了该系列的前两篇文章就已经对其中的持久化有比较深入的了解.相对而言,本节内容只是对前两节的一个巩固.与持久化相对应的是打开文件并将其内容读入到内存变量中.而在本节,我就来介绍这一点. 本节 ...

  2. HBase之CF持久化系列(续2)

    正如上篇博文所说,在本节我将为大家带来StoreFlusher.finalizeWriter..如果大家没有看过我的上篇博文<HBase之CF持久化系列(续1)>,那我希望大家还是回去看一 ...

  3. NOIP系列复习及题目集合

    首先是我的酱油记了啦~: Xs的NOIP2014酱油记,持续更新中 知识点方面: noip知识点总结之--贪心 noip知识点总结之--线性筛法及其拓展 noip知识点总结之--欧几里得算法和扩展欧几 ...

  4. HBase之CF持久化系列(续1)

    这一节本来打算讲解HRegion的初始化过程中一些比较复杂的流程.不过,考虑前面的博文做的铺垫并不够,因此,在这一节,我还是特意来介绍HBase的CF持久化.关于这个话题的整体流程性分析在博文< ...

  5. NOIP系列

    NOIP2015运输计划 唉 真是 这题 卡死我了 tarjan离线lca复杂度O(n) 最后各种卡常,多交几遍才A(洛谷104ms) %%%zk学长609ms 注意二分的时候左边界要定成0 根据题意 ...

  6. 汉若塔系列续:汉诺塔VIII、汉诺塔IX、汉诺塔X。

    汉诺塔VIII,在经典汉若塔问题上,问n个盘子的情况下,移动m次以后,是什么状态.(与第七代互为逆命题) 我的思路:本质还是dfs,但是用m的值来指引方向,每搜一层确定第i个盘子在哪个塔,o(n)的算 ...

  7. 圣魔大战3(Castle Fantisia)艾伦希亚战记完美攻略

    作为城堡幻想曲系列续作,艾伦希亚战记继承了前作的战棋+养成模式进行游戏. (城堡幻想曲3,纠正大家个错误哦,不是圣魔大战3,圣魔大战是城堡幻想曲2,圣魔大战不是个系列,艾伦西亚战记==艾伦希亚战记,一 ...

  8. c++stl应用入门

    在这篇中,我会讲几个简单易懂且比较常用的stl函数,这些函数在noip系列考试中往往被允许使用(既然让用我们自然不用手码了...) (末尾有惊喜!) 1.sort 绝大部分刚入门的oier第一个接触的 ...

  9. 用Mochiweb打造百万级Comet应用,第一部分

    http://www.iteye.com/topic/267028 原文:A Million-user Comet Application with Mochiweb, Part 1 参考资料:Com ...

随机推荐

  1. 第四模块:网络编程进阶&数据库开发 第2章·MySQL数据库开发

    01-MySQL开篇 02-MySQL简单介绍 03-不同平台下安装MySQL 04-Windows平台MySQL密码设置与破解 05-Linux平台MySQL密码设置与破解 06-Mac平台MySQ ...

  2. 前端开发工程师 - 04.页面架构 - CSS Reset & 布局解决方案 & 响应式 & 页面优化 &规范与模块化

    04.页面架构 第1章--CSS Reset 第2章--布局解决方案 居中布局 课堂交流区 水平列表的底部对齐 如图所示,一个水平排列的列表,每项高度都未知,但要求底部对齐,有哪些方法可以解决呢? & ...

  3. 【WXS全局对象】Global

    Global对象的方法调用时,无需使用 Global.parseInt(...),而是直接使用 parseInt(...) 方法: 名称 说明 parseInt(string, radix) 解析一个 ...

  4. 关于java中“使用了未经检查或不安全的操作、有关详细信息,请使用 ——Xlint:unchecked重新编译”

    今天看<算法 第4版>排序章节时,发现了一个了一个小问题.先贴一下代码: public class Selection{ public static void main(String[]a ...

  5. 【聚合报告】- 秒懂jmeter

  6. DP动态规划练习

    先来看一下经典的背包问题吧 http://www.cnblogs.com/Kalix/p/7617856.html  01背包问题 https://www.cnblogs.com/Kalix/p/76 ...

  7. Python基础 之 set集合 与 字符串格式化

    数据类型的回顾与总结 可变与不可变1.可变:列表,字典2.不可变:字符串,数字,元组 访问顺序:1.直接访问:数字2.顺序访问:字符串,列表,元祖3.映射:字典 存放元素个数:容器类型:列表,元祖,字 ...

  8. Quartz定时器原理与使用

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是一个完全由java编写的开源作业调度框架. Quartz可以用来创建简单或为运行十个,百个,甚至是好几 ...

  9. SpringBoot在IntelliJ IDEA下for MAC 热加载

    说在前面 热加载:文件内容变更服务器自动运行最新代码.实则在IDEA环境进行热部署后,下述过程一气呵成. 1代码变更,文件自动保存(IDEA自动保存代码,用户无需使用COMMAND+SAVE快捷键): ...

  10. c# word 删除指定内容

    1.首先简单的是获取得到的range,直接rangge.delete() 2.文本框的删除: foreach (Microsoft.Office.Interop.Word.Shape shape in ...