zoukankan      html  css  js  c++  java
  • [USACO]Feed Ratios

    题意:告诉你目标饲料的原料的用量,问你有三种饲料,没种原料比例都不同,问你是否能配比出目标饲料

    解题思路:纯暴力

    解题代码:

     1 // File Name: ratios1.c
     2 // Author: darkdream
     3 // Created Time: 2014年03月18日 星期二 08时33分08秒
     4 /*
     5 ID: dream.y1
     6 PROG: ratios
     7 LANG: C++
     8 */
     9 #include<stdio.h>
    10 #include<string.h>
    11 #include<stdlib.h>
    12 #include<time.h>
    13 #include<math.h>
    14 #include<limits.h>
    15 int ans[5];
    16 int a[4][4];
    17 int stand[4];
    18 int sum = INT_MAX;
    19 int gcd(int a, int b )
    20 {
    21   if(a == 0 && b == 0 )
    22       return 1;
    23   return  b == 0 ? a:gcd(b,a%b);
    24 }
    25 int main(){
    26 
    27    freopen("ratios.in","r",stdin);
    28    freopen("ratios.out","w",stdout);
    29     for(int i =1 ;i <= 3; i++)
    30         scanf("%d",&stand[i]);
    31     for(int i = 1;i <= 3;i ++)
    32          for(int j = 1;j <= 3;j ++)
    33          {
    34              scanf("%d",&a[i][j]);
    35          }
    36     int bok = 0 ;
    37     for(int i = 0;i <= 100;i ++)
    38         for(int j = 0;j <= 100; j ++)
    39             for(int ij = 0;ij <= 100 ;ij ++)
    40             {
    41                 if(!(i || j || ij))
    42                     continue;
    43                int temp[4];
    44                temp[1] = i * a[1][1] + j * a[2][1] + ij * a[3][1];
    45                temp[2] = i * a[1][2] + j * a[2][2] + ij * a[3][2];
    46                temp[3] = i * a[1][3] + j * a[2][3] + ij * a[3][3];
    47                int  ok = 0 ; 
    48                int pp;  
    49                 for(int ji =1;ji <= 3;ji ++)
    50                      if(stand[ji] != 0 && temp[ji] / stand[ji] != 0)
    51                          pp = temp[ji]/ stand[ji];
    52                 for(int  ji = 1;ji <= 3;ji ++)
    53                     if(stand[ji] *pp != temp[ji])
    54                     {
    55                        ok = 1; 
    56                        break;
    57                     }
    58             //  if(i == 2 && j == 0  && ij == 1)
    59             //       printf("%d %d %d
    ",temp[1],temp[2],temp[3]);
    60                if(!ok)
    61                {
    62                  bok = 1; 
    63                  int tsum  = i + j + ij;
    64                  if(tsum < sum )
    65                  {
    66                    sum = tsum; 
    67                    ans[1] = i ; 
    68                    ans[2] = j ; 
    69                    ans[3] = ij;
    70                    ans[4] = pp;
    71                   }
    72                }
    73 
    74             }
    75     if(bok)
    76     {
    77     for(int i = 1;i <= 4;i ++)
    78         printf(i == 1?"%d":" %d",ans[i]);
    79       printf("
    ");
    80     }
    81     else printf("NONE
    ");
    82 return 0 ;
    83 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    Hibernate一对多OnetoMany
    80端口被占用 PID = 4解决办法
    Devexpress Barmanager设置
    通过C# 打开一个应用程序
    C#DataTable操作
    C# Winform 双屏显示
    Dev gridview 调整字体大小
    在静态页面html中跳转传值
    js 求两个日期之间相差天数
    jQuery 知识积累
  • 原文地址:https://www.cnblogs.com/zyue/p/3606940.html
Copyright © 2011-2022 走看看