1. 程式人生 > >UOJ265 【NOIP2016】憤怒的小鳥

UOJ265 【NOIP2016】憤怒的小鳥

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cmath>
 4 #include <cstring>
 5 #include <algorithm>
 6 #include <string>
 7 #include <ctime>
 8 #include <queue>
 9 #include <vector>
10 #include <cstdlib>
11 using namespace std;
12 typedef long
long LL; 13 const int MAXN = 45; 14 const double eps = 1e-10; 15 int T,n,m,ans,dui[MAXN]; 16 bool vis[MAXN]; 17 double dd[MAXN][2]; 18 double hehe,lim; 19 bool ok; 20 struct node{ double x,y; }a[MAXN]; 21 inline bool cmp(node q,node qq){ if(q.x==qq.x) return q.y<qq.y; return q.x<qq.x; } 22 inline double
ABS(double x){ if(x<0) return -x; return x; } 23 inline void dfs(int x,int num1,int num2,int use){ 24 if(x==n+1) { if(use<ans) ans=use; return ;} 25 double nowy; if(use>=ans) return ; 26 for(int i=1;i<=num2;i++) { 27 nowy=a[x].x*a[x].x*dd[i][0]+dd[i][1]*a[x].x; 28 if
(ABS(nowy-a[x].y)<=eps) { dfs(x+1,num1,num2,use); return ; } 29 } 30 int now; double nowx,nowz; int nex=num2+1; 31 for(int i=1;i<=num1;i++) { 32 if(vis[i]) continue; now=dui[i]; if(a[now].x==a[x].x) continue; 33 nowx=a[now].x*a[now].x-a[now].x*a[x].x; nowz=a[now].y-a[x].y*a[now].x/a[x].x; 34 dd[nex][0]=nowz/nowx; if(dd[nex][0]>=-eps) continue; 35 dd[nex][1]=(a[now].y-dd[nex][0]*a[now].x*a[now].x)/a[now].x; 36 vis[i]=1; dfs(x+1,num1,nex,use); 37 vis[i]=0; 38 } 39 40 dui[num1+1]=x; vis[num1+1]=0; 41 dfs(x+1,num1+1,num2,use+1); 42 } 43 44 inline void work(){ 45 scanf("%d",&T); 46 while(T--) { 47 scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%lf%lf",&a[i].x,&a[i].y); sort(a+1,a+n+1,cmp); 48 memset(vis,0,sizeof(vis)); memset(dd,0,sizeof(dd)); memset(dui,0,sizeof(dui)); 49 dui[1]=1; if(m!=1) ans=n; else { ans=n/3; if(n%3!=0) ans++; ans++; } 50 dfs(2,1,0,1); printf("%d\n",ans); 51 } 52 } 53 54 int main() 55 { 56 work(); 57 return 0; 58 }

相關推薦

UOJ265 NOIP2016憤怒小鳥

1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <cstring> 5 #include <algorithm> 6 #include &l

NOIP2016憤怒小鳥

數據 需要 消失 int 指令 我們 所在 clas 小鳥 題目描述 Kiana最近沈迷於一款神奇的遊戲無法自拔。 簡單來說,這款遊戲是在一個平面上進行的。 有一架彈弓位於(0,0)處,每次Kiana可以用它向第一象限發射一只紅色的小鳥,小鳥們的飛行軌跡均為形如的曲線,其中

NOIP2016天天愛跑步

truct ios 多少 個人 img 自己 ret 一行 速度 題目描述 小c同學認為跑步非常有趣,於是決定制作一款叫做《天天愛跑步》的遊戲。?天天愛跑步?是一個養成類遊戲,需要玩家每天按時上線,完成打卡任務。 這個遊戲的地圖可以看作一一棵包含 個結點和 條邊的樹, 每條

NOIP2016蚯蚓(單調隊列)

www. 技術 preview view es2017 span res 最長 blog 題意: 思路: 我們發現,對於任意兩次切割i和j,i<j,在進行完第j次切割後,第i次切割的u/v部分一定大於等於第j次切割的u/v部分,第i次的1-u/v部分也一定大於等

NOIP2016換教室

layer 浮點數 min 答案 pro () 大於 row tin Description 對於剛上大學的牛牛來說,他面臨的第一個問題是如何根據實際情況申請合適的課程。 在可以選擇的課程中,有2n節課程安排在n個時間段上。在第i(1<i<n)個時間段上,兩節內容相同

NOIP2016提高組

usm 前綴和 sed scanf typedef pac 取余 -s rank Day1 T1玩具謎題 題目鏈接 簡單模擬題,註意一下取余啊方向啊什麽的就行了。 1 #include<cstdio> 2 #include<cstri

noip2016洛谷P2827蚯蚓

初始 開始 code space cout iostream lag == std 這個題只知道可以用優先隊列去做,但是不知道正解想法,看到題解後恍然大悟,詳情請看代碼中間 #include<algorithm> #include<iostream

NOIP2016魔法陣

ace DC abc algorithm 計算 前綴 -m d+ 左面 【Problem description】 六十年一次的魔法戰爭就要開始了,大魔法師準備從附近的魔法場中汲取魔法能量。  大魔法師有m個魔法物品,編號分別為1,2,...,m。每個物品具有一個魔法值,

noip2016玩具謎題

max 它的 ios 輸入 pre 字符串 左右 分享 無法 題目描述 小南有一套可愛的玩具小人,它們各有不同的職業。 有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了一個圈,它們有的面朝圈內,有的面朝圈外。如下圖: 這時singer告訴小南一個謎題:“

NOIP2016蚯蚓

題面連結 演算法:           我們將蚯蚓長度分成三個陣列儲存,原先就有、切掉後長度為⌊px⌋、 切掉後長度為x −⌊px⌋。            在記錄下每

NOIP2016組合數問題

本題在洛谷上的連結:https://www.luogu.org/problemnew/show/P2822   就在十一假期某學堂裡有幸聽出題人zhx大神講課。。。 都說是水題,但還是需要技巧滴。首先得知道組合數的那個在楊輝三角里體現得淋漓盡致的性質:c[n][m]=c[n-1][m-1]

P2822組合數問題NOIP2016

題目描述 組合數 Cnm ​表示的是從 n 個物品中選出 m 個物品的方案數。舉個例子,從 (1,2,3) 三個物品中選擇兩個物品可以有 (1,2),(1,3),(2,3) 這三種選擇方法。根據組合數的定義,我們可以給出計算組合數 Cnm的一般公式: C nm

2018.11.09NOIP2016洛谷P1600天天愛跑步(樹上差分)

傳送門 解析: 據說這是NOIP歷年最難一道題。。但是真的沒有寶藏難啊我覺得。。。 思路: 答案分兩類統計,一種是子樹中過來,一種是其他地方過來。那麼路徑就被拆分成兩部分了,一部分是S−&gt;lcaS-&gt;lcaS−>lca,一部分

BZOJ4719NOIP2016天天愛跑步

【題目連結】【思路要點】補檔部落格,無題解。【程式碼】#include<bits/stdc++.h> using namespace std; #define MAXN 300005 #define MAXV 600005 #define MAXLOG 20 te

NOIP2016魔法陣(節選自冬雪_狂舞_桀驁-xmy的部落格)

 現在來找找AC方式,首先,剖析題目,列出條件:Xa<Xb<Xc<Xd,Xb-Xa=2(Xd-Xc),Xb-Xa<Xc-Xb/3         遇到這種有條件的題,通常把圖形畫出來比較直觀。

NOIP2016海港

題目描述 小K是一個海港的海關工作人員,每天都有許多船隻到達海港,船上通常有很多來自不同國家的乘客。 小K對這些到達海港的船隻非常感興趣,他按照時間記錄下了到達海港的每一艘船隻情況;對於第i艘到達的船,他記錄了這艘船到達的時間ti (單位:秒),船上的乘 客數星ki,以及每名乘客的國籍

NOIP2016迴文日期

題目描述 在日常生活中,通過年、月、日這三個要素可以表示出一個唯一確定的日期。牛牛習慣用8位數字表示一個日期,其中,前4位代表年份,接下來2位代表月 份,最後2位代表日期。顯然:一個日期只有一種表示方法,而兩個不同的日期的表 示方法不會相同。牛牛認為,一個日期是迴文的,當且僅當表示這個日期的

bzoj4720noip2016換座位期望dp+Floyd

對於剛上大學的牛牛來說,他面臨的第一個問題是如何根據實際情況申請合適的課程。在可以選擇的課程中,有2n節 課程安排在n個時間段上。在第i(1≤i≤n)個時間段上,兩節內容相同的課程同時在不同的地點進行,其中,牛牛預先 被安排在教室ci上

NOIP2016提高組憤怒小鳥(狀壓寬搜)

數組保存 結果 4.0 2.0 pac 之前 第一個 ... 預處理 題目描述 Kiana最近沈迷於一款神奇的遊戲無法自拔。 簡單來說,這款遊戲是在一個平面上進行的。 有一架彈弓位於(0,0)處,每次Kiana可以用它向第一象限發射一只紅色的小鳥,小鳥們的飛行軌跡均為形如的

題解NOIP2016憤怒小鳥

拋物線 post 作用 get spa tchar define bre ini 一眼n<=18狀壓dp……方程什麽的都很顯然,枚舉兩只小鳥,再將這條拋物線上的小鳥抓出來就好啦。只是這樣O(n^3)的dp必然是要TLE的,我一開始這樣交上去顯然跑得巨慢無比,後來轉念一