首页 > 其他分享 >[COCI2015-2016#1] RELATIVNOST

[COCI2015-2016#1] RELATIVNOST

时间:2023-05-17 19:23:11浏览次数:51  
标签:log int COCI2015 RELATIVNOST 节点 2016 线段 dp

RELATIVNOST の 传送门

线段树优化 dp 已经有很多题解讲的很好了。

dp 状态是一样的,但是一般的线段树优化 dp 空间要开 $4n$,而且只利用到线段树的一点点功能(单点修改),所以可以先优化空间,从 $4n$ 优化到 $2n$。

如下图所示。

如果用线段树优化 dp 的方法会导致树不止 $\log n+1$ 层,所以可以从下往上建树来保证最多 $\log n+1$ 层。

就直接将叶子节点赋值,其余 $\log n$ 层的答案就同线段树的 dp 一样更新。

然后每次询问都直接从要修改的点 $p$ 所对应的叶子节点依次向上更新。

点 $p$ 对应的叶子节点就是 $p+n-1$,向上就直接当前的节点 $now$ 改为 $\frac{now}{2}$ 即可。

C 风格的代码。

#include <stdio.h>
int p,A,B,n,c,Q,a[400005],b[400005],t[400005][21];
int minn(int a,int b) {return a>b?b:a;}
signed main() {
	scanf("%d%d",&n,&c);
	for(int i=1;i<=n;++i)   scanf("%d",a+i),a[i]%=10007;
	for(int i=1;i<=n;++i)   scanf("%d",b+i),a[i]%=10007;
	for(int i=1;i<=n;++i)   t[n+i-1][0]=b[i],t[n+i-1][1]=a[i];
	for(int p=n-1;p;--p)
		for(int i=0;i<=c;++i)
			for(int j=0;j<=c;++j)
				t[p][minn(i+j,c)]+=1ll*t[p<<1][i]*t[p<<1|1][j]%10007,
				t[p][minn(i+j,c)]%=10007;
	scanf("%d",&Q);
	while(Q--) {
		scanf("%d%d%d",&p,&A,&B);
		A%=10007,B%=10007;
		p+=n-1;
		t[p][0]=B,t[p][1]=A;
		for(p>>=1;p;p>>=1) {
			for(int i=0;i<=c;++i)   t[p][i]=0;
			for(int i=0;i<=c;++i)
				for(int j=0;j<=c;++j)
					t[p][minn(i+j,c)]+=1ll*t[p<<1][i]*t[p<<1|1][j]%10007,
					t[p][minn(i+j,c)]%=10007;
		}
		printf("%d\n",t[1][c]);
	}
	return 0;
}

标签:log,int,COCI2015,RELATIVNOST,节点,2016,线段,dp
From: https://www.cnblogs.com/StrayerTen/p/RELATIVNOST.html

相关文章

  • luogu P4690 [Ynoi2016] 镜中的昆虫 题解
    P4690[Ynoi2016]镜中的昆虫题解题意维护一个长为 \(n\) 的序列 \(a_i\),有 \(m\) 次操作。将区间 \([l,r]\) 的值修改为 \(x\)。询问区间 \([l,r]\) 出现了多少种不同的数,也就是说同一个数出现多次只算一个。题解感觉这道题还是比较有意思的,像是一堆套路......
  • 直流微电网模型Matlab2016及以上,功率波动及直流母线电压控制。
    直流微电网模型Matlab2016及以上,功率波动及直流母线电压控制。仅限交流学习~该模型包括:本地松弛母线、光伏系统、电池和直流负载。本地松弛总线使用与交流电网连接的简化VSC转换器。光伏系统采用标准光伏模型+升压转换器。电池采用标准锂离子电池型号+双有源桥式转换器。需求通过......
  • Windows Server 2016 MDT批量部署服务搭建
    一.介绍MDT是自动执行桌面和服务器部署的工具、流程和指南的统一集合。你可以使用它创建引用映像,或将其用作完整的部署解决方案。MDT现在是IT专业人员可用的最重要的工具之一。除了减少部署时间和标准化桌面和服务器映像以外,MDT还可以使你更轻松地管理安全配置和正在进行的......
  • [NOIP2016 普及组] 买铅笔
    [NOIP2016普及组]买铅笔题目背景NOIP2016普及组T1题目描述P老师需要去商店买\(n\)支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有\(3\)种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P老师决定只买同一种包装的铅笔。商店不......
  • 「USACO2016JAN」Subsequences Summing to Sevens
    [USACO16JAN]SubsequencesSummingtoSevensS题目描述FarmerJohn's\(N\)cowsarestandinginarow,astheyhaveatendencytodofromtimetotime.EachcowislabeledwithadistinctintegerIDnumbersoFJcantellthemapart.FJwouldliketota......
  • ex2016安装部署
    本文描述在WindowsServer2016上面安装exchangeserver2016CU21目录目录1、安装系统必备组件2、安装exchangeserver20161、安装系统必备组件安装以下补丁包和相关的组件,如下图所示:2、安装exchangeserver2016运行安装向导,如下图所示:exchangeserver2016开始,只......
  • ex2016部署DAG高可用
    目录目录1、环境介绍2、网卡准备3、AD配置3.1、为administrators组授权ExchangeTrustedSubsystem3.2、在DNS中创建A记录dag3.3、创建dag计算机对象并授权给dag成员服务器4、通过ecp配置DAG4.1、创建dag可用性组4.2、配置dag网络4.3、创建dag数据库5、通过命令查看dag状态1、环......
  • GB/T28181-2022相对2016版“基于TCP协议的视音频媒体传输要求“规范解读和技术实现
    ​规范解读GB/T28181-2022和GB/T28181-2016规范,有这么一条“更改了附录D基于TCP协议的视音频媒体传输要求(见附录D,2016年版的附录L)。”。本文主要是针对GB/T28181-2022里面提到的“基于TCP协议的视音频媒体传输要求”做相应的接口适配,在此之前,我们先回顾下规范里面针对......
  • P4093[HEOI2016/TJOI2016]序列
    P4093[HEOI2016/TJOI2016]序列目录P4093[HEOI2016/TJOI2016]序列题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示题目大意思路code题目描述佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他。玩具上有一个数列,数列中某些项的值可能会变化,但同一个......
  • [JOI 2016 Final]断层 题解
    题目链接首先发现斜着平移比较难处理,所以考虑将平面逆时针旋转\(45°\)。接着发现风化也不好处理,但是风化的一定不会作为答案,所以我们可以离线,然后倒着处理操作,上升变为下降。我们发现每个初始\(0\)点最后的坐标就是它正着做时初始的坐标,且每次操作都只会将连续一段点的\(......