04day1

无穷的数列

找规律

【问题描述】

有一个无穷序列如下:

110100100010000100000…

请你找出这个无穷序列中指定位置上的数字。

【输入】

第一行一个正整数 N,表示询问次数;接下来的 N 行每行一个正整数 Ai,Ai 表示在序列中的位置。

【解题过程】

找规律就好了。对于一个给定的位置 P,可以发现如果 P 上的数字是 1,那么必然满足 P-1 = x*(x+1)/2,那么判断这个方程是否有整数解即可(开平方取整再乘)。

1 次 AC。

 

方程

动态规划

【问题描述】

【输入】

第一行是 n 和 c。

第二行是 n 个数,分别表示 a1, a2, ..., an。

【输出】

输出解的组数(结果对 999983 取模)。

【解题过程】

一开始真的没思路啊,刚好数学在上排列组合,有个神奇的「隔板法」,差点误入歧途。

然后想到了一个很奇葩的方法,用 f[i] 表示用这个式子组成 i 这个值有几组解,则

f[i] = sum{ f[i-a[j]], 1<=j<=n }

看上去有点道理,然后其实是错的。这种状态转移的方式无法判断重复的情况,比如 b1 取 1,b2 取 1 是可以由两种情况(1, 0 和 0, 1)推过来的,加的时候也就多加了。

然后居然想了将近一个小时才想到正解,我也是醉了。

用 f[i][j] 表示用 a1, a2, ..., ai 来组成 j 有多少组解,则

f[i][j] = f[i-1][j] + f[i-1][j-a[i]], 1<=j<=n

然后如果用上滚动数组的话,最后表现出来的代码与上面那种错误方法几乎完全一样,只是外循环和内循环调换了一下。

然后听到 lzw 大神说无限背包。然后就没有然后了。

1 次 AC。

 

交错匹配

动态规划

【问题描述】

有两排非负整数 A[1..N],B[1..M],如果 A[i]=B[j]=k,那么可以在 A[i]和 B[j]之间连一条线,称为一条 k 匹配,每个数至多连一条线。另外,每个 k 匹配都必须恰好跟一个 r 匹配相交,且 k≠r。现在要求一个最大的匹配数。

例如:以下两行数的最大匹配数为 8.一个数最多只能和一个数连线。

【输入】

输入文件第一行包含两个正整数 n 和 m。

第二行 n 个自然数,表示 a[i]。

第三行 m 个自然数,表示 b[i]。

【数据规模】

30%的数据满足 n,m≤30。

60%的数据满足 n,m≤200。

100%的数据满足 n,m≤1000,0<所有数≤32767。

【解题过程】

看到什么最大匹配的还以为是二分图,吓了一小跳。

然后从数据范围来看几乎可以肯定是 O(mn) 的动态规划。

借鉴 LCS 的状态表示,用 f(i, j) 表示 a1, ..., ai 与 b1, ..., bj 之间的最大匹配数,那么我们只要考虑 ai 与 bj 是否需要进行匹配。如果要进行匹配,那么只要在 bj 的左边找与 ai 匹配的数、在 ai 的左边找与 bj 匹配的数就能保证两个匹配相交。很明显,对于 ai 找 bj 左边距离 bj 最近的那个匹配才可能是最优解,对于 bj 也应该找 ai 左边最近的匹配。这个找匹配的过程我们可以事先进行预处理。用 p(i, j) 表示 ai 在 b1, b2, ..., bj 中离 bj 最近的那个匹配所在的位置,则可以进行递推:

若 ai=bj,则 p(i, j) = j

否则,p(i, j) = p(i, j-1)

然后可以用 q(j, i) 表示 bj 在 a1, a2, ..., ai 中离 ai 最近的那个匹配的位置,递推过程类似。

然后就可以写出状态转移方程了,

f(i, j) = max{ f(q(j, i-1)-1, p(i, j-1)-1), f(i-1, j), f(i, j-1), f(i-1, j-1) }

初始得分 90 分。原因是把递推的嵌套循环范围写错了(这样也能拿 90 分?)。

转载于:https://www.cnblogs.com/lsdsjy/p/3982489.html

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

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

相关文章

【转】Eclipse+CDT+Gcc编译选项控制

原文地址&#xff1a;http://www.oschina.net/question/4873_19441 如果我们的程序调用动态链接库&#xff0c;当在cdt中运行的时候&#xff0c;可以通过run-->enviroment-->添加LD_LIBRARY_PATH 环境变量来设置查找动态链接库文件的路径。但是在运行的时候&#xff0c;程…

apt ubuntu 指定ipv4_macOS 下使用 Docker 搭建 ubuntu 环境

学习网络开发过程中不想“污染”macOS&#xff0c;考虑到之后部署网络应用主要是与linux打交道&#xff0c;所以安装了 ubuntu 虚拟机以满足短期的知识学习需求。十里安装了 ubuntu 虚拟机&#xff0c;一般就是在 mac 中 ssh 连接 ubuntu 虚拟机在终端下进行操作学习&#xff0…

float去掉小数点之后_float类型的存储方式

在c语言中float函数是单精度的。它在内存中以二进制的形式存储。分为符号位&#xff0c;阶码与尾数三部分。 符号位最为简单&#xff0c;如果你存储的是正数那么符号数就是0。如果是负数&#xff0c;则为1。下面&#xff0c;我以13.625为例说明阶码与尾数的表示方法。首先&…

idea 2020.2 如何设置classpath_开发属于自己的第一款IDEA插件!

作者&#xff1a;木杉 http://imushan.com/写Java代码的时候&#xff0c;经常会涉及到重复性的操作&#xff0c;这个时候就会想要是有这样一个插件就好了&#xff0c;如果是大家都会遇到的场景&#xff0c;IDE或许已经提供了&#xff0c;再不然也有可能有人编写了相关的插件。要…

按15分钟取数据_Python爬取猫眼电影《飞驰人生》4万多条评论并对其进行数据分析...

前言文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者&#xff1a; Yura不说数据说 &#xff0c;PYuraLPS&#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://note.youdao.c…

c++获取当前时间戳_python开发:python时间模块的使用

前言&#xff1a;今天元宵节&#xff0c;祝福大家元宵节快乐。今天在元宵节给各位朋友分享一下python时间模块。我们在开发中经常会与时间打交道&#xff0c;如&#xff1a;获取事件戳&#xff0c;时间戳的格式化等&#xff0c;这里简要记录一下python操作时间的方法。ython中常…

python 获取向上两级路径_Python学习第171课--相对路径和绝对路径

【每天几分钟&#xff0c;从零入门python编程的世界&#xff01;】这节我们补充2个概念&#xff1a;相对路径和绝对路径。●绝对路径就像一棵大树一样&#xff0c;从它的根开始&#xff0c;往上会有大的枝干&#xff0c;在大的枝干上面又会有小一点的树枝&#xff0c;小树枝上面…

百度热力图颜色说明_大数据下的龙港、鳌江人口热力图

大数据下的龙港、鳌江人口热力图--趋势显示&#xff0c;人口逐步集中于区域中心地区与城市 2020-08-25 大数据(big data)&#xff0c;是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。大数据有五大特点&#xff0c;即大量(Volume)、高速(Velocity)…

python语言的单行注释以井号开头_【学习】Python语言入门

Python是一门具有强类型(即变量类型是强制要求的)、动态性、隐式类型(不需要做变量声明)、大小写敏感(var和VAR代表了不同的变量)以及面向对象(一切皆为对象)等特点的编程语言。 语法 Python中没有强制的语句终止字符&#xff0c;且代码块是通过缩进来指示的。缩进表示一个代码…

python 参数个数 同名函数_Python——函数的参数

函数的参数定义函数的时候&#xff0c;我们把参数的名字和位置确定下来&#xff0c;函数的接口定义就完成了。对于函数的调用者来说&#xff0c;只需要知道如何传递正确的参数&#xff0c;以及函数将返回什么样的值就够了&#xff0c;函数内部的复杂逻辑被封装起来&#xff0c;…

webview的

问题描述我给WEBVIEW加了等待的圆圈,怎么不起作用?布局文件:<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical"android:lay…

java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)

final关键字&#xff1a; final表示最终的不可变的&#xff0c;在java中可以用来修饰类或方法、局部变量、成员变量。 // 1.final关键字修饰类需要放在class关键字前面&#xff0c;表示不可变的类&#xff0c;需要注意&#xff0c;这里表示当前类不能有子类&#xff0c;但是有…

python安装后无法使用_Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)...

在终端通过pip装好包以后&#xff0c;在pycharm中导入包时&#xff0c;依然会报错。新手不知道具体原因是什么&#xff0c;我把我的解决过程发出来&#xff0c;主要原因就是pip把包安装到了“解释器1”&#xff0c;但我们项目使用的是“解释器2”。我们新手怕字多&#xff0c;所…

03-sizeof的用法

1、作用 sizeof运算符是C语言特有的运算符。 用来计算一个变量或者一个常量、一种数据类型在内存中所占的字节数。 2、基本形式 (1) sizeof (变量或常量) (2) sizeof 变量或常量 (3) sizeof(数据类型) (4) 不能是sizeof 数据类型, 即计算数据类型的字节数必须用小括号括起来 实…

【Python3】POP3协议收邮件

初学Python3&#xff0c;做一个email的例子&#xff0c;虽然知道做的很渣渣&#xff0c;还是分享一下吧POP3协议POP3全称Post Official Protocol3&#xff0c;即邮局协议的第三个版本&#xff0c;它规定了怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议&…

发红包案例(RedPacketFrame简介)

发红包案例&#xff1a; 案例目录结构如下&#xff08;red包为第三方包&#xff0c;需要的话可以到网上自行下载或私信我邮箱即可&#xff09;&#xff1a; // 1.这里将借用发红包的框架&#xff1a;RedPacketFrame&#xff08;图形界面化&#xff09;&#xff0c;OpenMode处…

easy connect 获取服务端配置信息失败_如何统计 Mysql 服务器状态信息?

最近在看《高性能的 Mysql》一书&#xff0c;下面是关于如何学习统计 Mysql 服务器状态的学习总结&#xff0c;主要是学习使用 SHOW STATUS&#xff0c;SHOW ENGINE INNODB STATUS&#xff0c;SHOW PROCESSLIST&#xff0c;SHOW PROFILE 四个命令。命令一&#xff1a;SHOW STAT…

实现线段切割法_切割晶圆及玻璃产品的现代技术与设备

作者&#xff1a;韩卓申科VS1,2&#xff0c;伊凡诺夫VI3&#xff0c;吕鸿图2,4&#xff0c;纳乌莫夫A S2,4&#xff0c;王薇媛4摘要&#xff1a;由于需以各种非金属半导体材料晶圆制造使用价值低之微电子产品&#xff0c;对其加工高精度及品质改善的要求更为严苛&#xff0c;因…

学python最重要的是_Python学习,要选哪个版本?

纵观各大编程语言在 2017 年的发展情况&#xff0c;我们会发现涌现出诸如 Go、Swift 这类后起之秀&#xff0c;而其中最为耀眼的当属 Python。之所以 Python 如此受捧&#xff0c;不仅仅是人工智能、数字科学领域的兴起&#xff0c;而且与其自身的特性必不可分&#xff0c;正应…