A

在一篇论文上多花时间和开新的论文, a * x求和完全等效,因为 x*i=n,只是拆分方法不同,总合都是a * n。eg: n = 3, a = 2, 拆分为1 1 1, 则基础引用量为2 2 2, trick引用量2 1 0,总效果2+2  2+1  2;拆分为2 1,则基础引用量为4 2(基础部分综合相同),trick引用量1 0(比论文篇数多的情况少),总效果为4+1  2+0,减少。

所以尽可能多写论文,则会增加前面论文的被引用量,肯定是论文数量越多越好,则n个小时写n篇必为最优。确定此策略后,被引用数组为a + n - 1 ~ a的一个等差数列,设答案为B,则B <= a + n - B,B <= (a + n ) / 2,最大值为(a + n ) / 2。

 

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n, a;
 
 
int main()
{
    while(scanf("%d", &n) != EOF)
    {
        scanf("%d", &a);
        int ans = (n + a) / 2;      //B = A + (N - B), B向下取整
        cout << ans << endl;
    }
    return 0;
原文地址:https://www.cnblogs.com/zhangzhenjun/p/11609048.html