zoukankan      html  css  js  c++  java
  • Cow and Friend(贪心)

    传送门

    由于要求最小步骤,那么考虑贪心策略可以发现采用最大的那个数字是最优的。

    1. 当距离等于最大数字时,那么答案为1
    2. 当距离大于最大数字时,那么可以先将前面的一大部分填上,最后一次肯定会“溢出”,那么只需要将倒数第二次和倒数第一次构成一个等腰三角形即可,这样就能保证是最少次数。
    #include <iostream>
    #include <map>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    
    const int N = 100010;
    typedef long long ll;
    ll a[N];
    map<int, int> mp;
    int main(){
    	int t;
    	cin >> t;
    	while(t --){
    		mp.clear();
    		int n, x;
    		cin >> n >> x;
    		for(int i = 0; i < n; i ++){
    			cin >> a[i];
    			mp[a[i]] = 1;
    		}
    		sort(a, a + n);
    		if(mp[x] == 1)
    			cout << 1 << endl;
    		else
    			cout << max((ll)2, (x + a[n - 1] - 1) / a[n - 1]) << endl;
    	}
    	
    	return 0;
    }
    

    几天不写cf,啥都不会了

  • 相关阅读:
    CSS样式表
    lianxi!
    传值
    lei!
    3.10
    if else&& stwitch break
    if else 语句
    2016.3.6
    进制转换
    PHP 面向对象的三大特征
  • 原文地址:https://www.cnblogs.com/pureayu/p/14478482.html
Copyright © 2011-2022 走看看