全部评论
凉凉
分享
难受+1
分享
滴滴
官网直投
挡板0+1
分享
一模一样 感觉题目有问题
分享
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <vector> #include <cmath> using namespace std; int main() { int n,m,x1,y1,x2,y2; cin>>n>>m>>x1>>y1>>x2>>y2; vector<int> boards(2*n,0); vector<int> toys; vector<int> mark(2*m,0); vector<int> ans(n+1,0); for(int i=0;i<2*n;i=i+2){ cin>>boards[i]>>boards[i+1]; } for(int i=0;i<2*m;i=i+2){ int tmp1,tmp2; cin>>tmp1>>tmp2; if(tmp1>=x1&&tmp1<=x2&&tmp2<=y1&&tmp2>=y2){ toys.push_back(tmp1);toys.push_back(tmp2); } } for(int i=0;i<2*n;i++){ int u=boards[i],l=boards[++i]; for(int j=0;j<toys.size();j++){ if(mark[j]){ j++;continue; }; int x=toys[j],y=toys[++j]; if(u==l){//´¹Ö± if(x<u){ ans[i/2]++; mark[j-1]=1; } }else if((y2-y1)*(l-u)>0){//k>0 double k=(y2-y1)/(l-u); double b=y1-k*u; if(x*k+b<y){ ans[i/2]++; mark[j-1]=1; } }else{//k<0 double k=(y2-y1)/(l-u); double b=y1-k*u; if(x*k+b>y){ ans[i/2]++; mark[j-1]=1; } } } } int sum=0; for(int i=0;i<n;i++){ cout<<i<<": "<<ans[i]<<endl; sum+=ans[i]; } cout<<n<<": "<<toys.size()/2-sum; return 0; }
分享
你们都是啥题目。有矩阵和代码生成的没
分享
挡板想了想,觉得自己菜,放弃了
分享
请问现在有收到面试通知吗😂
分享
相关推荐
投递阿里巴巴控股集团等公司10个岗位 >
点赞 评论 收藏
转发