2021/7/16——集训Day.11

昨天晚上第一在教职工公寓睡觉,myf大佬说有好多蚊子,但是我没感觉到咬我,最后是 12 12 12 点才睡,也没洗澡,计划今天中午洗一下。
早上 醒的时候看表是 5 : 37 5:37 5:37 ,然后开始翻《算阶》,然后 6 : 08 6:08 608 的时候突然想洗澡,但是怕弄醒 myf ,于是一直看算阶到他起床,然后洗漱,然后过来机房,路上碰到了lyn神犇
打开电脑发现在这里插入图片描述
然后就回访了学长,学长看起来蛮热爱生活的,发说说挺频繁的(我不发说说),其中有一个直接笑死
在这里插入图片描述

还是好好学习吧,不能把集训的每天总结完全当成日记啊


知识点我写在另一个博客里了,因为我觉得ldy学长讲的数论太好了
总结顺序按照他的 P P T PPT PPT 来了
回头写好发布了,再在这里标明链接
其中有些不想证明的就直接截屏了
感谢源神
大多数通过感性理解到也说得过去
不过由于中午没睡,所以下午刚开始的状态不好,起初并没怎么听进去
中午发生了很神奇的事情,lyn大佬竟然把数竞的学姐鸽啦!
然后学姐就坐我旁边看《具体数学》,然后lyn找了个跑腿给学姐送寝室钥匙
然后学姐等到快 1 1 1 点,然后我去追学姐给源神拿可乐,然后累死了
然后回去睡觉,然后看着杰哥发呆,然后还没睡着就看见学姐特别委屈地过来说lyn给错了钥匙
学姐当时有明显的黑眼圈,还说要刀了lyn,所以可能没有尝试用一字钥匙打开十字的锁
(那就是正确的钥匙)
然后lyn回来了


下午又和mzx学长打了羽毛球在这里插入图片描述
而且是主动约的我!!!有约不来是 ∗ ∗ **
晚饭和午饭都是和源神一起吃的,而且还给mzx学长了两个红苹果,针不戳


晚上就通今天讲的内容,写总结。
算了还是敲代码吧。
我终于把序列分割 A A A

#include<bits/stdc++.h>
using namespace std;
#define N 200010
#define int long long
int n,k,a[N],q[N],l,r,g[N],s[N],fa[N][210],len,f[N];
int xie(int x,int y){return s[y]*s[y]-s[x]*s[x]-g[y]+g[x];}
signed main()
{
	scanf("%lld%lld",&n,&k);
	for(int i=1;i<=n;i++){scanf("%lld",&a[i]);s[i]=s[i-1]+a[i];}
	for(int j=1,l,r;j<=k;j++)
	{
		l=1;r=1;q[r]=0;
		for(int i=1;i<=n;i++)
		{
			while(l<r&&xie(q[l],q[l+1])<=s[i]*(s[q[l+1]]-s[q[l]]))l++;
			f[i]=s[i]*s[q[l]]-s[q[l]]*s[q[l]]+g[q[l]];
			fa[i][j]=q[l];
			while(l<r&&xie(q[r-1],q[r])*(s[i]-s[q[r]])>=xie(q[r],i)*(s[q[r]]-s[q[r-1]]))r--;
			q[++r]=i;
		}
		memcpy(g,f,sizeof f);
	}
	printf("%lld\n",f[n]);
	for(int x=n,i=k;i;i--){x=fa[x][i];printf("%lld ",x);}
	return 0;

我在for循环里面,没有每次更新 l l l r r r ,但还是在洛谷上得了 25 25 25 分。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值