zoukankan      html  css  js  c++  java
  • 2017辽宁冬令营-2.巧克力

    巧克力(chocolate.pas/c/cpp)
    题目大意
    现在有一块巧克力,大小为 n*m。现在要把它掰成 n*m 块 1*1 的小块。每次你可以选
    择一块巧克力,横着或者竖着把它掰成两块。求掰巧克力的最小次数。
    输入文件
    输入文件为 chocolate.in。
    输入第一行为 T,代表有 T 组数据。接下来 T 行每行两个数 n,m,代表巧克力的尺寸。
    输出文件
    输出文件为 chocolate.out。
    有 T 行,对于每组数据输出一个整数,代表最少次数。
    样例输入
    1
    2 3
    样例输出
    5
    数据规模与约定
    对于 20%的数据,n,m≤10;
    对于 40%的数据,n,m≤100;
    对于 70%的数据,n,m≤1000;
    对于 100%的数据,n,m≤50000,T≤10。

    ————————————————————————————题解

    n*m-1

    因为把一块巧克力掰成两块要一次

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>//important
     4 #include <algorithm>
     5 #define siji(i,x,y) for(int i=(x);i<=(y);++i)
     6 #define gongzi(j,x,y) for(int j=(x);j>=(y);--j)
     7 #define xiaosiji(i,x,y) for(int i=(x);i<(y);++i)
     8 #define sigongzi(j,x,y) for(int j=(x);j>(y);--j)
     9 #define ivorysi
    10 #define inf 0x7f7f7f7f 
    11 typedef long long ll;
    12 using namespace std;
    13 ll n,m,ans;
    14 int T;
    15 int main(int argc, char const *argv[])
    16 {
    17 #ifdef ivorysi
    18     freopen("chocolate.in","r",stdin);
    19     freopen("chocolate.out","w",stdout);
    20 #else
    21     freopen("f1.in","r",stdin);
    22 #endif
    23     scanf("%d",&T);
    24     while(T--) {
    25         scanf("%lld%lld",&n,&m);
    26         ans=n*m-1;
    27         printf("%lld
    ",ans);
    28     }
    29     
    30     return 0;
    31 }
  • 相关阅读:
    ios 学习小笔记
    object c 2.0 @property属性
    uiPickerView 滚动盘
    ios 文件操作
    ios多窗体项目
    Linux命令
    Mina的使用
    设计模式学习总结访问者模式(Visitor Method)
    socket, nio socket 及nio socket框架MINA总结
    UML类图与类的关系详解UML一波流系列(转转)
  • 原文地址:https://www.cnblogs.com/ivorysi/p/6395536.html
Copyright © 2011-2022 走看看