当前位置: 首页 > news >正文

刷题记录:牛客NC17193简单瞎搞题

传送门;牛客

题目描述:
一共有 n个数,第 i 个数是 xi
xi 可以取[li,ri][li , ri][li,ri] 中任意的一个值。
S=∑xi2S = \sum{{x_i}^2}S=xi2
,求 S 种类数。
输入:
5
1 2
2 3
3 4
4 5
5 6
输出:
26

这道题目还是挺有意思的.首先我们看到这道题目想到的应该是区间dp的想法

想法一:

  1. 我们使用dp[i][j]dp[i][j]dp[i][j]来记录枚举完前iii个数字能否组成jjj的值.我们使用bool来存储
  2. 这样的话我们就有一种比较简单的转移方案,我们可以判断前面的已经可以组成的数字来加上我们此时的可以加上的xixixi的值来进行转移.具体代码如下
for(int i=1;i<=n;i++){scanf("%d%d",&l,&r);for(int j=r;j>=l;j--){for(int k=sum;k>=0;k--){f[i][k+j*j]=f[i-1][k];   }    }sum+=r*r;
}
  1. 但是我们发现如果这样进行转移的话需要的复杂度将是N4N^4N4,这样子的话肯定是会超时的,所以我们需要将此代码进行一个优化.我们发现我们主要的判断是否能组成一个数字时是可以使用二进制来进行优化的.也就是当我们的当前的数字进行加法时,就将我们记录状态的01串进行左移.这样的话我们就将原本的每一个可行的数字进行一个简单的记录了.然后我们再将移动后的01串和我们原来的01串进行异或操作来合并即可(异或可以解决重复的问题),但是我们发现这样的话我们又需要100∗100∗100∗100100*100*100*100100100100100的长度的01串,那么我们就不能使用bool类型的数组来记录状态了,因为此时肯定会爆内存.
  2. 但是c++中的stlstlstl为我们提供了bitsetbitsetbitset这样的巧妙的类型.这个类的作用就是给你一个长度更长的01串,并且这个类型存储的内存只占boolboolbool类型的1/81/81/8,这样的话我们就可以通过这道题了
  3. 对于bitset,我们此题涉及以下函数

btiset<length>dp[100]btiset<length>dp[100]btiset<length>dp[100]
dp[0].set(0):代表将我们的第一个01串的第0个位置置为1dp[0].set(0):代表将我们的第一个01串的第0个位置置为1dp[0].set(0):代表将我们的第一个01串的第0个位置置为1
(注意我们的bitset是从右往左进行移动的)
dp[n].count(),用来输出我们的01串中的1的个数dp[n].count(),用来输出我们的01串中的1的个数dp[n].count(),用来输出我们的01串中的1的个数在本题中就是不同数字的是否可行性

下面是具体的代码部分:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <string.h>
#include <stack>
#include <deque>
#include <bitset>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
#define root 1,n,1
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
inline ll read() {ll x=0,w=1;char ch=getchar();for(;ch>'9'||ch<'0';ch=getchar()) if(ch=='-') w=-1;for(;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0';return x*w;
}
#define maxn 1000010
#define ll_maxn 0x3f3f3f3f3f3f3f3f
const double eps=1e-8;
int n;
bitset<maxn>dp[110];
int main() {n=read();int l,r;dp[0].set(0);for(int i=1;i<=n;i++) {l=read();r=read();for(int j=l;j<=r;j++) {dp[i]|=(dp[i-1]<<(j*j));}}cout<<dp[n].count()<<endl;return 0;
}

相关文章:

01_导论

第1章 导论 什么是计量经济学计量经济学 定义 运用概率统计方法对经济变量之间的(因果)关系进行定量分析的科学。经济问题没法实验,计量经济学不足以确定变量间的因果; 但实证的目的恰恰就是要去确定变量间的因果。因果关系 如果只是对数据进行预测,那相关关系就足够了。但…...

Akamai 分布式“云+边缘”,打造下一代数字化基座

当下&#xff0c;数字化基础设施正逐步向分布式部署演化&#xff0c;云计算与边缘计算正在成为两大技术支柱。Gartner 数据显示&#xff0c;云服务占 IT 整体支出比例连年上涨&#xff0c;在过去一年已增长至12.1%&#xff1b;IDC 报告显示&#xff0c;截至2021年已有超过500亿…...

DataFrame删除复合索引

index2 和 reasons_id 数据显示重复,可以删除列reasons_id,如果强迫症必须删除索引,可以用下面的方法 # reasons_id total_price ... total_price_统计 people_num_统计 # index1 index2 ... …...

数据集市与数据仓库

一、概念 数据仓库&#xff08;Data Warehouse&#xff09;和数据集市&#xff08;Data Mart&#xff09;是企业中用于存储和管理数据的两种常见架构。它们在设计和应用上有一些区别&#xff0c;下面我简要介绍一下&#xff1a; 数据仓库&#xff08;Data Warehouse&#xff0…...

【算法基础实验】图论-深度优先搜索和深度优先路径

深度优先(DFS) 理论基础 深度优先搜索&#xff08;DFS, Depth-First Search&#xff09;是图和树的遍历算法中的一种&#xff0c;它从一个节点开始&#xff0c;沿着树的边走到尽可能深的分支&#xff0c;直到节点没有子节点为止&#xff0c;然后回溯继续搜索下一个分支。DFS …...

整合文本和知识图谱嵌入提升RAG的性能

我们以前的文章中介绍过将知识图谱与RAG结合的示例,在本篇文章中我们将文本和知识图谱结合,来提升我们RAG的性能https://avoid.overfit.cn/post/5782ca7c4695427b8c0299ad0887c564...

刷题记录:牛客NC17193简单瞎搞题

传送门;牛客 题目描述: 一共有 n个数&#xff0c;第 i 个数是 xi xi 可以取[li,ri][li , ri][li,ri] 中任意的一个值。 设 S∑xi2S \sum{{x_i}^2}S∑xi​2 &#xff0c;求 S 种类数。 输入: 5 1 2 2 3 3 4 4 5 5 6 输出: 26 这道题目还是挺有意思的.首先我们看到这道题目想到…...

C++笔记 16 (STL常用容器 - deque)

三. STL常用容器 3.deque容器 3.1 deque容器基本概念 双端数组&#xff0c;可以对头端进行插入删除操作。 deque和vector区别&#xff1a; 1&#xff09;vector对于头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低&#xff1b; 2&#xff09;deque相对而言…...

python:基础知识

环境&#xff1a; window11python 3.10.6vscodejavascript、c/c/java/c#基础&#xff08;与这些语言对比&#xff09; 注释 一、数据类型 基础六大数据类型&#xff0c;可以使用 type()查看&#xff0c;如下图&#xff1a; 1.1 数字&#xff08;Number&#xff09; 支持 整…...

智工教育:每年必考!教师编制这些考点必背!

夸美纽斯的教育思想 &#xff08;1&#xff09;著作&#xff1a;《大教学论》&#xff0c;是近代最早的一部教育学著作&#xff0c;是近代独立形态教育学的开端&#xff0c;标志着教育学开始成为一门独立学科。 &#xff08;2&#xff09;观点&#xff1a; 对学年制、班级授…...

C++基础——输入输出和缺省参数讲解

上篇文章中&#xff0c;我们学习了C的域名空间&#xff0c;这次继续来学习C的基础知识。 目录 一.C的输入输出 总结&#xff1a; 二.缺省参数 全缺省案例&#xff1a; 部分缺省案例&#xff1a; 一.C的输入输出 例&#xff1a; #include<iostream> using std::co…...

Git使用详细教程

1. cmd面板的常用命令 clear&#xff1a;清屏cd 文件夹名称----进入文件夹cd … 进入上一级目录(两个点)dir 查看当前目录下的文件和文件夹(全拼:directory)Is 查看当前目录下的文件和文件夹touch 文件名----创建文件echo 内容 > 创建文件名----创建文件并写入内容rm 文件名…...

11月新书预告——GNN、深度学习和元宇宙

11月的新书聚焦AI的前沿主题——GNN&#xff0c;另外&#xff0c;还有两本重磅的深度学习好书&#xff0c;也不乏元宇宙、智能驾驶和硬件产品经理等全新技术主题的好书。 1. 图神经网络&#xff1a;基础、前沿与应用 吴凌飞 崔鹏 裴健 赵亮 编著 张钹、韩家炜、…...

YOLOv5 PyQt5 | PyQt5快速入门 | 2/3

YOLOv5 PyQt5 快速入门 2/3 文章目录 YOLOv5 PyQt5 快速入门 2/31. 设计页面2. PyQt5 打开图片3. PyQt5 打开视频4. PyQt5 打开摄像头源码1. 设计页面 首先我们利用QtDesigner来设计一个页面。这个页面比较简单,包含三个PushButton、两个GroupBox、两个Textlabel。 设计好后我…...

Java为什么吧String设计为不可变类?

文章目录那么为什么要这么设计呢&#xff1f;防止被篡改&#xff0c;保证信息数据的安全性不变的对象和值是线程安全的哈希值的唯一性来挺好性能提高常量池的可用性在Java中String类由final修饰&#xff0c;所以不能被继承。被final修饰主要是为了让String成为一个不可变类因为…...

【javaEE】多线程进阶(Part1 锁策略、CAS、synchronized )

目录前言/补充4. 描述一下线程池的执行流程和拒绝策略有哪些&#xff1f;【面试题&#xff01;】一、常见锁策略一&#xff09;乐观锁VS悲观锁二&#xff09;读写锁VS普通互斥锁三&#xff09;重量级锁VS轻量级锁四&#xff09;自旋锁VS挂起等待锁五&#xff09;公平锁VS非公平…...

deepin(深度)系统下qt5.12.0的程序打包发布到linux云服务器上

做项目时要求&#xff0c;要求做一个用于QT客户端更新提供更新的服务器&#xff0c;服务器弄好啦&#xff0c;要测试一下&#xff0c;在发布时&#xff0c;发现了一些问题&#xff0c;在此记录一下。 这个打包和我的前一篇博客步骤一样&#xff0c;打包可参考https://blog.csd…...

精读大型网站架构:前端架构模块化的方法及困境,自研框架Trick

模块化的方法 网页和网页之间有很多相似或者相同的模块&#xff0c;模块化就是把这些模块抽离并独立管理。而模块化的方法&#xff0c;就是把模块的HTML、CSS和JavaScript文件独立出来&#xff0c;然后通过某种方法关联到使用这些模块的网页上。 在介绍模块化的具体方法之前&…...

用Python实现的这五个小游戏,你真的学会了嘛?

游戏名称1、五子棋 2、雷霆战机 3、贪吃蛇 4、坦克大战 5、俄罗斯方块 开发环境 Python版本&#xff1a;3.6.4 相关模块&#xff1a; pygame模块&#xff1b; 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变量&#xff0c;pip安装需要的相关模块即可。 一&am…...

linux环境下查询主板、CPU、内存等硬件信息

文章目录前言dmidecode常用参数-t参数测试-q参数测试-s参数测试总结前言 如果是在windows系统下&#xff0c;查询电脑硬件会容易的多&#xff0c;可以通过电脑属性、计算机管理等多种图形化界面中查到&#xff0c;如果安装了各种电脑管家&#xff0c;那查询这类信息就更方便了…...

查看日志.

如果查看比较小的日志文件&#xff1a;cat xxx.log 一般常用&#xff1a;view xxx.log/vi xxx.log查找关键字&#xff0c;如“木叶”&#xff1a;编辑&#xff0c;/木叶&#xff0c;确定&#xff0c;然后按“n”键就能往下找。 如果想往上找&#xff0c;输入:$到最后一行&#…...

vue3 生命周期函数,都改了啥?

vue2到3常用生命周期钩子函数的变化 Ⅰ. 实例化 和 数据初始化 &#xff08;beforeCreate&#xff0c;created > setup&#xff09; 1. new Vue 从开始 > 结束 [vue2和3 、两版本区别处] vue2的写法> export default {beforeCreate(){console.log(vue的实例 还没ne…...

基于springboot的医院管理系统

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里&#xff0c;你想解决的问题&#xff0…...

Django + Nginx https部署实战(第一辑)

WebServer和WebAPP 之前对于nginx的了解都只是听说&#xff0c;根本就不知道nginx对于整个网站的作用。经历了数个项目之后&#xff0c;我本人逐渐对nginx有了更深入的了解&#xff0c;也希望把这段经历拿出来分享给大家&#xff01; 由于我本人之前接触的都是Python的Django…...

Pycharm+服务器运行代码

Pycharm服务器运行代码服务器的连接与Anaconda环境配置ssh连接安装Anaconda创建虚拟环境安装代码所需的库Pycharm上传代码到服务器服务器的连接与Anaconda环境配置 ssh连接 我使用的是MobaXterm&#xff0c;新建一个会话&#xff0c;选择SSH&#xff0c;输入主机IP地址自己的…...

【Spring】IDEAspring-mybatis的整合----关于配置文件的整合

文章目录spring-mybatis的整合过程步骤1.导包&#xff0c;spring的jar包&#xff0c;mybatis的jar包2.mybatis.xml配置3.spring-mybatis.xml配置4.dao、service层、代码测试spring-mybatis的整合过程步骤 1.导包&#xff0c;spring的jar包&#xff0c;mybatis的jar包 <!--统…...

ssm技术

ssm ssm框架配置 maven项目–》webquickstart pom文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLo…...

MQ消息队列

MQ消息队列 消息队列&#xff08;Message Queue&#xff0c;简称MQ&#xff09;&#xff0c;指保存消息的一个容器&#xff0c;本质是个队列 消息队列是大型分布式系统不可缺少的中间件&#xff0c;也是高并发系统的基石中间件 使用消息队列还可以实现异步处理 下图便是消息…...

【JVM技术专题】精心准备了一套JVM分析工具的锦囊「JConsole补充篇」

前提概要 本篇文章主要针对于之前本系列文章的补充版&#xff0c;之前落下了Jconsole分析工具&#xff0c;所以为了了却这个遗憾&#xff0c;所以小编又开了这篇文章&#xff0c;主要针对于Jconsole工具进行相关的应用性能分析。 初识JConsole 【Jconsole&#xff08;Java Moni…...

基于PHP的高效协同办公管理系统

有需要请私信或看评论链接哦 可远程调试 基于PHP高效协同办公管理系统一 介绍 高效协同办公管理系统基于Yii框架开发&#xff0c;数据库mysql&#xff0c;可以稳定用于商业以及门户级的开发和使用。 二 系统功能 用户 1 办公门户(邮件/日志/汇报/日程/信息中心/通知公告/微博…...

第十四届蓝桥杯(Web应用开发)模拟赛1期-大学组

数据类型检测 请看这篇数据类型检测 渐变色背景生成器 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name&…...

【遥感科学】遥感科学绪论

第一章 绪论 本系列适用于梅安新老师的遥感导论复习&#xff0c;也可以作为遥感领域的快速入门文章 一、遥感的基本概念 啥子是遥感&#xff1f;借用童庆禧院士的理解&#xff0c;那就是欲穷千里目&#xff0c;更上一层楼&#xff0c;遥感可以看做人的眼睛或者感知的延伸&…...

Tensorflow图像识别 Tensorflow手写体识别(二)

资源介绍 我们从 MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges 这条链接&#xff08;MNIST官网&#xff09;中下载好数据集&#xff0c;如下&#xff1a; 下载下来以后整理成包含四个压缩包的文件MNIST_data&#xff08;不要解压&#x…...

盘点上海IB国际学校,你会选哪一所呢?

之前&#xff0c;小编给大家盘点了上海热门的AP学校和Alevel学校&#xff0c;同时也介绍了国际课程的具体情况&#xff1b;今天就和大家聊聊上海的IB国际学校。IB即是国际文凭组织IBO(International Baccalaureate Organisation)为全球学生开设从幼儿园到大学预科的课程&#x…...

windows远程访问树莓派ubuntu22.04 桌面 - NoMachine

通过nomachine 实现 windows 安装 nomachine 下载&#xff1a;链接&#xff1a;https://pan.baidu.com/s/10rGBREs-AnwRz7D7QbLQ1A?pwd8651 提取码&#xff1a;8651 安装&#xff1a;下一步 下一步 使用&#xff1a; 下一步 下一步 ubuntu 安装 nomachine服务 下载&#…...

聚醚醚酮(Polyether Ether Ketone)PEEK在粘接使用时可以使用UV胶水吗?要注意哪些事项?

一般情况下&#xff0c;聚醚醚酮&#xff08;Polyether Ether Ketone&#xff0c;PEEK&#xff09;是一种难以黏附的高性能工程塑料&#xff0c;而UV胶水通常不是与PEEK进行粘接的首选方法。PEEK表面的化学性质和高温性能使得它对常规胶水的附着性较低。然而&#xff0c;有一些…...

mysql基础知识汇总

本文自行整理&#xff0c;只做学习记忆之用&#xff0c;若有不当之处请指出 一、数据库三层结构 &#xff08;1&#xff09;所谓安装Mysql数据库&#xff0c;就是在主机安装一个数据库管理系统(DBMS),这个管理程序可以管理多个数据库。DBMS(database manage system) &#xf…...

paddlehub的简单应用

1、下载安装 pip install paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple 报错&#xff1a; Collecting onnx<1.9.0 (from paddle2onnx>0.5.1->paddlehub)Using cached https://pypi.tuna.tsinghua.edu.cn/packages/73/e9/5b953497c0e36df589fc60cc6c6b35…...

分布式与一致性协议之Raft算法(一)

Raft算法 概述 Raft算法属于Multi-Paxos算法&#xff0c;它在兰伯特Multi-Paxos思想的基础上做了一些简化和限制&#xff0c;比如日志必须是连续的&#xff0c;只支持领导者(Leader)、跟随者(Follwer)和候选人(Candidate)3种状态。在理解和算法实现上&#xff0c;Raft算法相对…...

Linux专栏04:Linux基本指令之用户管理指令

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Linux专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Linux基本指令之用户管理指令 编号&#xff1a;04 文章目录 Linux基…...