首页 > 其他分享 >2023/2/1 考试总结

2023/2/1 考试总结

时间:2023-02-01 19:35:11浏览次数:57  
标签:总结 ch 2sum int double sum 2023 ll 考试

题单贴贴

T1.P3195 [HNOI2008]玩具装箱

  • 斜率优化 \(\mathtt{DP}\) 板题;虽然这是板题但签到题就是紫的是否有些过分?

  • 朴素 \(DP\) 式子:\(f_i=\min\limits_{j=1}^{i-1}\{f_i,f_j+(sum_i-sum_j+i-j-L)^2\}\),\(sum\) 是长度的前缀和。这里为了方便处理,先把所有长度以及 \(L+1\),这样后面的平方里面就可以化简为 \(sum_i-sum_j-L\)。

  • 转化:\(f_i=f_j+sum_i^2+sum_j^2+L^2-2sum_i sum_j-2sum_i L+2sum_j L\),
    把含 \(i\) 项视作常数,然后与 \(k\) 相减得 \(f_j-f_k+sum_j^2-sum_k^2-2sum_i sum_j+2sum_i sum_k+2sum_j L-2sum_k L=0\)
    于是设 \(y_i=f_i+sum_i^2\),\(x_i=sum_i\),
    于是斜率 \(=\frac{y_j-y_k}{x_j-x_k}\),需要与 \(2sum_i-2L\) 比较。

AC code
#include<bits/stdc++.h>
using namespace std;

#define ll long long

inline int read(){
	int s=0,f=1;
	char ch=getchar();
	while(!isdigit(ch)){
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(isdigit(ch)){
		s=s*10+int(ch-'0');
		ch=getchar();
	}
	return s*f;
}

const int N=5e4+10;

int n,L;
ll c[N];
ll f[N];
int q[N],l,r;

#define y(i) (f[i]+c[i]*c[i])

double g(int a,int b){
	return (double)(y(a)-y(b))/(double)(c[a]-c[b]);
}

int main(){
	n=read(),L=read()+1;
	for(int i=1;i<=n;++i)
		c[i]=read()+1;
	for(int i=1;i<=n;++i)
		c[i]+=c[i-1];
	l=r=1;
	for(int i=1;i<=n;++i){
		while(l<r && g(q[l],q[l+1])<0ll+1ll*2*c[i]-1ll*2*L)
			++l;
		f[i]=f[q[l]]+1ll*(0ll+L-c[i]+c[q[l]])*(0ll+L-c[i]+c[q[l]]);
//		cerr<<i<<" "<<q[l]<<endl;
		while(l<r && g(q[r-1],q[r])>=g(q[r],i))
			--r;
		q[++r]=i;
	}
	printf("%lld",f[n]);
	return 0;
}
/*

5 4
3
4
2
1
4

*/

标签:总结,ch,2sum,int,double,sum,2023,ll,考试
From: https://www.cnblogs.com/Star-LIcsAy/p/17083944.html

相关文章

  • 每日复盘总结
    目录个股资金流向排行行业资金流向排行概念资金流向排行业绩预告个股资金流向排行沪深两市个股资金流向排行-数据中心-同花顺财经(10jqka.com.cn)http://data.10jqka.c......
  • 2023年浏览器哪个好用速度快,这6款没让人失望
    在网络覆盖的社会,不管走到哪里,都能上网浏览新闻、看热点资讯。浏览器是用户上网浏览的必要软件之一,它决定这用户浏览网页的速度和习惯。那么,2023年什么浏览器好用稳定速度......
  • LocalDateTime时间工具之“2023-01-18T23:59:59.999999999”转“yyyy-MM-dd HH:mm:ss
    LocalDateTime时间工具之“2023-01-18T23:59:59.999999999”转“yyyy-MM-ddHH:mm:ss”代码LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-ddHH:m......
  • 【面试总结】数据库面试题之数据库锁
    为什么数据库需要锁?数据库是一个多用户使用的共享资源,当多个用户并发的存取数据时吧,在数据库中会产生多个事务同时的存取同一数据库的情况,若对并发操作不加以控制,就可能会......
  • 【redis】redis面试题总结
    一、Redis是什么?Redis是一个key-value存储系统,它支持存储的value类型相对更多,包括string、list、set、zset(sortedset--有序集合)和hash。这些数据结构都支持push/pop、ad......
  • WebStorm注册码2023年安装教程
    WebStorm是一款非常流行的JavaScript集成开发环境(IDE),用于构建Web和Node.js应用程序。它提供了丰富的功能,如代码编辑、调试、代码检查和重构工具,可以帮助开发人员提高生产力......
  • 2023年JS学习记录
    2023/1/30星期一https://blog.csdn.net/Augenstern_QXL/article/details/119249534短路运算(逻辑中断)短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时......
  • 【2023-01-18】暖阳之下
    20:00我习惯把坏消息当成可以处理和解决的问题,是可以主动掌握的东西,而不是降临于身的事情。                        ......
  • 基于uniapp框架开发飞书小程序总结
    前期准备飞书官方客户端文档:https://open.feishu.cn/document/home/intro飞书官方工具资源文档:https://open.feishu.cn/document/uYjL24iN/uEzMzUjLxMzM14SMzMTN/develop......
  • PyCharm2023年安装教程:步骤详解
    PyCharm2023年安装教程:步骤详解首先,让我们介绍PyCharm,它是一款功能强大的Python集成开发环境(IDE),支持代码编写、调试、语法高亮、智能代码补全、版本控制等一系列功......