zoukankan      html  css  js  c++  java
  • [Math_Medium] 781. Rabbits in Forest

    原题:781. Rabbits in Forest

    题目大意:

    森林里每只兔子报告说有多少只兔子和它的颜色一样,求森林里最少有几只兔子?

    解题思路:

    首先确定有多少只兔子的说法相同,假设有 a[i] 只兔子都说和它颜色相同的兔子有 i 只,那么要分析 a[i] 与 i 的关系。比如说,3只兔子说和它同色的兔子有10只,那么至少有11兔子;如果8只兔子说它同色的兔子有10只,那么至少有11只兔子;如果10只兔子说和它同色的兔子有10只,那么至少有11只兔子;如果有11只兔子都说和它同色的兔子有10只,那么至少有11只兔子(每只兔子和另外10只同色);如果有12只兔子都说和它同色的兔子有10只,那么至少有22只兔子(首先前面11只相互说有10只和自己同色,第十二只需要新增10来与之配对);
    所以通过上面的分析:如果 a[i]%(i+1)!=0,那么就需要(a[i]/(i+1)+1)*(i+1);否则就需要a[i]只

    代码:

    class Solution{
        public:
        int numRabbits(vector<int>& answers){
            if(answers.size()==0)
                return 0;
            int sum=0;
            int i=0;
            int a[1000]={0};
            for(i=0;i<answers.size();i++)
                a[answers[i]]++;
            for(i=0;i<1000;i++)
                if(a[i]%(i+1))
                    sum+=((a[i]/(i+1)+1)*(i+1));
                else
                    sum+=(a[i]);
            return sum;
        }
    };
    
  • 相关阅读:
    [转载]小谈网络游戏同步
    [ASE][Daily Scrum]11.06
    [Proposal]Tank Battle——Infinite
    [proposal][app]Watch your time!
    [Proposal]Nano-Diary(纳日记)
    LaTeX中用BibTex管理参考文献
    matlab化简符号表达式
    placeholder颜色变化
    链接图片外边出现蓝框(IE8/IE9/IE10)
    图标排列
  • 原文地址:https://www.cnblogs.com/qiulinzhang/p/9514350.html
Copyright © 2011-2022 走看看