首页 > 其他分享 >10.16 模拟赛小记

10.16 模拟赛小记

时间:2023-10-16 21:33:34浏览次数:36  
标签:const int ll link 60pts inf 10.16 模拟 小记

比赛链接


A.link

徐爷爷很强的用线段树切了,orz。正解大概是树形 dp 但是有 O(1) 的解法没想到吧...?

咕咕了,还不会。


B.link

赛时只会写 30pts 的暴力,感觉成飞舞了。


C.link

先写了一个二维 \(n^2\) 的暴力 dp。根据式子就可以优化掉一层循环,然后 \(O(n*a[i])\) 就有 60pts 的好成绩了。

然后就不会了。

赛后,很容易想到一个性质:温度差不会超过 \(O(\sqrt{C})\)。

据此能把复杂度降到 \(O(n\sqrt{C})\)。

但是这个飞舞自以为写了很对的东西调了很久一直挂到 40pts。还是很不理解。顺便附上码。

60pts:

#include<bits/stdc++.h>
using namespace std;
const int N=5e3+10;
const int inf=0x3f3f3f3f;
int n,m;
int a[N];
int f[N][N];
int maxn,ans=inf,t;
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		maxn=max(maxn,a[i]);
	}
	memset(f,inf,sizeof f);
	for(int i=1;i<=maxn;i++) f[1][i]=(a[1]-i)*(a[1]-i);
	for(int i=2;i<=n;i++){
		t=inf;
		for(int j=1;j<=maxn;j++) if(j!=a[i]) t=min(t,f[i-1][j]);
		for(int j=1;j<=maxn;j++)
			f[i][j]=(a[i]-j)*(a[i]-j)+min(f[i-1][j],t+m);
	}
	for(int i=1;i<=maxn;i++) ans=min(ans,f[n][i]);
	printf("%d",ans);
}

这是修改后的 40pts 的码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=3e4+10;
const int M=1010;
const ll inf=0x3f3f3f3f3f3f3f3f;
int n,m;
int a[N];
ll f[N][M];
ll ans=inf,t;
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	int k=sqrt(m);
	memset(f,0x3f,sizeof f);
	for(int i=-k;i<=k;i++) f[1][310+i]=i*i;
	for(int i=2;i<=n;i++){
		t=inf;
		for(int j=-k;j<=k;j++) if(j+a[i-1]!=a[i]) t=min(t,f[i-1][j+310]);
		for(int j=-k;j<=k;j++)
			f[i][j+310]=j*j+min(f[i-1][a[i]-a[i-1]+j+310],t+m);
	}
	for(int i=310-k;i<=310+k;i++) ans=min(ans,f[n][i]);
	printf("%lld",ans);
}

总结:杨神的模拟赛。感觉质量很高。

标签:const,int,ll,link,60pts,inf,10.16,模拟,小记
From: https://www.cnblogs.com/Moyyer-suiy/p/17768409.html

相关文章

  • 10.16
    昨天踢比赛把脚崴肿了  估计得瘸一个月  javaweb学习的前端开发已经忘没了后端还没连接上数据库  哭了 今天学习了一下基本思路 前端 ——》向  Controller  Controller 1接受请求 2调用service..部门3.响应——》serviceservice调用Mapper接口........
  • 10.16每日总结
    今天完成了软件构造的作业,代码如下:packagecalculation;importjava.util.Random;publicclassEquation{privateinttheFirstNumber;privateinttheSecondNumber;privateStringsymbol;publicEquation(intmaxNumber,booleanallowMulti......
  • 10.16日记
    在src目录下创建路由文件目录,目录名为“router”,并在该目录下创建“index.js”文件,文件内容如下所示,代码中,创建了一个路由器,其中配置了两个路由“about”和“home”,分别对应组件“About”和“Home”。//该文件专门用于创建整个应用的路由器importVueRouterfrom'vue-router......
  • linux学习记录(租云服务器及配docker环境) 10.16
    租到的服务器1、毛坯(1)框架(2)thrift2、服务(配好环境的服务器)(1)socket:比如数据库,获得一个IP地址+端口号访问(2)http:重中之重:把毛坯搭好,服务用现成的docker可迁移,且y总会给我们环境镜像,省掉配环境的过程 未来开发的主要工作环境在docker里面docker可配置ssh登录 ......
  • 模拟赛 (11~20)
    一、高一高二联合NOIP模拟赛11T1:运输(transport)方差最小代表什么?设\(\sum_{i=1}^{n}a_i=sum\).最理想的情况是所有结点最终的\(a_i\)都变成\(s=\lfloor{sum\overn}\rfloor\).但是有可能\(n\)不能整除\(sum\)。设\(las=sum\modn\)。那么问题转化成有\(......
  • 云原生周刊:CNCF 宣布 Cilium 毕业 | 2023.10.16
    开源项目推荐ReloaderReloader是一个Kubernetes控制器,用于监控ConfigMap和Secrets中的变化,并对Pod及其相关部署、StatefulSet、DaemonSet和DeploymentConfig进行滚动升级!SpegelSpegel在瑞典语中意为镜像,是一种无状态集群本地OCI注册镜像。Spegel使Kubernete......
  • 2023年石门中学NOIP模拟测试(2023.10.16)
    T1\(\sumn\leq2\times10^6,x\leq10^9\)简单来说,让你在给出的序列中构造差分序列不出现\(x\)的一组解。签到题。对\(x\)分类讨论,排个序,调整一下,注意\(x=0\)时交叉构造以及\(a_i=0\)情况即可。Code#include<bits/stdc++.h>#defineilinline#definerintre......
  • Perceptual Losses 风格迁移论文复现小记
    看了一篇李飞飞组的论文PerceptualLossesforReal-TimeStyleTransferandSuper-Resolution。论文地址为:https://arxiv.org/pdf/1603.08155.pdf))想去找找代码复现一下。原文没有提供代码,就只有找找别人按照论文细节实现的代码。不过但是论文是2016年的,距离现在2023年已经......
  • 「解题报告」2023-10-14 模拟赛
    1.计数(count.cpp/c/pas)时间限制:1s内存限制:256MB【问题描述】给出\(m\)个数\(a_1,a_2,…,a_m\)求1~n中有多少数不是\(a_1,a_2,…,a_m\)的倍数。【输入】输入文件名为count.in。第一行,包含两个整数:\(n,m\)第二行,包含\(m\)个数,表示\(a_1,a_2,…,a_m\)【输出】......
  • JS 实现模拟键盘事件
    //获取事件需要绑定的节点varinp=document.getElementById('id')//创建初始化event事件varevent=newKeyboardEvent("keyup",{which:13,keyCode:13,key:'Enter',code:'Enter'});//执行inp.dispatchEvent(event) 参考:https://develo......