COCI2015-2016#1 RELATIVNOST

P6533 [COCI2015-2016#1] RELATIVNOST

题目大意

L L L在卖画。这些画分为彩色画和黑白画,小 L L L希望有至少 c c c个人会买走他至少一张彩色画。

i i i个人至多会购买 a i a_i ai张彩色画或者 b i b_i bi张黑白画,且每个人至少购买一张画。

每个人只能选择购买彩色画或黑白画。

q q q次修改,每次修改会选择一个 i i i并修改 a i a_i ai b i b_i bi。求每次修改之后能满足小 L L L的要求的买画的方案数。输出答案模 1 0 4 + 7 10^4+7 104+7后的值。

1 ≤ n , q ≤ 1 0 5 , 1 ≤ c ≤ 20 1\leq n,q\leq 10^5,1\leq c\leq 20 1n,q105,1c20

时间限制 4000 m s 4000ms 4000ms,空间限制 32 M B 32MB 32MB


题解

f i , j f_{i,j} fi,j表示前 i i i个人有 j j j个人选择彩色画的方案数,则转移式为

f i , j = f i − 1 , j − 1 × a i + f i − 1 , j × b i f_{i,j}=f_{i-1,j-1}\times a_i+f_{i-1,j}\times b_i fi,j=fi1,j1×ai+fi1,j×bi

因为有修改,所以我们考虑用线段树来优化。用线段树维护每一个区间的方案数,那么

t r [ k ] . f [ i + j ] + = t r [ l c ] . f [ i ] × t r [ r c ] . f [ j ] tr[k].f[i+j]+=tr[lc].f[i]\times tr[rc].f[j] tr[k].f[i+j]+=tr[lc].f[i]×tr[rc].f[j]

在只有一个人时, t r [ k ] . f [ 1 ] = a i , t r [ k ] . f [ 0 ] = b i tr[k].f[1]=a_i,tr[k].f[0]=b_i tr[k].f[1]=ai,tr[k].f[0]=bi

空间限制为 32 M B 32MB 32MB,对于 int \text{int} int类型能开 24 × 1024 × 1024 / 4 = 8388608 24\times 1024\times 1024/4=8388608 24×1024×1024/4=8388608的大小。线段树的大小为 4 n c = 8000000 4nc=8000000 4nc=8000000 a , b a,b a,b数组的大小都是 1 0 5 10^5 105,是可行的。注意空间复杂度,能节省的空间尽量节省。

时间复杂度为 O ( n c 2 log ⁡ n ) O(nc^2\log n) O(nc2logn),空间复杂度为 O ( n c ) O(nc) O(nc)

code

#include<bits/stdc++.h>
#define lc k<<1
#define rc k<<1|1
using namespace std;
const int N=100000;
const int mod=1e4+7;
int n,c,q,a[N+5],b[N+5],tr[4*N+5][21];
void pt(int k){for(int i=0;i<=c;i++) tr[k][i]=0;for(int i=0;i<=c;i++){for(int j=0;j<=c;j++){tr[k][min(i+j,c)]=(tr[k][min(i+j,c)]+tr[lc][i]*tr[rc][j])%mod;}}
}
void build(int k,int l,int r){if(l==r){tr[k][1]=a[l]%mod;tr[k][0]=b[l]%mod;return;}int mid=l+r>>1;build(lc,l,mid);build(rc,mid+1,r);pt(k);
}
void ch(int k,int l,int r,int p,int x,int y){if(l==r&&l==p){tr[k][1]=x%mod;tr[k][0]=y%mod;return;}int mid=l+r>>1;if(p<=mid) ch(lc,l,mid,p,x,y);else ch(rc,mid+1,r,p,x,y);pt(k);
}
int main()
{scanf("%d%d",&n,&c);for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=n;i++) scanf("%d",&b[i]);build(1,1,n);scanf("%d",&q);while(q--){int p,x,y;scanf("%d%d%d",&p,&x,&y);ch(1,1,n,p,x,y);printf("%d\n",tr[1][c]);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android---Jetpack Compose学习007

Compose 附带效应 a. 纯函数 纯函数指的是函数与外界交换数据只能通过函数参数和函数返回值来进行&#xff0c;纯函数的运行不会对外界环境产生任何的影响。比如下面这个函数&#xff1a; fun Add(a : Int, b : Int) : Int {return a b } “副作用”&#xff08;side effe…

单例模式的介绍

单例模式&#xff08;Singleton&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供全局访问点。其核心思想是通过限制类的实例化次数&#xff0c;防止多个实例同时存在&#xff0c;从而避免了多线程竞争和资源浪费&#xff0c;提高了代码…

【蓝桥杯单片机入门记录】静态数码管

目录 一、数码管概述 &#xff08;1&#xff09;认识数码管 &#xff08;2&#xff09;数码管的工作原理 &#xff08;3&#xff09;LED数码管驱动方式-静态显示 二、数码管电路图 三、静态数码管显示例程 &#xff08;1&#xff09;例程1&#xff1a;数码管显示某一位&a…

vue、thinkphp实现腾讯云对象存储COS图片上传

环境&#xff1a; thinkphp6 vue2 vant2.12 composer安装qcloud-sts-sdk composer require qcloud_sts/qcloud-sts-sdk获取COS临时id、key的sts接口 <?php declare (strict_types 1);namespace app\index\controller; use QCloud\COSSTS\Sts;class CosController {//h…

如何为PostgreSQL设置自增主键?

在 PostgreSQL 中&#xff0c;自增主键通常是通过使用 SERIAL 类型或在新版本中使用 IDENTITY 列来实现的。 1. 使用 SERIAL 类型 SERIAL 是一个自动增加的整数&#xff0c;常用于主键。当插入新的行时&#xff0c;PostgreSQL 会自动为这个列生成一个新的值。   例如 CREAT…

PYQT5-自定义事件

from PyQt5.QtCore import QEvent, QObject from PyQt5.QtWidgets import QApplication import sys# 自定义事件类 class CustomEvent(QEvent):# PYQT5 预留给用户自定义事件类型的起点为 QEvent.User1000custom_event_type QEvent.registerEventType()# 也可以这样写# custom…

2024.2.22

P1162 #include<map> #include<vector> #include<iostream> #include<math.h> #include<algorithm> #include<string> using namespace std; const int N 1020; int n; int g[N][N];//标记数组 int a[N][N];//储存数组 int dx[] { -1…

webstorm光标变成方块解决办法_webstorm光标变粗不能换行

webstorms光标变了 键盘上的insert是切换的快捷键&#xff0c;敲insert就可以来回切换了

回顾 | Java面向对象 多态篇

多态是面向对象编程中的一个重要概念&#xff0c;它允许不同的对象对同一消息做出不同的响应。 通过多态&#xff0c;可以通过父类或接口定义的引用变量来操作子类或实现类的对象&#xff0c;从而实现同一方法在不同对象上的不同行为。 在Java中&#xff0c;多态性主要通过继…

双通道并行网络,想用哪个网络用哪个,MATLAB代码

本期可谓是宝藏篇&#xff01;学会本期的思想&#xff0c;帮助你分分钟找到创新点&#xff0c;且不与别人重复&#xff01; 本期采用MATLAB代码&#xff0c;实现一种“基于格拉姆角场与并行CNN的故障诊断方法”。该方法的具体实现可以参考文献&#xff1a; [1]李宗源,陈谦,钱…

React native更改包名后,启动app的activity包名不生效问题

这篇文章本不算记录的&#xff0c;因为实际开发中&#xff0c;类似这种小问题会有很多很多&#xff0c;因为导致问题的原因千奇百怪&#xff0c;解决方案也不尽相同&#xff0c;所以也都没有记录。 但今天看到我10年写的问题解决小文章&#xff0c;被网友收藏了&#xff0c; 感…

普中51单片机学习(EEPROM)

EEPROM IIC串行总线的组成及工作原理 I2C总线的数据传送 数据位的有效性规定 I2C总线进行数据传送时&#xff0c;时钟信号为高电平期间&#xff0c;数据线上的数据必须保持稳定&#xff0c;只有在时钟线上的信号为低电平期间&#xff0c;数据线上的高电平或低电平状态才允许…

分享WebGL物体三维建模

界面效果 代码结构 模型素材类似CT (Computed Tomography)&#xff0c;即电子计算机断层扫描&#xff0c;它是利用精确准直的X线束、γ射线、超声波等&#xff0c;与灵敏度极高的探测器一同围绕物体的某一部位作一个接一个的断面扫描。 坐标系统 渲染流程 渲染流程是个将之前准…

Sora:OpenAI引领AI视频新时代

Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展&#xff0c;AI视频模型已成为科技领域的新热点。而在这个浪潮中&#xff0c;OpenAI推出的首个AI视频模型Sora&#xff0c;以其卓越的性能和前瞻性的技术&#xff0c;引领着AI视频领域的创新发展。让我们将一起探讨…

C++(12) 模板类、模板继承(严格模式和自由模式)

文章目录 模版类1. 模版类2. 模版参数限制3. 模版继承3.1 严格模式3.2 自由模式 4. 模版类的模版函数5. 返回值类型带有模版 模版类 1. 模版类 #include <iostream>using namespace std;/* 当前 Person 类型&#xff0c;声明了连个模版分别对应NameType 模版类型&#…

C++ array容器用法详解

array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。在使用上,它比普通数组更安全(原因后续会讲),且效率并没有因此变差。 和其它容器不同,array 容器的大小是固定的,无法动态的扩展或收缩,这也就意…

【SpringCloud】使用 Spring Cloud Alibaba 之 Sentinel 实现微服务的限流、降级、熔断

目录 一、Sentinel 介绍1.1 什么是 Sentinel1.2 Sentinel 特性1.3 限流、降级与熔断的区别 二、实战演示2.1 下载启动 Sentinel 控制台2.2 后端微服务接入 Sentinel 控制台2.2.1 引入 Sentinel 依赖2.2.2 添加 Sentinel 连接配置 2.3 使用 Sentinel 进行流控&#xff08;含限流…

SLAM ORB-SLAM2(19)特征点三角化

SLAM ORB-SLAM2(19)特征点三角化 1. 前言2. 初始化参数3. 计算投影矩阵4. 恢复三维点4.1. 计算推导4.2. Triangulate5. 检查三维点5.1. 检查三维点的深度值和视差角5.2. 检查空间点的重投影误差6. 最后处理1. 前言 在 《SLAM ORB-SLAM2(12)估算运动并初始地图点》 中了解到…

如何将cocos2d-x js打包部署到ios上 Mac M1系统

项目环境 cocos2d-x 3.13 xcode 12 mac m1 big sur 先找到你的项目 使用xcode软件打开上面这个文件 打开后应该是这个样子 执行编译运行就好了 可能会碰到的错误 在xcode11版本以上都会有这个错误&#xff0c;这是因为iOS11废弃了system。 将上面代码修改为 #if (CC_TARGE…

Java 面向对象进阶 16 接口的细节:成员特点和接口的各种关系(黑马)

成员变量默认修饰符是public static final的原因是&#xff1a; Java中接口中成员变量默认修饰符是public static final的原因是为了确保接口的成员变量都是公共的、静态的和不可修改的。 - public修饰符确保了接口的成员变量可以在任何地方被访问到。 - static修饰符使得接口…