【状压DP】NOIP2016Day2T3[愤怒的小鸟]题解
来源:互联网 发布:淘宝网外贸店 编辑:程序博客网 时间:2024/05/16 23:52
解题报告
好像是比较简单的状压DP,我有一个数组没有清
定义
每次都枚举太慢,我们可以直接预处理
示例程序
#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define fr first#define sc second#define mp make_pairusing namespace std;typedef double DB;const int maxn=18,maxm=(1<<maxn);int te,n,m,g[maxn][maxn],f[maxm];pair<DB,DB> p[maxn];inline int fcmp(DB a,DB b) {if (fabs(a-b)<1e-10) return 0;if (a<b) return -1;return 1;}int main(){ freopen("angrybirds.in","r",stdin); freopen("angrybirds.out","w",stdout); for (scanf("%d",&te);te;te--) { scanf("%d%d",&n,&m);m=(1<<n)-1;memset(g,0,sizeof(g)); for (int i=0;i<n;i++) scanf("%lf%lf",&p[i].fr,&p[i].sc);sort(p,p+n); for (int i=0;i<n-1;i++) for (int j=i+1;j<n;j++) if (fcmp(p[i].fr,p[j].fr)) { DB A,B;A=(p[j].sc*p[i].fr/p[j].fr-p[i].sc)/(p[i].fr*p[j].fr-p[i].fr*p[i].fr); if (fcmp(A,0)>=0) continue;B=(p[i].sc-A*p[i].fr*p[i].fr)/p[i].fr; for (int k=0;k<n;k++) if (!fcmp(A*p[k].fr*p[k].fr+B*p[k].fr,p[k].sc)) g[i][j]|=1<<k; } memset(f,63,sizeof(f));f[0]=0; for (int s=0;s<m;s++) for (int i=0;i<n;i++) if (!(s&(1<<i))) { for (int j=i+1;j<n;j++) f[s|g[i][j]]=min(f[s|g[i][j]],f[s]+1); f[s|(1<<i)]=min(f[s|(1<<i)],f[s]+1); } printf("%d\n",f[m]); } return 0;}
阅读全文
0 0
- 【状压DP】NOIP2016Day2T3[愤怒的小鸟]题解
- [状压DP]【NOIP2016D2T3】愤怒的小鸟 题解
- NOIP2016愤怒的小鸟 题解报告 【状压DP】
- [NOIP] [状压DP] NOIP2016Day2 愤怒的小鸟
- 愤怒的小鸟(状压DP)
- [NOIP2016][状压DP]愤怒的小鸟
- NOIP2016 愤怒的小鸟 [状压DP]
- Noip2016 愤怒的小鸟 【状压DP】
- NOIP2016 愤怒的小鸟 (状压DP)
- NOIP2016 [愤怒的小鸟] 状压DP
- [noip2016]愤怒的小鸟 题解
- uoj265【2016提高】愤怒的小鸟(状压dp)
- 洛谷 P2831 愤怒的小鸟(状压dp)
- 【洛谷】2831 [Noip2016]愤怒的小鸟 状压DP
- 洛谷2831(NOIP2016)[愤怒的小鸟]--状压DP
- 【状压DP】UOJ#265 【NOIP2016】愤怒的小鸟
- Luogu2831/UOJ265[NOIP2016D2T3] 愤怒的小鸟【状压DP】
- [luogu-2831]noip2016-day2-T3 愤怒的小鸟 题解
- 第五次作业
- ionic+侧滑+轮播+刷新
- LuoguP1082[NOIP2012] 同余方程 解题报告【拓展欧几里得】
- 面经问题整理
- 用1,2,5组成和为100,求一共有多少种方式
- 【状压DP】NOIP2016Day2T3[愤怒的小鸟]题解
- ORB SLAM2 ROS单目摄像头环境搭建
- 【欧拉函数 && 求gcd(n, x) = y,x的个数】UVA
- (008) java后台开发之java程序中的控制结构
- L2-016. 愿天下有情人都是失散多年的兄妹
- C++ primer第五版 7.1.3节练习
- php设计模式---工厂模式
- Octave中句柄@的用法
- SGU103代码能力训练