[蓝桥杯 2022 省 A] 推导部分和

[蓝桥杯 2022 省 A] 推导部分和

题目描述

对于一个长度为 N N N 的整数数列 A 1 , A 2 , ⋯ A N A_{1}, A_{2}, \cdots A_{N} A1,A2,AN,小蓝想知道下标 l l l r r r 的部分和 ∑ i = l r A i = A l + A l + 1 + ⋯ + A r \sum\limits_{i=l}^{r}A_i=A_{l}+A_{l+1}+\cdots+A_{r} i=lrAi=Al+Al+1++Ar 是多少?

然而,小蓝并不知道数列中每个数的值是多少,他只知道它的 M M M 个部分和的值。其中第 i i i 个部分和是下标 l i l_{i} li r i r_{i} ri 的部分和 ∑ j = l i r i = A l i + A l i + 1 + ⋯ + A r i \sum_{j=l_{i}}^{r_{i}}=A_{l_{i}}+A_{l_{i}+1}+\cdots+A_{r_{i}} j=liri=Ali+Ali+1++Ari, 值是 S i S_{i} Si

输入格式

第一行包含 3 个整数 N 、 M N 、 M NM Q Q Q。分别代表数组长度、已知的部分和数量 和询问的部分和数量。

接下来 M M M 行,每行包含 3 3 3 个整数 l i , r i , S i l_{i}, r_{i}, S_{i} li,ri,Si

接下来 Q Q Q 行,每行包含 2 2 2 个整数 l l l r r r,代表一个小蓝想知道的部分和。

输出格式

对于每个询问, 输出一行包含一个整数表示答案。如果答案无法确定, 输出 UNKNOWN

样例 #1

样例输入 #1

5 3 3
1 5 15
4 5 9
2 3 5
1 5
1 3
1 2

样例输出 #1

15
6
UNKNOWN

提示

对于 10 % 10 \% 10% 的评测用例, 1 ≤ N , M , Q ≤ 10 , − 100 ≤ S i ≤ 100 1 \leq N, M, Q \leq 10,-100 \leq S_{i} \leq 100 1N,M,Q10,100Si100

对于 20 % 20 \% 20% 的评测用例, 1 ≤ N , M , Q ≤ 20 , − 1000 ≤ S i ≤ 1000 1 \leq N, M, Q \leq 20,-1000 \leq S_{i} \leq 1000 1N,M,Q20,1000Si1000

对于 30 % 30 \% 30% 的评测用例, 1 ≤ N , M , Q ≤ 50 , − 10000 ≤ S i ≤ 10000 1 \leq N, M, Q \leq 50,-10000 \leq S_{i} \leq 10000 1N,M,Q50,10000Si10000

对于 40 % 40 \% 40% 的评测用例, 1 ≤ N , M , Q ≤ 1000 , − 1 0 6 ≤ S i ≤ 1 0 6 1 \leq N, M, Q \leq 1000,-10^{6} \leq S_{i} \leq 10^{6} 1N,M,Q1000,106Si106

对于 60 % 60 \% 60% 的评测用例, 1 ≤ N , M , Q ≤ 10000 , − 1 0 9 ≤ S i ≤ 1 0 9 1 \leq N, M, Q \leq 10000,-10^{9} \leq S_{i} \leq 10^{9} 1N,M,Q10000,109Si109

对于所有评测用例, 1 ≤ N , M , Q ≤ 1 0 5 , − 1 0 12 ≤ S i ≤ 1 0 12 , 1 ≤ l i ≤ r i ≤ N 1 \leq N, M, Q \leq 10^{5},-10^{12} \leq S_{i} \leq 10^{12}, 1 \leq l_{i} \leq r_{i} \leq N 1N,M,Q105,1012Si1012,1liriN, 1 ≤ l ≤ r ≤ N 1 \leq l \leq r \leq N 1lrN 。数据保证没有矛盾。

蓝桥杯 2022 省赛 A 组 J 题。


分析:

居然是一道图论建模题。。
对于一个部分和的关系,利用前缀和的思想,我们可以理解为是:
s [ r ] − s [ l − 1 ] = v s[r]-s[l-1]=v s[r]s[l1]=v
其实类比差分约束的思想就是让 l − 1 l-1 l1 r r r之间连一条长度为v的边
( l − 1 , r , v ) , ( r , l − 1 , − v ) (l-1,r,v),(r,l-1,-v) (l1,r,v),(r,l1,v)
建完边之后各个部分和之间的关系也就一目了然了
接下来我们只需要利用 D F S DFS DFS或者 B F S BFS BFS遍历这张图,用并查集将具有相同标准的前缀和放在一个块里(一个快里面的任何数都可以作为标准),在一个块里的任何两个数我们都能知道他们之间的部分和


Code

#include<bits/stdc++.h>
using namespace std;#define int long longconst int N = 2e5+100;
int n,m,q;
int Hom[N],cnt = 0;
bool vi[N];
struct Node{int y,Next,v;
}e[2*N];
int Linkk[N] , len;
int s[N];
int fa[N];void Insert(int x,int y,int v){e[++len] = (Node){y,Linkk[x],v};Linkk[x] = len;
}int Getfa(int x){return fa[x] == x?x:fa[x] = Getfa(fa[x]);
}void Dfs(int x,int vv){vi[x] = 1;s[x] = vv;for (int i = Linkk[x]; i; i = e[i].Next){int y = e[i].y;if (vi[y]) continue;fa[Getfa(y)] = Getfa(x);Dfs(y,vv+e[i].v);}
}signed main(){scanf("%lld %lld %lld",&n,&m,&q);for (int i = 1,x,y,v; i <= m; i++)cin>>x>>y>>v,Insert(x-1,y,v),Insert(y,x-1,-v);for (int i = 0; i <= n; i++) fa[i] = i;for (int i = 0; i <= n; i++)if (!vi[i]) Dfs(i,0);for (int i = 1; i <= q; i++){int l,r;cin>>l>>r;if (Getfa(l-1)!=Getfa(r)) {cout<<"UNKNOWN"<<endl;continue;}printf("%lld\n",s[r]-s[l-1]);}return 0;
}

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

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

相关文章

号牌模拟数据生成

说明 自己开发的测试数据生成工具&#xff0c;用于生成数据训练对应模型。 项目 效果

gin读取静态文件内容

测试准备两个txt文件,内容随意,在文件static/json文件夹下, homeTab.txt&#xff0c;searchKey.txt 启动入口 main.go package mainimport ("fmt""gin-test/router" )func main() {// 初始化路由并启动router.InitRouter() }路由配置 router/router.go …

047_第三代软件开发-日志分离

第三代软件开发-日志分离 文章目录 第三代软件开发-日志分离项目介绍日志分离用法 关键字&#xff1a; Qt、 Qml、 log、 日志、 分离 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language&#xff09;和 C 的强…

Langchain-Chatchat-win10本地安装部署成功笔记(CPU)

Langchain-Chatchat&#xff08;原Langchain-ChatGLM&#xff09;基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain。 开源网址&#xff1a;https:…

Angular 中的路由

1 使用 routerLink 指令 路由跳转 命令创建项目&#xff1a; ng new ng-demo创建需要的组件&#xff1a; ng g component components/home ng g component components/news ng g component components/produect找到 app-routing.module.ts 配置路由: 引入组件: import { Ho…

爬取Elastic Stack采集的Nginx内容

以下是一个简单的Go语言爬虫程序&#xff0c;用于爬取Elastic Stack采集的Nginx内容。请注意&#xff0c;这只是一个基本的示例&#xff0c;实际使用时可能需要根据具体情况进行修改和扩展。 package mainimport ("fmt""net/http""io/ioutil" )…

Servlet详解

一.Servlet生命周期 初始化提供服务销毁 1.测试生命周期 package com.demo.servlet;import javax.servlet.*; import java.io.IOException;public class LifeServlet implements Servlet {Overridepublic void init(ServletConfig servletConfig) throws ServletException {…

layui form 中input输入框长度的统一设置

Layui.form中使用class"layui-input-inline"就可轻松将元素都放到一行&#xff0c;但如果元素过多&#xff0c;就会自动换行。那就需要手动设置input框的长度。 像这种情况&#xff1a; 其实只需要添加css样式就可修改了 .layui-form-item .layui-input-inline {wid…

Javaweb之javascript的详细解析

1.3.2 变量 书写语法会了&#xff0c;变量是一门编程语言比不可少的&#xff0c;所以接下来我们需要学习js中变量的声明&#xff0c;在js中&#xff0c;变量的声明和java中还是不同的。首先js中主要通过如下3个关键字来声明变量的&#xff1a; 关键字解释var早期ECMAScript5中…

【Maven】<dependencyManagement>详解

<dependencyManagement> 元素是 Maven POM 文件中的一个非常重要的元素&#xff0c;它用于集中管理项目中所有模块的依赖项版本&#xff0c;允许您在父 POM 中定义依赖版本&#xff0c;然后在子模块中引用这些版本而不需要显式指定版本号。这可以大大减少维护成本&#x…

【redis】ssm项目整合redis,redis注解式缓存及应用场景,redis的击穿、穿透、雪崩的解决方案

一、整合redis redis是nosql数据库&#xff0c;mysql是sql数据库&#xff0c;都是数据库因此可以参考mysql整合ssm项目的过程。 1.pom依赖 <properties> <redis.version>2.9.0</redis.version><redis.spring.version>1.7.1.RELEASE</redis.spri…

JWT(JSON web token)的三个组成部分

每日鸡汤&#xff1a;每个你想要学习的瞬间都是未来的你向自己求救 前几天去考 系统架构师的考试&#xff0c;有一道案例分析题就是关于JWT的&#xff0c;作为一个前端工程师&#xff0c;我居然没答上来&#xff0c;真的气的拍大腿&#xff0c;但凡再努力一点呀&#xff01;这次…

C++——搜索二叉树

作者&#xff1a;几冬雪来 时间&#xff1a;2023年11月7日 内容&#xff1a;C的搜索二叉树讲解 目录 前言&#xff1a; 什么是搜索二叉树&#xff1a; 搜索二叉树的增删查改&#xff1a; 搜索二叉树的定义初始化&#xff1a; 搜索二叉树增操作&#xff1a; 搜索二叉树找…

目前安卓、鸿蒙、澎湃的关系

1、了解AOSP是什么 AOSP全名为Android Open-Source Project&#xff0c;中文为安卓开源项目&#xff0c;开源即开放源代码。Android是一个基于Linux&#xff0c;由Google主导的开源系统。 2、AOSP谁的贡献最大&#xff1f; 3、华为的鸿蒙、小米的澎湃是套壳安卓吗&#xff1…

C#中的DataTable使用

在C#中&#xff0c;DataTable 是一个非常重要的组件&#xff0c;它是System.Data命名空间下的一部分。它用于在内存中存储表格数据&#xff0c;可以看作是一个内存中的数据库表。以下是DataTable的一些主要特点和常用的操作&#xff1a; 特点 内存中的数据存储&#xff1a;Da…

QGC 中添加海康威视摄像头记录(Qt For Android 使用 JNI 进行JAVA 与 C++ 的通讯)

文章目录 1. 配置海康威视 SDK 下载库文件移植工程文件添加动态库&#xff08;.so&#xff09;Android xml 配置添加 java 文件 2. JavaQGCActivity.javaHkwsManager.java 3. C头文件添加&#xff1a;C 中调用 Java 静态函数&#xff08;hcnNetSDKInit&#xff09;JNI 传入规则…

unity笔记

物体的各种控制方法 using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine;public class Componentl : MonoBehaviour {// Transform transform;GameObject obj;public float floSpeed 0;public float floRotate 0;// Start …

JJJ:PCI / PCIE 的一些术语和概念

转发事务和非转发事务 在PCIe&#xff08;Peripheral Component Interconnect Express&#xff09;总线中&#xff0c;存在两种类型的事务&#xff1a;转发事务和非转发事务。 1、转发事务&#xff08;Forwarded Transactions&#xff09;&#xff1a;转发事务是指从一个PCIe…

11 传输层协议

1、传输层里比较重要的两个协议&#xff0c;一个是 TCP&#xff0c;一个是UDP 对于不从事底层开发的人员来讲&#xff0c;或者对于开发应用的人来讲&#xff0c;最常用的就是这两个协议。 2、TCP 和 UDP 有哪些区别&#xff1f; 1.TCP 是面向连接的&#xff0c;UDP 是面向无…

视频号小店所需资金明细,2023最新费用详解!

我是电商珠珠 22年7月视频号团队开始发展自己的电商平台-视频号小店。截止到目前为止&#xff0c;也才发展了一年的时间。 新平台预示着新机会&#xff0c;在这个平台内可发展的空间很大&#xff0c;利润比较高。 对于新手来说一般可以做到5w的数据&#xff0c;今天就来给大…