寻找数列(构造+拓扑)

2023-10-27

寻找一个有n个整数的数列,满足下列条件:

其中任意连续p个数之和是正数。

其中任意连续q个数之和是负数。

若无法找到,则输出"No",否则输出一个数值最小的数列。

输入  n  p  q

输出  n个整数

 

样例:

输入:

5 4 3

输出:

2 2 -5 2 2

 

 

 

 

设: si——数列前i个数之和。

所以有

s[i]=a[1]+a[2]+...+a[i]

s[0]=0;

 

s[i+p]-s[i]>0 s[i+p]>s[i]

s[i+q]-s[i]<0 s[i+q]<s[i]

构图:

点——i (0..n)

权——s[i]

边——当s[i]>s[j]时 有(i,j)

 

如n,p,q=6,5,3

 

s[i]>s[i+3]

s[i+5]>s[i]

拓扑号: 0 1 2 3   4   5  6

            2 5 0 3   6   1  4

                  ↑ 这个我们知道。  而要最小、 所以往前一次递增,往后依次递减。

 s[i]  : 2 1 0 -1 -2 -3  -4

 

a[i]=s[i]-s[i-1]: 1  2  3  4  5  6

                      -3 5 -3 -3  5 -3

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
#include<stdio.h>
#include
<stdlib.h>
int n,p,q,i,j,k,g[100][100],ID[100],s[100],a[100];
int main(){
    freopen(
"寻找队列.in","r",stdin);
    freopen(
"寻找队列.out","w",stdout);
    scanf(
"%d%d%d",&n,&p,&q);
    
for (i=0;i<=n-p;i++){
        g[i
+p][i]=1;
        ID[i]
++;
    }
    
for (i=0;i<=n-q;i++){
        g[i][i
+q]=1;
        ID[i
+q]++;
    }

    i
=-1;
    
do{
        i
++; j=0;
        
while (j<=&& ID[j]!=0) j++;
        
if (j<=n){
            s[i]
=j; ID[j]=2147483647;
            a[j]
=i;
            
for (k=0;k<=n;k++)
                
if (g[j][k]==1) ID[k]--;
        }
    }
while(j<=&& i!=n);
    
if (i<n){
        printf(
"No\n");
        
return 0;
    }    
    
    
for(i=0;i<n;i++)
        printf(
"%d ",a[i]-a[i+1]);
    
return 0;
}

 

 

转载于:https://www.cnblogs.com/yanrui7098/archive/2009/11/22/1608267.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

寻找数列(构造+拓扑) 的相关文章

  • 全网最细,接口自动化测试-数据库操作与日志模块,一篇打通...

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • NEC红外协议编码,38K红外遥控编码,红外遥控发射接收电路选型设计

    NEC为红外遥控最常用的编码 红外载波频率为38KHz 其协议小巧简单 非常适合家电设备的控制 其他的还有 Phillips RCA 的RC 5和RC 6 但那只是IR协议的少数 本篇博文参照国外博客或论坛资料并汇总 原链接可能需要翻墙 N
  • 微信小程序与服务器对称加解密,细说CryptoJs使用(微信小程序加密解密)

    前言 CryptoJs是google推出的一款前段解密类库 功能强大 包含很多的前段解密算法 一 google下载地址 二次开发版本 google原版地址 二 常用方法Testing websockets var key BOTWAVEE
  • 开源地震处理软件Seismic Unix(SU)安装

    Seismic Unix SU 是著名的开源地震处理软件 安装包可从以下链接下载 cwp su all 44R18 tar 1 解压 首先在 home usrname 路径下建一个安装文件夹 usrname代表自己的用户名 自己命名 比如c
  • MySQL中 数据库 和 表 的基操

    一 数据库 的操作 1 显示 数据库 2 创建 数据库 3 使用 数据库 4 删除 数据库 二 表 的操作 1 查看表结构 2 创建 表 3 删除 表 4 查看数据库中的表 三 常用的数据类型 一 数据库 的操作 1 显示 数据库 show
  • html css js 完整案例,html+css+js实例

    实例简介 用html css js做的一个简单小网页 可以作为初学者的参考资料 实例截图 核心代码 travel travel css css images 0 PNG 100 jpg 101 jpg 102 jpg 103 jpg 104
  • java语言的运算符

    目录 小白的疑惑 大白话运算符概念 运算符概念 运算符分类 特别注意 代码定天下 二元运算符 关系运算符代码 逻辑运算符 位运算符 拓展运算符 三目运算符 小白的疑惑 很多没接触编程的小伙伴都会顿感疑惑 啥是运算符 大白话运算符概念 小学算
  • VSCode 下载缓慢或者下载失败解决方案

    最近发现在VSCode官网上下载vscode十分缓慢 甚至经常断网或者是直接导致下载失败 我们可以使用国内镜像 让下载飞起来 附图 从官网上下载网速极其缓慢 我们将链接复制下来 黑框 https az764295 vo msecnd net
  • 版本发布流程

    文章目录 一 版本发布流程 1 增加 变更功能流程 1 需求确认 2 产品开发 3 alpha测试 4 问题修复 5 beta测试 6 版本发布 2 问题修复流程 1 问题确认 2 问题修复 3 alpha测试 4 版本发布 二 CHANG
  • 每天一个---- 吉尔德定律和迈特卡尔定律

    吉尔德定律 即主干网带宽的增长速度至少是运算性能增长速度的三倍 因为运算性能增长速度主要是由摩尔定律决定的 所以根据每18个月运算性能提高一倍计算 主干网的网络带宽的增长速度大概是每6个月增长一倍 而主干网的网络带宽的不断增长意味着各种新的
  • centos安装nc

    yum install y nc
  • el-button按下后背景颜色不恢复

    绑定的点击事件 const One click using evt gt let target evt target if target nodeName SPAN target evt target parentNode target b
  • 什么是MES系统?本文解释得很清楚了

    MES 英文Manufacturing Execution System的缩写 即生产执行系统 是近几年发展起来的企业信息化系统 目前在发达国家已经普遍推广 MES软件是介于ERP 企业资源计划系统 和自控系统 DCS PLC等 之间的系统
  • Android APK反编译技巧全讲解

    导言 在我们安卓开发当中 我们不仅需要掌握基础的开发技能 也需要掌握软件的安全技能 这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件 同时也可以让自己的核心技术不会被别人所盗取 首先我们应当了解的是 对于反编译我们一共需要三个工
  • 《英雄联盟》丢失d3dcompiler_47.dll怎么办,推荐这个修复方案

    不知道大家有么有遇到过 在打开 英雄联盟 的时候 计算机提示丢失d3dcompiler 47 dll 无法继续执行此代码 d3dcompiler 47 dll是一个动态链接库文件 它是与Direct3D编译器相关的组件之一 像是photos
  • HTML <tt> 标签

    HTML5 中不支持
  • 也谈SDH、MSTP、OTN、PTN的区别和联系

    首先要说的是TDM的概念 TDM就是时分复用 就是将一个标准时长 1秒 分成若干段小的时间段 8000 每一个小时间段 1 8000 125us 传输一路信号 SDH系统的电路调度均以TDM为基础 所以看到很多人说SDH业务就是TDM业务
  • 求解全排列与幂集

    全排列 include
  • Hexo+GitHub搭建个人博客,实现云端编辑、一键发文

    操作环境 Windows10 Node Git ssh 前置准备
  • 最新八股文面试题

    Java面向对象有哪些特征 如何应用 面向对象编程是利用类和对象编程的一种思想 万物可归类 类是对于世界事物的高度抽象 不同的事物之间有不同的关系 一个类自身与外界的封装关系 一个父类和子类的继承关系 一个类和多个类的多态关系 万物皆对象

随机推荐

  • 探究Softmax的替代品:exp(x)的偶次泰勒展开式总是正的

    PaperWeekly 原创 作者 苏剑林 单位 追一科技 研究方向 NLP 神经网络 刚看到一个有意思的结论 对于任意实数 x 及偶数 n 总有
  • 通过PIL判断一张图片是不是灰度图

    灰度图有一个通道 可以理解为一个像素点用1个8bits数据表示 1个8bits表示范围是0 255 彩色图有三个通道 一个像素点用3个8bits数据表示 三个0 255的数字 def check gray image img path fr
  • B树的原理及代码实现、B+树和B*树介绍及应用

    目录 一 B树介绍 一 B树存在意义 二 B树的规则 二 B树实现原理及代码 一 实现原理 二 代码 三 B 树 一 概念 二 应用 MyISAM InnoDB 四 B 树 一 B树介绍 一 B树存在意义 B树主要用于磁盘文件的检索操作 众
  • 数字IC验证学习(一)

    一 数据类型 1 logic logic类型只能有一个驱动 使用wire和reg的地方均可使用logic 但如双向总线等有多个驱动的地方 则不可使用logic 2 二值逻辑 对于二值逻辑变量与DUT中的四值逻辑变量连接时 如果DUT中产生了
  • win10连接网络共享打印机出现没有当前打印机所需要的驱动

    这里的前提条件时你服务端的打印机已经设置共享 这里针对的是客户端连接已经共享的打印机 而且打印机版本比较老旧 无法正常连接 打开控制面板 选择 硬件和声音 选择 设备和打印机 选择 添加打印机 界面如图 选择 我所需要的打印机未列出 选择
  • chatgpt赋能python:Python错误自动重新执行

    Python错误自动重新执行 Python是一种强大的编程语言 它已经被广泛地应用于各个领域 在编写Python代码时 我们时常会遇到一些错误 有些错误是难以避免的 这篇文章将介绍如何让你的Python代码在遇到错误时自动重新执行 以确保程
  • Java高级编程【类与对象】

    Java语言的基本元素 类和对象 一 面向对象的思想概述 类 Class 和对象 Object 是面向对象的核心概念 类是对一类事物的描述 是抽象的 概念上的定义 对象是实际存在的该类事物的每个个体 因而也称为实例 instance 万事万
  • 吴恩达深度学习课程笔记(二):Logistic逻辑回归中损失函数(Loss Function)和成本函数(Cost Function)证明及推导

    偷个懒先上传图片吧 有需要再写文档吧 初衷只是给自己以后回顾 也希望能够帮助需要的人 吴恩达的深度学习课程看下来 目前给我的感受是大佬是真的关注我们这些底子差的人 已经讲到非常详细和细致了 连导数都讲解了还有函数的推到说明 建议像我一样学习
  • 数据结构——单链表-删除操作

    include
  • 建立客户端和服务端互连简单的聊天操作

    服务端 package JAVA API num18 socket import java io import java net ServerSocket import java net Socket import java util Ar
  • 如何提高网页的加载速度 ——DNS优化和代码优化

    1 DNS预读取 网站多个子域名 第三方CDN 百度谷歌统计 其他网站的图片等资源 DNS查找耗时 DNS预读取技术能够加快打开速度 方法是在head标签里面写上几个link标签 例如 对网站提前解析DNS 由于它是并行的 不会堵塞页面渲染
  • 数据分箱6——分箱结果进行WOE转化

    WOE的具体公式与含义请参考 特征筛选7 WOE Weight of Evidence IV值 Information Value 筛选特征 有监督筛选 WOE转化可以将分箱的阈值覆盖原有的值 一般来讲并不会改变预测精度 但是可以为可解释性
  • Softing的OPC UA C++ SDK全面升级:具有高功能性和易用性

    为支持反向连接 Reverse Connect 和访问全局发现服务器 Global Discovery Server GDS Softing的OPC UA C Software Development Kit SDK 已全面升级 OPC U
  • ARM Mali系列GPU驱动panfrost组成

    Alyssa Rosenzweig于2018年创立开源小组 通过对用户空间的3D驱动 kernel空间的ARM驱动进行逆向操作 重新构建panfrost驱动 在XDC2020会议上ARM宣布 开始接纳panfrost开源驱动并向其提供应有的
  • data-ajax=“false“

    1 概述 最近在做一个项目 由于涉及到跨平台性 所以采用了jquerymobile这个框架 在开发过程中 一开始为了图测试方便 采用了chrome浏览器来测试运行 现叙述如下问题 当在first html中 有个链接如 a href sec
  • Android TextView文字过长将后面View挤出屏幕解决方案

    前言 需求 横排两个 TextView 第一个 TextView 宽度自适应 第二个 TextView 宽度固定且跟随在 TextView 后面 第二个View可为任意View 宽度需已知 需要第一个View margin出相应宽度给第二个
  • 【写一个操作系统】3—汇编语言学习及Makefile入门

    目录 汇编代码 制作启动区程序 Makefile 今天的主要任务是通过对helloos nas核心代码汇的理解进行编语言的学习 还有就是Makefile的学习 汇编代码 主要是对上次的汇编文件helloos nas核心部分的学习 核心部分的
  • 服务器修改tomcat日志级别,远程 服务器tomcat日志监控

    远程 服务器tomcat日志监控 内容精选 换一换 MRS集群的日志保存路径为 var log Bigdata 日志分类见下表 MRS日志目录清单见下表 启用多实例功能后 如果系统管理员添加了多个HBase Hive和Spark服务的实例
  • PDManer数据库建模工具介绍

    pdmaner PDManer元数建模 是一款多操作系统开源免费的桌面版关系数据库模型建模工具 相对于PowerDesigner 他具备界面简洁美观 操作简单 上手容易等特点 支持Windows Mac Linux等操作系统 也能够支持国产
  • 寻找数列(构造+拓扑)

    寻找一个有n个整数的数列 满足下列条件 其中任意连续p个数之和是正数 其中任意连续q个数之和是负数 若无法找到 则输出 No 否则输出一个数值最小的数列 输入 n p q 输出 n个整数 样例 输入 5 4 3 输出 2 2 5 2 2 设