zoukankan      html  css  js  c++  java
  • Codeforces 123B. Squares

    http://codeforces.com/problemset/problem/123/B

      这题让我深深体会到数学的重要性,做了两天.....

      现在理解起来比较轻松了,首先两个点分别引出两条直线,一条斜率为1,另一条斜率为-1,在这个矩形中的坏点就是最少的了,那怎么求呢?

    其实经过坏点的同时也必须经过里面的直线(斜率都是+-1),因此要数经过多少条斜率为1的直线和斜率为-1的直线,因为之前已经有一个矩形限定住了,根据直线的截距式,把截距算出来,再作差就好了。

      最后还有一个地方要注意,假如两个截距相乘小于0,还要经过一个坏点(0,0),那么判断截距相乘如果直接用乘法会爆,可以用一个巧妙地办法解决,就是凡事截距大于0的都加一,最后再相减,就可以达到目的了!

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <cstring>
     4 #include <cmath>
     5 #include <algorithm> //不加这个还会错的.......标程真是够了 
     6 
     7 using namespace std;
     8 
     9 int main()
    10 {
    11     int a, b, x1, y1, x2, y2;
    12     while(cin >> a >> b >> x1 >> y1 >> x2 >> y2)
    13     {
    14         a*=2, b*=2;
    15         //截距 
    16         int B1 = y1 - x1;
    17         int B2 = y2 - x2;
    18         int A1 = y1 + x1;
    19         int A2 = y2 + x2;
    20         
    21         x1 = B1 / b + (B1 > 0);
    22         x2 = B2 / b + (B2 > 0);
    23         y1 = A1 / a + (A1 > 0);
    24         y2 = A2 / a + (A2 > 0);
    25         
    26         cout << max(abs(x2-x1), abs(y2-y1)) << endl;
    27     }
    28     
    29     return 0;
    30 }
  • 相关阅读:
    js template实现方法
    linux su和sudo命令的区别
    使用u盘安装os x系统
    单个APP页面支持屏幕旋转
    iOS 抓取 HTML ,CSS XPath 解析数据
    Oslo 相机 App
    App 开发步骤
    iOS 自动布局框架 – Masonry 详解
    细聊 Cocoapods 与 Xcode 工程配置
    2017网页设计趋势
  • 原文地址:https://www.cnblogs.com/dominjune/p/4364136.html
Copyright © 2011-2022 走看看