zoukankan      html  css  js  c++  java
  • 奶牛

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    using namespace std;
    int mu[110];     //mu[i]表示第i个木桩的位置 
    int dis[11000];  //使用dis保存任意木桩之间的可能的距离 
    int num;  //记录保存在数组dis中的元素的个数 
    int n,k,p;  //k是木桩的数量
    
    int numOfOx(int d)  //当牛与牛之间最短的距离为d时候,可以放牛的个数为num 
    {
    	int sum=0;  //记录当前木桩和上一个牛的距离 
    	int num=1;
    	for(int i=2;i<=k;i++)
    	{
    		sum+=mu[i]-mu[i-1];
    		if(sum>=d)
    		{
    			num++;
    			sum=0;
    		}
    	}
    	return num;
    }
    int main(void)
    {
    	
    	cin >> n >> k >> p;
    	mu[1]=p;
    	for(int i=2;i<=k;i++) 
    	{
    		p = p + ((p*2357+137) % 10) + 1;
    		mu[i] = p;
    	}
    	
    	for(int i=1;i<=k;i++)
    	{
    		for(int j=i+1;j<=k;j++)
    		{
    			dis[++num]=mu[j]-mu[i]; //使用dis记录两个木桩之间的距离,用dis保存可能的情况。 
    		} 
    	} 
    	
    	sort(dis+1,dis+num+1);  //对距离从小到大进行排序 
    	
    	for(int i=1;i<num;i++)
    	{
    		//明确一个信息:  奶牛之间距离规定越长,可以放的奶牛的个数越少 
    		//如果距离为dis[i]时候可以放n奶牛,距离为dis[i+1]时放的奶牛个数小于n,那么说明最大距离为dis[i] 
    		int num1 = numOfOx(dis[i]);
    		int num2 = numOfOx(dis[i+1]);
    		if(num1>=n && num2<n)  
    		{
    			cout << dis[i] << endl;
    			break;
    		}
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    344.反正字符串
    125.验证回文串
    167.两数之和 II
    278.第一个错误的版本
    缓冲流
    Windows10剪贴板不能用
    chapter_21【字节流、字符流】
    属性集
    IO异常的处理
    字符流
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/9238668.html
Copyright © 2011-2022 走看看