源代码: #include<cstdio> #include<algorithm> using namespace std; int n,m; double X[200001],Y[200001],K[200001],B[200001]; bool Check(double T1,double T2,int Mid) //纯纯的数学公式判断,是否存在交点。 { if (K[Mid]*T1+B[Mid]>T2) return false; return true; } int main() { scanf("%d",&n); for (int a=1;a<=n;a++) scanf("%lf",&X[a]); for (int a=1;a<=n;a++) scanf("%lf",&Y[a]); sort(X+1,X+n+1); sort(Y+1,Y+n+1); for (int a=1;a<=n;a++) { B[a]=Y[a]; //截距。 K[a]=-Y[a]/X[a]; //斜率。 } scanf("%d",&m); for (int a=0;a<m;a++) { double T1,T2; scanf("%lf%lf",&T1,&T2); int Left=1,Right=n,Ans=0; while (Left<=Right) //二分答案。 { int Mid=(Left+Right)>>1; if (Check(T1,T2,Mid)) { Left=Mid+1; Ans=Mid; } else Right=Mid-1; } printf("%d\n",Ans); } return 0; }
交点
源代码:#include<cstdio>#include<algorithm>using namespace std;int n,m;double X[200001],Y[200001],K[200001],B[200001];bool Check(double T1,double T2,int Mid) //纯纯的数学公式判断,...
·
转载于:https://www.cnblogs.com/Ackermann/p/6011049.html
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献10条内容
所有评论(0)