解題思路:見
講道理這是我做的pat中做的最最心累的一道題了,沒有之一,到現在還不知道**有問題。這份**我認為沒有錯誤了,但是還有乙個點過不了,而且最後那個點還隨最後一句printf("%d %d %d %d\n",s[st].x,s[st].yl,s[mat].x,s[mat].yh);中mat還是mit變化為第四個點錯還是第二個點錯。我目前只好認為可能最後那個判題程式會不會也存在bug.
過了一段時間重新做了一下,發現對了。見第二段**。
#include#include#include#includeusing namespace std;
typedef long long ll;
struct node
}s[20009];
struct l
l(int x,int y):x(x),y(y)
}p[10009];
int inf=100000000;
int cross(l a, l b) //a x b 返回1說明b斜率大,-1a斜率大,0說明a,b重合
bool cmp(node a,node b)
}for(int i=j+1;i0)
} if(cross(ma,mi)<=0)
}printf("%d %d %d %d\n",s[st].x,s[st].yl,s[mat].x,s[mat].yh);
return 0;
}
過了一段時間再來做,發現竟然對了
#include#define n 10009
#define ll long long
using namespace std;
struct node
s[n];
struct node2
node2(int x,int y):x(x),y(y)
ll det(node2 b) };
bool cmp(node a,node b)
}for(int j=i+1;j0)
tp=node2(s[j].x-s[i].x,s[j].h-s[i].l);
if(t2.det(tp)<0)
}if(t1.det(t2)>=0)
}return 0;
}
L3 012 水果忍者(天梯賽)
題目保證一定存在一條直線 假設這條直線不經過任何線段的端點 那麼通過旋轉或者平移 一定可以使得線段經過端點 那麼只要固定乙個端點 再判斷斜率範圍就好了 includeusing namespace std define lowbit x x x define ll long long const i...
水果忍者(二)
簡化一下吧,就是,給你乙個螢幕 二維座標系 螢幕上有很點,必殺技的那個矩形的四個頂點必須是以螢幕上的水果為頂點,現在要你算一下,對於這個螢幕,你能放多少種不同的必殺,也就是有多少個不同的矩形 只要任意一點的座標不同均視為不同矩形 輸入格式 有多組資料,第一行為乙個數t t 10 表示有多少組資料。接...
水果忍者遊戲
size large 水果忍者遊戲 此篇文章是在時間較為緊的情況之下寫 不足之處 日後定當豐富之。望見諒。做軟體開發的同學應該知道 水果忍者遊戲本身其實是個大隨機 隨機產生丟擲水果 每個水果隨機運動 而這一切使用最重要的就是執行緒的運用了。按照自己小組做出的水果忍者遊戲的步驟 大至分為遊戲選擇介面 ...