zoukankan      html  css  js  c++  java
  • CodeForces 15B Laser(构造+暴力)

    题意:在n*m的巧克力上面有两个独立的点,它门同时在巧克力上移动(两个点相对静止),被扫到巧克力块会被溶解,问你最少能留下多少块巧克力!

    解题思路:将这两个点看成一个小矩形的对角线,而最多能扫到的巧克力数量为   这个小矩形能放在大矩形的位置数*2 - 两个点重复扫到的点。

    解题代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4 #include <math.h>
     5 int main()
     6 {
     7    __int64 t; 
     8    scanf("%I64d",&t);
     9    while(t--)
    10    {
    11      __int64 n, m,x1,x2,y1,y2;
    12      scanf("%I64d %I64d %I64d %I64d %I64d %I64d",&n,&m,&x1,&y1,&x2,&y2);
    13      __int64 x = abs(x1-x2)+1;
    14      __int64 y = abs(y1-y2)+1;
    15      __int64 max = 1LL*(n-x+1)*(m-y+1);
    16      __int64 ans = 0 ; 
    17      ans += max*2;
    18      if((n-x+1) >= x && (m-y +1) >=y)
    19           ans -= ((n-x+1)-x+1) *((m-y+1) - y +1);
    20      printf("%I64d
    ",n*m - ans);
    21    }
    22    return 0;
    23 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    纪伯伦:我曾七次鄙视我的灵魂
    字典和集合
    元组
    列表
    字符串
    数值类型
    内置函数了解一下
    了解Python
    centos7安装mysql数据库
    xenserver 上传centos6.8镜像
  • 原文地址:https://www.cnblogs.com/zyue/p/3405280.html
Copyright © 2011-2022 走看看