首页 > 代码库 > POJ 1118与2606 (水题)
POJ 1118与2606 (水题)
【题意简述】:两道题都是求有多少点在一条直线上。
【分析】:暴力然后使用斜率相等进行求解,但要注意的是在求斜率时,避免使用除法,一律换位乘法运算,否则会RE。
以2606为例贴代码,1118只是数组的大小不一样,其他相同。
//216K 0Ms #include<iostream> using namespace std; int a[205],b[205]; int main() { int t; cin>>t; int res ; int ans = 0; for(int i = 0;i<t;i++) { cin>>a[i]>>b[i]; } for(int i = 0;i<t-2;i++) { for(int j = i+1;j<t-1;j++) { res = 0; for(int k = j+1;k<t;k++) { if((b[j]-b[i])*(a[k]-a[j])==(a[j]-a[i])*(b[k]-b[j])) res++; if(res>ans) ans=res; } } } cout<<ans+2<<endl; return 0; }
POJ 1118与2606 (水题)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。