zoukankan      html  css  js  c++  java
  • hdu 5610 Baby Ming and Weight lifting

    Problem Description
    Baby Ming is fond of weight lifting. He has a barbell pole(the weight of which can be ignored) and two different kinds of barbell disks(the weight of which are respectively a and b), the amount of each one being infinite.
    Baby Ming prepare to use this two kinds of barbell disks to make up a new one weighted C(the barbell must be balanced), he want to know how to do it.
     
    Input
    In the first line contains a single positive integer T, indicating number of test case.
    For each test case:
    There are three positive integer a,b, and C.
    1T1000,0<a,b,C1000,ab
     
    Output
    For each test case, if the barbell weighted C can’t be made up, print Impossible.
    Otherwise, print two numbers to indicating the numbers of a and b barbell disks are needed. (If there are more than one answer, print the answer with minimum a+b)
     
    Sample Input
    2 1 2 6 1 4 5
     
    Sample Output
    2 2 Impossible
     
    Source
     


    直接暴力枚举

    AC代码:

     1 #pragma comment(linker, "/STACK:1024000000,1024000000")
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<math.h>
     7 #include<algorithm>
     8 #include<queue>
     9 #include<set>
    10 #include<bitset>
    11 #include<map>
    12 #include<vector>
    13 #include<stdlib.h>
    14 using namespace std;
    15 #define ll long long
    16 #define eps 1e-10
    17 #define MOD 1000000007
    18 #define N 1000000
    19 #define inf 1e12
    20 int a,b,c;
    21 int main()
    22 {
    23     int t;
    24     scanf("%d",&t);
    25     while(t--){
    26         scanf("%d%d%d",&a,&b,&c);
    27         if(c&1){
    28             printf("Impossible
    ");
    29             continue;
    30         }
    31         int half = c/2;
    32         
    33         int ans = 10000000;
    34         int ans1,ans2;
    35         for(int i=0;i<=1001;i++){
    36             for(int j=0;j<=1001;j++){
    37                 int cnt = i*a + j*b;
    38                 if(cnt==half){
    39                     if(ans>i+j){
    40                         ans=min(ans,i+j);
    41                         ans1=i,ans2=j;
    42                     }
    43                 }
    44             }
    45         }
    46         if(ans==10000000){
    47             printf("Impossible
    ");
    48             continue;
    49         }
    50         printf("%d %d
    ",ans1*2,ans2*2);
    51     }
    52     return 0;
    53 }
    View Code
  • 相关阅读:
    史上最详细 Linux 用户与用户组知识
    MySQL -2- 体系结构--随笔小记
    MySQL -2- 体系结构
    MySQL -1- 简介及安装
    MySQL -0- 课程大纲及课程链接
    探索Windows命令行系列(4):通过命令操作文件和文件夹
    探索Windows命令行系列(3):命令行脚本基础
    探索Windows命令行系列(2):命令行工具入门
    探索Windows命令行系列(1):导航目录
    Oracle 分页方法研究
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/5199071.html
Copyright © 2011-2022 走看看