Codeforces Round #284 (Div. 2) C. Crazy Town
来源:互联网 发布:java 选择汉字验证码 编辑:程序博客网 时间:2024/05/13 19:05
原题链接:
http://codeforces.com/contest/499/problem/C
题意:给出若干直线方程以及A,B两点的坐标,现在要从A点走到B点,规则是每次走一步只能跨越一个相邻区域,相邻区域是指由相邻边的区域,不包括有相邻点的区域,问至少需要多少步。
思路:只需要建立AB两点的直线方程,由于n的范围很小,枚举和每一条直线的交点,若该交点在以AB为对定点的矩形内或者边界上,则需要跨过该直线,具体证明就不例举了。呃。其实我也没有证明。。
其他:
要注意变量设置成y1会报错,所以后来用yy代替了,求交点就是数学公式了。为什么当时没想出这个做法呢。。加油吧~~每晚A一题感觉很好~不过量还是少了~
代码:
#include "stdio.h"#include "iostream"#include "string.h"#include "stdlib.h"#include "algorithm"using namespace std;#define eps double x1,x2,yy,y2,x,y,a,b,c,a1,b1,c1;int n,ans=0;int jude(){if(x1<x2){if(x<x1||x>x2)return 0;}else{if(x<x2||x>x1)return 0;}if(yy<y2){if(y<yy||y>y2)return 0;}else{if(y<y2||y>yy)return 0;}return 1;}int xiangjiao(){if(a*b1==b*a1)return 0;if(a==0){y=-c/b;x=(-c1-y*b1)/a1;}else if(a1==0){y=-c1/b1;x=(-c-y*b)/a;}else{double u=a1/a;y=(-c1+u*c)/(b1-u*b);x=(-c1-y*b1)/a1;}if(jude())return 1;return 0;}int main(){scanf("%lf%lf%lf%lf",&x1,&yy,&x2,&y2);scanf("%d",&n);a1=yy-y2;b1=-x1+x2;c1=x1*y2-x2*yy;for(int i=0;i<n;i++){scanf("%lf%lf%lf",&a,&b,&c);if(xiangjiao())ans++;}printf("%d\n",ans);return 0;}
0 0
- Codeforces Round #284 (Div. 2) C. Crazy Town
- Codeforces Round #284 (Div. 2) C. Crazy Town
- Codeforces Round #284 (Div. 2) C. Crazy Town 数学
- Codeforces Round #284 (Div. 2) C. Crazy Town
- Codeforces Round #284 (Div. 2) C. Crazy Town ACM解题报告(几何)
- Codeforces Round #284 (Div. 1) A - Crazy Town
- Codeforces #284 C. Crazy Town 几何
- CodeForces 499C、Crazy Town
- CodeForces 498A Round #284 div1A(div2C) Crazy Town
- 【Codeforces Round #372 (Div. 2)】Codeforces 716A Crazy Computer
- Codeforces 499C:Crazy Town(计算几何)
- codeforces 498A crazy town
- codeforces 498 A Crazy Town
- Codeforces Round #372 (Div. 2)A. Crazy Computer
- Codeforces Round #284 (Div. 2) C
- Codeforces 716A Crazy Computer 【模拟】 (Codeforces Round #372 (Div. 2))
- 【codeforces】Codeforces Round #370 (Div. 2) C
- Codeforces Round #372 (Div. 2) A.Crazy Computer/B. Complete the Word
- 用RJSONIO包调用天气数据
- android 全局变量 (application) 心得
- windows server2008 r2 iis+.net的奇葩问题
- Porting WiFi drivers to Android
- pHp学习--数组遍历
- Codeforces Round #284 (Div. 2) C. Crazy Town
- 关于在Android studio 在布局中加入datepicker 无法显示的问题
- C++实现单链表(Singly-Linked List)追加、遍历、删除
- JAVA学习笔记之多线程专题(一):线程同步安全处理
- ubuntu在线安装Mysql及一些操作
- Java多线程(总结)
- Android网络连接判断与处理
- HDU 3208 Integer’s Power 指数和、容斥
- Libevent(1)— 简介、编译、配置