• uva 10273 Eat or Not to Eat?


    点击打开链接uva 10273

    思路: 暴力求解
    分析:
    1 题目要求没有吃掉的奶牛的个数已经最后一次吃掉奶牛的天数
    2 没有其它的方法只能暴力,对于n头牛的n个周期求最小公倍数,然后在2个公倍数之内暴力求解

    代码:

    #include<vector>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    
    const int MAXN = 1010;
    
    int n , lcm;
    vector<int>v[MAXN];
    bool isEat[MAXN];
    
    int gcd(int a , int b){
        return b == 0 ? a : gcd(b , a%b);
    }
    
    void init(){
        memset(isEat , false , sizeof(isEat));
        for(int i = 0 ; i < MAXN ; i++)
            v[i].clear();
    }
    
    void solve(){
        int index = 0;
        int notEat = n;
        int numDay = 0;
        while(index < 2*lcm){
            int min = 1<<30;
            int minIndex = -1;
            for(int i = 0 ; i < n ; i++){
               if(!isEat[i]){
                   int size = v[i].size(); 
                   int tmp = v[i][index%size];   
                   if(min > tmp){
                      min = tmp;
                      minIndex = i;
                   }
                   else{
                      if(min == tmp)
                          minIndex = -1;
                   }
               }  
            }
            index++;
            if(minIndex != -1){
               notEat--;
               numDay = index;
               isEat[minIndex] = true;
            }
        }
        printf("%d %d
    " , notEat , numDay);
    }
    
    int main(){
        int Case , m , x;
        scanf("%d" , &Case);
        while(Case--){
             scanf("%d" , &n);
             init();
             bool isFirst = true;
             for(int i = 0 ; i < n ; i++){
                 scanf("%d" , &m); 
                 if(isFirst){
                    lcm = m; 
                    isFirst = false;
                 }
                 lcm = lcm/gcd(lcm , m)*m;
                 while(m--){
                      scanf("%d" , &x);
                      v[i].push_back(x);
                 }
             }
             solve();
        }
    }
    
    



  • 相关阅读:
    将jar打包成exe
    CXF + Spring 开发 Webservices
    关于highstock横坐标的一些的一些说明(1)使用UTC时间
    JAX-WS + Spring Integration Example
    EMA指标和MACD指标的JAVA语言实现
    MACD详细计算方法及例子
    notepad 不换行的问题
    eclipse 编码设置(转)
    如何理解作用域
    js中new一个对象的过程
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3231011.html
Copyright © 2020-2023  润新知