hdu 3074 Multiply game

双系统下 ubuntu 20.04 突然 开机黑屏报错 hdaudioC0D2: unable to configure disabling 今天在开实验室开双系统台式机时,ubuntu 20.04 系统下,突然在某次关机后再开机时,本来启动好好的,但是在进行图形化启动时,本来应该是显示输入账号和密码时,直接黑屏报错了,内容为 hdaudioC0D2: unable to configure disabling ,这里是记录了报错的解决全过程 阅读详情

        一个数列,有两种操作。一是修改数列中某个数,二是求数列中连续一段的积。

        很明显的线段树单点更新模版题。

#include<stdio.h>
#include<iostream> 
using namespace std; 
  
#define lch(x) ((x)<<1) 
#define rch(x) (((x)<<1)|1) 
#define ll long long 
const int mod = 1000000007; 

int a[50010]; 
  
struct node{ 
    int l,r; 
    ll val; 
}tree[200010]; 
  
void push_up(int nd){ 
    if(tree[nd].l==tree[nd].r){ 
        return ; 
    }
    tree[nd].val=tree[lch(nd)].val*tree[rch(nd)].val; 
    tree[nd].val%=mod; 
}

void build_tree(int nd,int l,int r){ 
    tree[nd].l=l;  tree[nd].r=r; 
    if(l==r){ 
        tree[nd].val=a[l]; 
        return; 
    } 
    int mid=(l+r)>>1; 
    build_tree(lch(nd),l,mid); 
    build_tree(rch(nd),mid+1,r); 
    push_up(nd); 
} 

ll query(int nd,int l,int r){ 
    if(tree[nd].l==l&&tree[nd].r==r){ 
        return tree[nd].val; 
    } 
    int mid= (tree[nd].l+tree[nd].r)>>1; 
    if(r<=mid){ 
        return query(lch(nd),l,r); 
    }else{ 
        if(l>mid){ 
            return query(rch(nd),l,r); 
        }else{ 
            ll a=query(lch(nd),l,mid); 
            ll b=query(rch(nd),mid+1,r); 
            return (a*b)%mod; 
        } 
    } 
} 

void update(int nd,int pos,int val){ 
    if(tree[nd].l==tree[nd].r){ 
        tree[nd].val=val; 
        return; 
    } 
    int mid=(tree[nd].l+tree[nd].r)>>1; 
    if(pos<=mid){ 
        update(lch(nd),pos,val); 
    }else{ 
        update(rch(nd),pos,val); 
    } 
    push_up(nd); 
} 

int main(){ 
    int t; 
    cin>>t; 
    while(t--){ 
        int n; 
        cin>>n; 
        for(int i=1;i<=n;i++){ 
            scanf("%d",&a[i]); 
        } 
        build_tree(1,1,n); 
        int q; 
        cin>>q; 
        for(int i=1;i<=q;i++){ 
            int op,a,b; 
            scanf("%d%d%d",&op,&a,&b); 
            if(op){ 
                update(1,a,b); 
            }else{		//query 
                ll ans=query(1,a,b); 
                printf("%I64d\n",ans); 
            } 
        } 
    } 
    return 0; 
} 



        天真的我曾经以为BIT只能维护和,不能维护积。但是比赛时一个学弟用BIT+逆元很好地教育了我。。膜拜一下Orz。。自己实现调了很久才调出来。

        题目求的是数列一个区间的积,输出取模后的结果。当某个数改变后,我们要在BIT里先除以旧的数再乘上新的数。但是由于取模的原因,不能用除法,所以必须用乘上旧的数的逆元来代替。

#include <stdio.h>
#include <iostream>
using namespace std;

#define ll long long

const int maxn=50010;
const int mod=1e9+7;
int T,n;

int a[maxn];
ll c[maxn];

//扩展欧几里德 
void ExEuclid(int a,int b,ll &x,ll &y,ll &q){
	if(b==0){
		x=1;y=0;q=a;
		return;
	}
	ExEuclid(b,a%b,y,x,q);
	y-=x*(a/b);
}

//逆元 
int inv(ll num){
	ll x,y,q;
	ExEuclid(num,mod,x,y,q);
	if(q==1)return (x+mod)%mod;
}

int lowbit(int x){
	return x&(-x);
}

void update(int pos,ll val){
	int tmp=val;
	val*=inv(a[pos]);
	val%=mod;
	a[pos]=tmp;
	while(pos<=n){
		c[pos]*=val;
		c[pos]%=mod;
		pos+=lowbit(pos);
	}
}

int product(int pos){
	ll re=1;
	while(pos){
		re*=c[pos];
		re%=mod;
		pos-=lowbit(pos);
	}
	return re;
}

int main(){
	cin>>T;
	while(T--){
		cin>>n;
		for(int i=1;i<=n;i++)a[i]=c[i]=1;
		
		for(int i=1;i<=n;i++){
			int num;
			scanf("%d",&num);
			update(i,num);
		}
		
		int q;
		cin>>q;
		for(int i=1;i<=q;i++){
			int op;
			scanf("%d",&op);
			if(op){
				int k,p;
				scanf("%d%d",&k,&p);
				update(k,p);
			}else{
				int k1,k2;
				scanf("%d%d",&k1,&k2);
				ll part1=product(k1-1);
				ll part2=product(k2);
				ll ans=inv(part1)*part2;
				ans%=mod;
				printf("%I64d\n",ans);
			}
		}
	}
	return 0;
}


Python控制Keysight DAQ973A/DAQ970A实现数据采集 本文介绍了如何通过编程实现Keysight DAQ973A数据采集系统的自动化温度测量。首先,通过GPIB线将PC与仪器连接,并使用热电耦测量线连接被测装置。接着,通过查阅Keysight官网提供的编程手册,获取了实现温度测量所需的SCPI指令。然后,使用pyvisa库编写代码,与仪器进行交互,发送SCPI指令并读取测量结果。代码中整合了配置和查询指令,并将测量结果转换为浮点数格式。最后,将整个流程封装为命令行工具,用户可以通过配置文件设置参数,并执行自动化测试,测试结果将保存为CSV文件。整个过程实现了温 阅读详情

相关推荐

Second-Order Cone Programming(SOCP) 二阶锥规划

个人博客Glooow,欢迎各位老师来踩踩 文章目录1. 二阶锥1.1 二阶锥定义1.2 二阶锥约束2. 优化问题建模3. 类似问题转化3.1 二次规划3.2 随机线性规划4. 问题求解 1. 二阶锥 1.1 二阶锥定义 在此之前,先给出二阶锥的定义。 在 kkk 维空间中二阶锥 (Second-order cone) 的定义为 Ck={[ut]∣u∈Rk−1,t∈R,∥u∥≤t} \mathc...

Glooow的博客 3万+

HDU - 3074 - Multiply game (线段树-单点更新,区间求积)

题目传送:Multiply game 思路:简单线段树,单点更新,区间求积,这是上次选拔赛选的题,一看题就是线段树,不过当时线段树不太熟,没敢敲,现在看来居然如此轻松,不过注意这里有大量输出,用printf,居然在这里TLE了一次。。。 AC代码: #include #include #include #include #include #include #inc

Never say never 1052

[Pytorch案例实践001]手写MNIST数字识别

Pytorch实现手写数字识别,带完整数据集。

2403_83044722的博客 1115

HDU3074Multiply game

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3074 普通线段树 节点保存 区间的

追梦赤子心 872

python如何实现点云可视化交互——Open3D实例教程(获取所选点的信息)保姆级教学

python如何实现点云可视化交互——Open3D实例教程(获取所选点的信息)保姆级教学

qq_45912037的博客 1万+

数字化车间智能排产调度挑战赛(一)—— 数学模型

科大讯飞——数字化车间智能排产调度挑战赛。

Lyyyp的博客 5649

HDU-3074-Multiply game

HDU-3074-Multiply game http://acm.hdu.edu.cn/showproblem.php?pid=3074 求区间元素的乘积,可以更新元素,线段树即可 #include #include #include #define Mod 1000000007 #define N 50005 int num[N]; struct cam { int x; //起点

菜鸟的程序人生 1089

Flash芯片的VCC上电到可操作时间过长

Flash的VCC上电到操作时间(tVSL)通常有最大值限制,如果超过这个时间,核心风险是状态机不同步和指令锁存错误。比如芯片内部振荡器可能已经尝试启动又休眠了,但主控却在这之后才发送指令,导致完全 misinterpreted。Flash芯片的(从电源上电到可以正常进行读写操作的时间)如果过长,会产生一系列负面影响简单来说,这个时间过长意味着电源上升速度太慢,违反了芯片的要求。

qq_61918649的博客 722

hdu 3074 Multiply game

<br />Multiply gameTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)<br />Total Submission(s): 573    Accepted Submission(s): 164<br /><br /><br />Problem DescriptionTired of playing computer games, alpc23 is planning to p

hqd_acm的专栏 973

【光子AI / Photon.AI】manus 通用 Agent 的实现核心技术原理与应用

摘要 Manus是一款由国内团队开发的通用AI Agent,其核心技术原理基于多智能体协作架构、云端全能沙箱、规划-执行-反思循环等系统工程方法。与传统的对话式AI不同,Manus能够在独立的Linux虚拟机环境中自主规划并执行复杂任务,通过编写和运行代码来解决问题,具备强大的纠错能力和工具使用能力。 核心应用场景包括深度行业研究、自动化办公、生活助理、辅助编程和跨平台信息整合等。Manus的工程化落地优势体现在沙箱环境、多智能体调度和容错机制等方面,使其能够完成需要多步骤操作和多种工具调用的复杂任务,将A

AI天才研究院 667

DSP2837X CLA开发实战教程

摘要: 本文详细解析TI C2000 DSP中CLA协处理器的开发流程,以TMS320F28377D的cla_divide案例为例,展示浮点除法验证的实现方法。从基础配置(消息RAM管理、任务触发)到高级调试(ePWM计时、断点设置),涵盖全流程开发要点。重点分析CLA编程约束(禁用标准库、数学优化)、多任务调度及常见问题解决方案(如死锁、数据同步)。提供FPGA协同加速、电机控制等扩展方向,并推荐官方例程与硬件平台(如创龙TL2837xF-EVM)。开发时需注意.cla文件语法支持及调试技巧,以充分发挥C

6760

Multiply game HDU - 3074

                                                Multiply game     HDU - 3074  Tired of playing computer games, alpc23 is planning to play a game on numbers. Because plus and subtraction is too easy f...

Learning_is_endless的博客 202

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

前程算法屋的博客 5593

hdu 3074 Multiply game(线段树)

Multiply game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1820    Accepted Submission(s): 611 Problem Description Tired of playing

hahahaha 1066

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

HDU-3074 Multiply game

Multiply game Tired of playing computer games, alpc23 is planning to play a game on numbers. Because plus and subtraction is too easy for this gay, he wants to do some multiplication in a num...

diangan7073的博客 145

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HDU 3074 Multiply game

Problem Description Tired of playing computer games, alpc23 is planning to play a game on numbers. Because plus and subtraction is too easy for this gay, he wants to do some multiplication in a num

Occult 842

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

HDU3074-Multiply game

Multiply game                                                                               Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)                    

wang_128的博客 328

HDU-3074-Multiply game-单点更新

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3074 这个也是个线段树的单点更新的模板题;要是不懂的话可以去看看我写的这篇单点更新的,我的HDU1166敌兵布阵代码有详解; 链接:http://blog.youkuaiyun.com/wlxsq/article/details/46897219 #include #include #include #in

wlxsq的专栏 1074

HDU 3074 Multiply game 线段树区间乘法

http://acm.hdu.edu.cn/showproblem.php?pid=3074 Tired of playing computer games, alpc23 is planning to play a game on numbers. Because plus and subtraction is too easy for this gay, he wants to do som...

xiji333的博客 238
上一篇: Google Code Jam 2015 Round 1A C large
下一篇: hdu 1973 Prime Path
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值