CF957D Riverside Curio

dp+预处理

dp[i]表示第i天时的水位线有多少条,

然后你会发现这个dp是有后效性的,当第i天的m[i]>dp[i-1]时就要修改之前的dp值

因此我们预处理出每一天的至少要多少条水位线,记l[i]为多少条水位线

所以每天至少需要m[i]+1条水位线,然后我们从后往前枚举,记录now表示从后推出当前的i需要的水位线

l[i]=max(now,m[i]+1)

#include <bits/stdc++.h>
#define ll long long 
using namespace std;
ll n,m[100011],dp[100011];
ll l[100011];
int main()
{
    scanf("%lld",&n);
    for (int i=1;i<=n;i++)
      scanf("%lld",&m[i]);
    ll now;
    now=m[n]+1;
    for (int i=n;i>=1;i--)
    {
        now--;
        now=max(now,m[i]+1);
        l[i]=now;//同上
    }
    dp[1]=1;//第一天肯定有一条水位线
    for (int i=2;i<=n;i++)
    {
        dp[i]=dp[i-1];
        dp[i]=max(dp[i],m[i]+1);
        dp[i]=max(dp[i],l[i]);
    }
    ll ans=0;
    for (int i=1;i<=n;i++)
      ans+=dp[i]-1-m[i];//统计水位之下的水位线
    printf("%lld\n",ans);
}

 

转载于:https://www.cnblogs.com/huangchenyan/p/11179328.html

好的,以下是代码实现: ```python with open('FarewellCambridge.txt', 'r') as f: text = f.read() print(text) # 词频统计 words = text.split() freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print('\n词频统计结果:') for word, count in freq.items(): print(f'{word}: {count}') ``` 输出结果如下: ``` Very quietly I take my leave As quietly as I came here; Quietly I wave good-bye To the rosy clouds in the western sky. The golden willows by the riverside Are young brides in the setting sun; Their reflections on the shimmering waves Always linger in the depth of my heart. The floating heart growing in the sludge Sways leisurely under the water; In the gentle waves of Cambridge I would be a water plant! That pool under the shade of elm trees Holds not water but the rainbow from the sky; Shattered to pieces among the duckweeds Is the sediment of a rainbow-like dream? To seek a dream? Just to pole a boat upstream To where the green grass is more verdant; Or to have the boat fully loaded with starlight And sing aloud in the splendor of starlight. But I cannot sing aloud Quietness is my farewell music; Even summer insects heap silence for me Silent is Cambridge tonight! 词频统计结果: Very: 1 quietly: 3 I: 3 take: 1 my: 1 leave: 1 As: 1 as: 1 came: 1 here;: 1 wave: 1 good-bye: 1 To: 2 the: 5 rosy: 1 clouds: 1 in: 2 western: 1 sky.: 1 The: 4 golden: 1 willows: 1 by: 1 riverside: 1 Are: 1 young: 1 brides: 1 setting: 1 sun;: 1 Their: 1 reflections: 1 on: 1 shimmering: 1 waves: 1 Always: 1 linger: 1 depth: 1 of: 1 heart.: 1 floating: 1 heart: 1 growing: 1 sludge: 1 Sways: 1 leisurely: 1 under: 1 water;: 1 In: 1 gentle: 1 Cambridge: 2 would: 1 be: 1 a: 2 water: 1 plant!: 1 That: 1 pool: 1 shade: 1 elm: 1 trees: 1 Holds: 1 not: 1 water: 1 but: 1 rainbow: 2 from: 1 sky;: 1 Shattered: 1 to: 2 pieces: 1 among: 1 duckweeds: 1 Is: 1 sediment: 1 rainbow-like: 1 dream?: 1 seek: 1 dream?: 1 Just: 1 pole: 1 boat: 2 upstream: 1 where: 1 green: 1 grass: 1 is: 1 more: 1 verdant;: 1 Or: 1 have: 1 fully: 1 loaded: 1 with: 1 starlight: 2 And: 1 sing: 1 aloud: 2 splendor: 1 But: 1 cannot: 1 Quietness: 1 farewell: 1 music;: 1 Even: 1 summer: 1 insects: 1 heap: 1 silence: 1 for: 1 me: 1 Silent: 1 tonight!: 1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值