贝壳找房函数最值

题目链接

2018 计蒜之道复赛--贝壳找房函数最值

题解

简单题。题意大概是给定多组f(x)=ax+b中a,b的值,求将这些函数嵌套后的最大值。
先排序然后一个个算即可

代码

#include<iostream>
#include<bitset>
#include<string>
#include<string.h>
#include <algorithm>
#include <vector>
#include <map>
#include <math.h>
#include <stdio.h>
#include <set>
#include <queue>
#include <stack>
using namespace std;
const int N = 10005;
int t, n, x;
pair<int, int> a[N];
bool pd(pair<int, int> a, pair<int, int> b) {
        return a.first*b.second+a.second < b.first*a.second+b.second;    
}
int main() {
    cin >> t;
    for (; t; t--) {
        cin >> n >> x;
        memset(a, 0, sizeof(a));
        for (int i = 1; i <= n; i++) {
            cin >> a[i].first;
        }
        for (int i = 1; i <= n; i++) {
            cin >> a[i].second;
        }
        sort(a + 1, a + n + 1, pd);
        for (int i = 1; i <= n; i++) {
            x = (x*a[i].first + a[i].second) % 10;
        }
        cout << x << endl;
    }
}

标签: none

添加新评论