[优先队列][堆] Luogu P4505 组合子逻辑

题目描述

组合子逻辑是 Moses Schönfinkel 和 Haskell Curry 发明的一种符号系统,用于消除数理逻辑中对于变量的需要。本题考察一种与真实世界的组合子演算略有差别的组合子系统。

一个组合子项是下列形式之一:

PP

(E_1\;E_2)(E1E2)

其中 PP 表示一个基本函数,E_1E1以及E_2E2表示一个组合子项(可以相同)。不满足以上形式表达式均非组合子项。

我们将一个组合子项 EE 的参数个数 np(E)np(E)如下:

np(P)np(P) = 基本函数 PP 的参数个数;

np((E_1\;E_2)) = np(E_1) - 1np((E1E2))=np(E1)1。

本题中,我们用一个正整数同时表示一个基本函数,以及该基本函数的参数个数。

对于一个组合子项 EE,如果它和它包含的所有组合子项的参数个数 npnp 均为正整数,那么我们称这个 EE 为范式。

我们经常组合子项简化表示:如果一个组合子项EE含有连续子序列(… ((E_1\;E_2)\;E_3) …E_n)(((E1E2)E3)En) (其中 n ≥ 3n3),其中E_kEk表示组合子项(可以是简化表示的),那么将该部分替换为(E_1\;E_2\;E_3 … E_n)(E1E2E3En),其他部分不变,得到表达式 EE 的一个简化表示。一个组合子项可以被简化表示多次。

给定一个基本函数序列,问至少需要添加多少对括号,才能使得该表达式成为一个范式的简化表示(即满足范式的性质);如果无论如何怎样添加括号,均不能得到范式的简化表示,输出-11。

 

题解

  • 题面真的害死人
  • k 表示当前的最大值还能再包含多少位,当前的最大值不一定要包含当前位,只要求出正确结果即可

 

代码

 1 #include <queue> 
 2 #include <cstdio> 
 3 #include <cstring>
 4 #include <iostream>
 5 using namespace std;
 6 int T,n,a[2000010];
 7 priority_queue<int> Q;
 8 int main()
 9 {
10     for (scanf("%d",&T);T;T--)
11     {
12         scanf("%d",&n);
13         for (int i=1;i<=n;i++) scanf("%d",&a[i]);
14         if (n==1) { puts(a[1]?"0":"-1"); continue; }
15         int k=a[1]-1,ans=1; 
16         while (!Q.empty()) Q.pop();
17         for (int i=2;i<=n;i++)
18         {
19             if (k) k--;
20             else 
21             {
22                 if (Q.empty()||Q.top()<2) { ans=-1; break; }
23                 ans++,k=Q.top()-2,Q.pop();
24             }
25             Q.push(a[i]);
26         }
27         printf("%d\n",ans); 
28     }
29 }

 

转载于:https://www.cnblogs.com/Comfortable/p/11280301.html

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

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

相关文章

mybatis学习(24):分页2 多参数传递(使用注解)

分页排序 目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer id);Blog se…

Python -- 三元表达式(三目运算符)

一些语言&#xff08;如Java&#xff09;的三元表达式形如&#xff1a; [plain] view plaincopy 判定条件?为真时的结果:为假时的结果 Python的三元表达式有如下几种书写方法&#xff1a; [python] view plaincopy if __name__ __main__: a b True c …

网页广告代码

http://blog.tangcs.com/2009/03/03/web-page-ad-code/转载于:https://www.cnblogs.com/WarrenTang/archive/2009/03/03/1402521.html

Vista SP1、IIS7,安装ASP.Net 1.1、VS2003、NetAdvantage 2004vol、Sql Server2000全攻略

对于微软的软件&#xff0c;一向认为是&#xff1a;beta版惨不忍睹&#xff0c;rtm版马马虎虎&#xff0c;sp1版。所以&#xff0c;现在Vista SP1出来了&#xff0c;我也考虑更换操作系统了。经过一番google&#xff0c;唯一的问题应该就在于ASP.Net 1.1在Vista上的运行调试了&…

mybatis学习(25):分页3 多参数传递(使用map)

分页排序 目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBl…

2019CCPC湖南全国邀请赛-Chika and Friendly Pairs- 莫队+树状数组+离散化

题目链接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid6534 思路&#xff1a; 莫队算法&#xff0c;树状数组求和。每个数对应的离散化之后的值需要打表存下来。 Code&#xff1a; 1 #include<bits/stdc.h>2 using namespace std;3 const int N2700010;4 int…

用 GDI 操作 EMF 文件[6]: GetEnhMetaFileHeader - 获取 EMF 的头文件

//增强图元文件的头文件结构 TEnhMetaHeader: tagENHMETAHEADER packed recordiType: DWORD; {记录类型}nSize: DWORD; {结构大小}rclBounds: TRect; {外接矩形(单位是像素)}rclFrame: TRect; {图片矩形(单位是 0.1 毫米)}dSignature: DWORD; …

mybatis学习(26):插入功能(插入数据)

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

[Linux] linux下安装配置 zookeeper/redis/solr/tomcat/IK分词器 详细实例.

今天 不知自己装的centos 出现了什么问题, 一直卡在 启动界面, 找了半天没找见原因(最后时刻还是发现原因, 只因自己手欠一怒之下将centos删除了, 而且选择的是在本地磁盘也删除. ..让我哭一会..).. 于是便重新安装, 可是问题来了, 之前安装及配置好的zookeeper/redis/solr/tom…

Linux服务之nginx服务篇一(概念)

nginx官网&#xff1a;http://nginx.org/ 一、 nginx和apache的区别 Nginx&#xff1a; 1、轻量级&#xff0c;采用 C 进行编写&#xff0c;同样的 web 服务&#xff0c;会占用更少的内存及资源。 2、抗并发&#xff0c;nginx 以 epoll and kqueue 作为开发模型&#xff0c;处理…

基于Response的将数据导出到Excel

众所周知&#xff0c;Respone.Write()是输出Html流程序给用户的。考虑到一个标准的Web页面的是有多种呈现方式的&#xff0c; 例如:<meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> 这是以标准网页形式输出Html流 <meta htt…

mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

Linux下redis的安装及配置.

在上一篇[Linux] linux下安装配置 zookeeper/redis/solr/tomcat/IK分词器 详细实例. 我们已经将redis所需tar包拷贝到了linux下的root 根目录下, 接着我们只需要解压就可以了. 先将Redis的tar包拷贝到Linux下的根目录 然后解压到redis文件夹下:(先使用mkdir创建redis文件夹…

实战演习-用wse上传下载文件

jillzhang jillzhang126.com 这几天&#xff0c;光忙着写程序员职场了&#xff0c;对wse的翻译和学习没有太大的进展&#xff0c;这可不太好&#xff0c;毕竟咱还是靠技术混饭吃的&#xff0c;荒废了技术怎么行&#xff01;今天再上一盘有关wse的小菜&#xff0c;目的是想用ws…

mybatis学习(28):获取自增id方式二(在全局中配置setting选项)

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

推荐一篇讲解各种debug技术的文章,相当不错!

讲述debug的各种工具和技巧的文章&#xff0c;相当不错 &#xff01; http://blog.csdn.net/agan4014/archive/2008/03/20/2199790.aspx 转载于:https://www.cnblogs.com/Winston/archive/2008/06/12/1218427.html

Linux下安装和配置solr/tomcat/IK分词器 详细实例一.

在这里一下讲解着三个的安装和配置, 是因为solr需要使用tomcat和IK分词器, 这里会通过图文教程的形式来详解它们的安装和使用. 注: 本文属于原创文章, 如若转载,请注明出处, 谢谢. 关于设置IK分词器的文章 IK分词器: Linux下IK分词器的安装及配置 1, 解压tar文件 首先我们在根…

【小虫虫】邮购笔记本的注意事项

最近很多网友问我从我这里买本本&#xff0c;怎么邮购。要是运输中磕了坏了丢了怎么办、小虫虫现在说一下。 问&#xff1a;我不在笔记本面前&#xff0c;我怎么验机&#xff1f; 虫&#xff1a;所有发货的笔记本虫虫都会亲自验机&#xff0c;帮助大家检测硬盘&#xff0c;检测…

mybatis学习(29):适用于没有自增的数据库

目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; import java.util.Map;import org.apache.ibatis.annotations.Param;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlog(Integer…

Configuate Mac OSX $PATH

转载于:https://www.cnblogs.com/SunWentao/archive/2008/06/20/1226975.html