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
  • 相关阅读:
    orm 对象关系映射 指 表与类之间的映射 # 40
    事务 视图 触发器 函数 (内置) 存储过程 流程控制 索引 # 39
    exist 存在 Python操作mysql pymysql sql注入问题 # 38
    基本查询语句与方法 多表查询 # 37
    外键 #36
    存储引擎 索引 数据类型 约束条件 # 35
    mysql安装 登录 修改密码 库,表,记录(增删改查) # 34
    进程池和线程池 协程 # 33
    GIL全局解释器锁
    # 并发编程 -进程理论-进程的方法
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/5199071.html
Copyright © 2011-2022 走看看