首页 > 其他分享 >D. Lonely Mountain Dungeons

D. Lonely Mountain Dungeons

时间:2024-03-12 14:23:39浏览次数:26  
标签:q1 Mountain Lonely read Dungeons ll q2 x2 x1

原题链接

题解

每个种族的贡献是互不干扰的,因此只需要计算每个族群在每个组数的情况下的解然后累加就行了,由于每个族群在组数大于等于 \(c_i\) 的时候解数不变,所以这里用到了差分小技巧
然后就是计算每个族群在每个组数下的解就行了

code

#define ll long long
#include<bits/stdc++.h>
using namespace std;
vector<ll> G[200005];
ll f[200005]={0};
ll func(ll a,ll k)//计算a个人,k个位置,能产生的最大贡献
{
    ll q1=a/k+1,x1=a%k,q2=a/k,x2=k-a%k;
    return q1*q1*x1*(x1-1)/2+q2*q2*x2*(x2-1)/2+q1*x1*q2*x2;
}
inline void read(ll &x) {
    x = 0;
    ll flag = 1;
    char c = getchar();
    while(c < '0' || c > '9'){
        if(c == '-')flag = -1;
        c = getchar();
    }
    while(c >= '0' && c <= '9') {
        x = (x << 3) + (x << 1) + (c ^ 48);
        c = getchar();
    }
    x *= flag;
}

inline void write(ll x)
{
    if(x < 0){
        putchar('-');
        x = -x;
    }
    if(x > 9)
        write(x / 10);
    putchar(x % 10 + '0');
}

int main()
{
    ll t;
    read(t);
    while(t--)
    {
        memset(f,0,sizeof f);
        ll n,b,x,maxc=0;
        read(n);read(b);read(x);
        for(ll i=1;i<=n;i++)
        {
            ll c;
            read(c);
            maxc=max(c,maxc);
            for(ll j=1;j<c;j++)//不知道为什么不会T
            {
                ll cur=func(c,j);
                f[j]+=cur;
                f[j+1]-=cur;
            }
            f[c]+=func(c,c);//达成c之后f的值与c相同,实质是差分,后面要通过传递求回来
        }

        for(ll i=1;i<=maxc;i++)
        {
            f[i]+=f[i-1];
        }
        ll ans=0;
        for(ll i=1;i<=maxc;i++)
        {
            f[i]=f[i]*b-(i-1)*x;
            ans=max(ans,f[i]);
        }

        write(ans);
        putchar('\n');
    }
    return 0;

}

标签:q1,Mountain,Lonely,read,Dungeons,ll,q2,x2,x1
From: https://www.cnblogs.com/pure4knowledge/p/18068203

相关文章

  • 【游戏设计随笔06】关于《塞尔达传说》的迷宫设计(dungeons design)的一些思考
    在塞尔达里,迷宫是多个小房间的组合,有些锁着的小房间是需要“小钥匙”这一道具去解锁才能通行的。关卡设计问题的出现:初代的塞尔达中,钥匙可以在整部游戏的任何门上使用,这导致了各种麻烦的情况。通常你持有的钥匙是大于需要解锁的房间的,因为随着游戏进程的推进,一些需要解......
  • LeetCode 2345. Finding the Number of Visible Mountains
    原题链接在这里:https://leetcode.com/problems/finding-the-number-of-visible-mountains/description/题目:Youaregivena 0-indexed 2Dintegerarray peaks where peaks[i]=[xi,yi] statesthatmountain i hasapeakatcoordinates (xi,yi).Amountaincan......
  • Lonely Mountain Dungeons
    这道题目为什么考场上没想出来。。。就是不太相信自己吧,而且有个技巧不太清楚。。哎很明显的一点是各个种族是分开的,所以我们每个种族单独考虑就好了假设对于一个种族,我们已经固定了分的组数为\(k\)了,那么肯定是“平均”分到每个组是最好的(这点没办法证明,但是我考场上就是想得这......
  • P9325 [CCC 2023 S2] Symmetric Mountains
    原题链接题解,请看题解区————能不能利用已经算过的值来减少后续计算量呢?如果你toolongonline2:n为一的时候只输出零code#include<bits/stdc++.h>usingnamespacestd;inta[5005]={0};intf[5005][5005]={0};intmain(){intn;cin>>n;for(inti=1......
  • D. Lonely Mountain Dungeons
    D.LonelyMountainDungeonsOnce,thepeople,elves,dwarves,andotherinhabitantsofMiddle-earthgatheredtoreclaimthetreasuresstolenfromthembySmaug.Inthenameofthisgreatgoal,theyralliedaroundthepowerfulelfTimothyandbegantoplan......
  • CF1928D Lonely Mountain Dungeons
    原题链接设\(F(n,m)\)是将\(n\)个同种族的人放到\(m\)个队伍中可以获得的贡献。可以发现在同一个队伍中的人不能互相产生贡献,所以尽可能平均分配是最优的。设\(p=\lfloor\dfrac{n}{m}\rfloor,q=n\bmodm\),那么有\(m-q\)个队伍中有\(p\)个人,\(q\)个队伍中有\(p+1\)......
  • P1561 [USACO12JAN] Mountain Climbing S
    P1561[USACO12JAN]MountainClimbingS贪心思路首先我们设\(c_i\)为第\(i\)头牛上山后又下山的时间。那么有两种情况,我们分类讨论。第\(i\)头牛上到山顶时,第\(i-1\)头牛还未下到山脚。第\(i-1\)头牛下山完毕但第\(i\)头牛还在上山。那么\(c_i\)的公式......
  • CF1654G Snowy Mountain 题解
    题目链接点击打开链接题目解法很牛的题显然可以\(O(n)\)多源\(bfs\)求出\(h_i\)考虑从\(st\)开始最优的操作是什么?先延最短路径到\(p\),然后找到\(p\)的相邻点\(q\),满足\(h_p=h_q\),在\(p,q\)之间横跳,耗完所有动能,然后直接滑下去(不经过高度相同的点)为什么到\(p......
  • CF1322E - Median Mountain Range - 总结
    CF1322E-MedianMountainRange考虑分别对每个位置求出最后的数字。先枚举出这个数\(x\),并将\(a_i\gex\)的数设为\(1\),\(a_i<x\)的数设为\(0\),然后做题目中的操作,若为\(0\),则最终结果小于\(x\),为\(1\)则大于等于\(x\)。使用二分可以优化到\(\Omicron(n^2\log......
  • Kattis - A Complex Problem (The 2023 ICPC Rocky Mountain Regional Contest)
    IntroThiswasoneoftheproblemsIdidn'tdoduringtheregionalcontest.Oneofmyteammatessolvedit.ObservationTherearefewthingstonote.Firsttypeofnotation:subsetmeansthatA$\subset$B,buttherecanbecasesthatsubsetforms......