括号

10 15

耗尽温柔 提交于 2019-12-01 15:22:41
考挂了 中午和某位强者去吃饭他说他状态不好 可能会挂 结果又是快Ak 了 然后我挂了 这就是 强者定律吧说着我要挂了 然后别人挂了... 今天得分 64 分T1 52 分 T3 12 分。丢人 and 很难受 也让我看清了生活的真相。世界上只有一种英雄主义就是 认清生活的真相之后依然还热爱生活。 有m个括号坏掉了 考虑组合 16分 爆搜 32 分dp 如何dp?这个dp 和普通的 括号匹配方案数即卡特兰数n^2递推不一样因为不需要记录还有多少个右括号已经用过了。 但是m个括号坏掉了 所以右括号也要记录个数 怎样能把整个括号序列都表达出来呢? 很有趣的问题 可以设 f[i][j][k] 表示已经形成了j个匹配 有效左括号为j 还剩下k个右括号的方案数。 //#include<bits/stdc++.h> #include<iostream> #include<queue> #include<iomanip> #include<cctype> #include<cstdio> #include<deque> #include<utility> #include<cmath> #include<ctime> #include<cstring> #include<string> #include<cstdlib> #include<vector> #include<algorithm>

结对编程作业(java)

岁酱吖の 提交于 2019-12-01 14:16:25
结对对象:许峰铭 一. Github 项目地址 :https://github.com/Leungdc/Leungdc/tree/master/%E5%9B%9B%E5%88%99%E8%BF%90%E7%AE%97/ASMDframe 二.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 560 1440 · Estimate · 估计这个任务需要多少时间 120 180 Development 开发 2000 2160 · Analysis · 需求分析 (包括学习新技术) 360 360 · Design Spec · 生成设计文档 120 180 · Design Review · 设计复审 (和同事审核设计文档) 60 120 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 60 90 · Design · 具体设计 150 300 · Coding · 具体编码 2000 2160 · Code Review · 代码复审 60 60 · Test · 测试(自我测试,修改代码,提交修改) 300 540 Reporting 报告 120 180 · Test Report · 测试报告 30 30 · Size Measurement

结对编程(java)

偶尔善良 提交于 2019-12-01 13:58:25
结对成员 3117004646 陈浩民      3117004676 叶剑庭 一、Github项目地址: https://github.com/silakami/Myapp.exe 二、PSP表格 Planning 计划 40 35 · Estimate · 估计这个任务需要多少时间 40 35 Development 开发 1480 1585 · Analysis · 需求分析 150 150 · Design Spec · 生成设计文档 80 65 · Design Review · 设计复审 60 70 · Coding Standard · 代码规范 30 30 · Design · 具体设计 90 90 · Coding · 具体编码 900 1000 · Code Review · 代码复审 80 90 · Test · 测试(自我测试,修改代码,提交修改) 90 90 Reporting 报告 150 150 · Test Report · 测试报告 70 70 · Size Measurement · 计算工作量 40 40 · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 40 40 合计 1670 1770 三、效能分析 在优化之前,生成10000条算式的时间: 优化之后

【数据结构】栈

删除回忆录丶 提交于 2019-12-01 13:24:48
关于栈,可以理解成一个操作受限的线性表,只允许在一端插入和删除数据。 事实上,从功能上来说,数组或者链表确实可以替代栈,但是从某种情况下,数组和链表暴露了更多的操作接口,使用时更容易出错。所以,当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出,先进后出的特性,就可以使用栈这种数据结构。 其中,用数组实现的栈叫做顺序栈,用链表实现的栈,叫做链式栈。不管是顺序栈和链式栈,入栈和出栈的空间复杂度均为o(1)。 栈在函数调用中的应用: 操作系统为每个线程分配了一块独立的内存空间,这块内存被组织成栈这种结构,用来存储函数调用的临时变量。每进入一个函数,就会将临时变量作为一个栈入帧,当被调用函数执行完成,返回以后,将这个函数对应的栈帧出栈。 栈在表达式求值中的应用: 如进行四则运算的时候,编译器时通过俩个栈来实现的。其中一个保持操作数的栈,另一个保存运算符的栈。我们从左向右遍历表达式,当遇上数字,我们就之家压入操作栈,如果遇上运算符,那就与运算符栈的栈顶元素进行比较。 如果比运算符栈顶的元素的优先级搞,就将当前运算符压入栈,如果低或者相同,从运算符栈中取栈顶运算符,从操作数栈的栈顶取2个操作数,然后进行计算,再把计算完的结果压入操作数栈,继续比较。 同理,如果出现了括号,那就再加一括号栈,当扫描到左括号时,将其压入栈中,当扫描到右括号时,从栈顶取出一个左括号,按 (),[],{}

python 编程的 Style Guide

跟風遠走 提交于 2019-12-01 10:12:06
Python 的作者既优雅又高冷又 鬼毛的 再 PEP8 里规定了 Python 程序编写规范。(风格和格式) 一、基本观念   1、可读性之上,代码被读的次数肯定比被写的次数多。因此作者十分重视代码的可读性,后文中的很多规定都是基于这个出发点考虑的。   2、一致性次之,如果所有的代码的 style 与本指南不符,有限考虑一致性,但是新编写的模块有限遵风格指南; 二、具体操作   1、布局和格式     + 缩进: 优先用四个空格而不是制表符(tab)     + 多行连读语句: 对齐。几个正面的例子: # 括号内开头对齐 foo = long_function_name(var_one, var_two, var_three, var_four) # Hanging indent: 括号第一行不填,第二行开始括号内的部分加倍缩进(多4个空格) def long_function_name( var_one, var_two, var_three, var_four): print(var_one)     + 多行构赋值: 后半括号要独立一行,且和前面的行对齐,两种方式均可: my_list = [ 1, 2, 3, 4, 5, 6, ] my_list = [ 1, 2, 3, 4, 5, 6, ]     + 行的长度少于 72 个字符:主要时为了便于分屏对比代码

bootpuss切不掉的「水题」

元气小坏坏 提交于 2019-12-01 07:46:57
UPD:2019-10-13 简单的序列 $Description$: 从前有个括号序列 $s$,满足 $|s| = m$。你需要统计括号序列对 $(p, q)$ 的数量。 其中 $(p, q)$ 满足 $|p| + |s| + |q| = n$,且$ p + s + q $是一个合法的括号序列。 $Solution$: 简单$dp$或卡特兰数。括号序列匹配把左右括号分别看作$+1$,$-1$就很方便了。 $dp[i][j]$定义为放了$i$个括号,前缀和为$j$的方案数,注意转移是把括号往后放,不然会算重。 $$dp[i][j]=dp[i-1][j-1]+dp[i-1][j+1]$$ 实际上这个$dp$数组可以有卡特兰数求解。 卡特兰原式子:$C_{n+m}^{m}-C_{n+m}^{m-1}$($n>m$) 在这里相当于$j+2*x=n+m$,得到$n=j+x,m=x$即可 来源: https://www.cnblogs.com/2018hzoicyf/p/11670164.html

分析一套源代码的代码规范和风格并讨论如何改进优化代码

て烟熏妆下的殇ゞ 提交于 2019-12-01 06:16:10
结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点;   我的工程实践是与仓库管理相关的。所以我就先在gitee上找了一个仓库管理系统的一套代码。该项目使用的框架如下: 核心框架:SpringBoot 2.0.0 持久层框架:Mybatis 1.3.2 、日志管理:Log4j 2.10.0、JS框架:Jquery 1.8.0、 UI框架: EasyUI 1.3.5、 模板框架: AdminLTE 2.4.0、 项目管理框架: Maven 3.2.3 目录结构如下: 对各个文件夹解释如下: (1) doc是存放一些文档的地方 (2) erp_web是放web前端显示的 (3) src是后台源码 (4)README.md是整个项目的解释 2、列举哪些做法符合代码规范和风格一般要求。 以下面代码为例,简单介绍下其符合代码规范和一般要求之处: 1、符合类的命名规范,即:类名必须遵循大写字母开头的驼峰式命名方式(UpperCamelCase)。 2、注释的缩进与其上下文保持一致,使用了/* ... */和//的风格。多行的注释中*也对齐了。 3、使用了注释,增强了代码的可读性。 4、花括号的使用遵循了 K&R 风格(Kernighan and Ritchie Style):

结对编程(JavaScript实现)

别等时光非礼了梦想. 提交于 2019-11-30 23:57:28
一、Github地址 : https://github.com/Gvonte/arithmetic 二、PSP表格: PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 30 · Estimate · 估计这个任务需要多少时间 30 30 Development 开发 810 830 · Analysis · 需求分析 (包括学习新技术) 100 100 · Design Spec · 生成设计文档 30 40 · Design Review · 设计复审 (和同事审核设计文档) 30 40 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 20 20 · Design · 具体设计 60 60 · Coding · 具体编码 500 500 · Code Review · 代码复审 30 30 · Test · 测试(自我测试,修改代码,提交修改) 40 40 Reporting 报告 100 90 · Test Report · 测试报告 50 40 · Size Measurement · 计算工作量 30 30 · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 20 20 合计 940

Java编程规范(命名规则)

蹲街弑〆低调 提交于 2019-11-30 23:24:21
1、目的 编程规范是对编程的一种约定,主要作用是增强代码的可读性和可维护性,便于代码重用。 2、命名规则 首先要求程序中的各个要素都遵守命名规则,然后在编码中严格按照编码格式编写代码。命名规则包括以下几点。 1)包的名称由一个小写字母序列组成。 2)类的名称由大写字母开头,其他字母都由小写的单词组成。 3)类的实例的名称由一个小写字母开头,后面的单词由大写字母开头。 4)常量的名称都大写,并且指出完整含义。 5)参数的名称无其他具体规定。 6)数组的命名使用“类型[] 数组名”的形式。 3、编码格式规定 1)程序最开始编写导入包和类语句,即 import 语句。import 语句可以有多行,编写完 import 语句后空一行。 2)定义 public 类,顶格书写。类的主体左括号“{”不换行书写,右括号“}”顶格书写。 3)定义 public 类中的变量,缩进书写。 4)定义方法用缩进书写,方法的左括号“{”不换行书写,右括号“}”和方法首行第一个字符对齐。方法体要再次缩进书写,最后一个变量定义和第一个方法定义之间、方法和方法之间最好空一行。 提示: 在单一的语句后有“;”,在一对括号“{}“之外无“;”。方法调用名和紧跟在其后的左括号“(”无空格,该左括号和其后的标识符之间无空格。多个参数之间的逗号和前一个参数紧靠,与后一个参数空一格。 来源: https://www

【每天一题】LeetCode 0020. 有效的括号

↘锁芯ラ 提交于 2019-11-30 22:47:48
开源地址: https://github.com/jiauzhang/algorithms 题目 /* * https://leetcode-cn.com/problems/valid-parentheses * 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 * 有效字符串需满足: * 左括号必须用相同类型的右括号闭合。 * 左括号必须以正确的顺序闭合。 * * 注意空字符串可被认为是有效字符串。 */ 示例 /* * 示例 1: * 输入: "()" * 输出: true * * 示例 2: * 输入: "()[]{}" * 输出: true * * 示例 3: * 输入: "(]" * 输出: false * * 示例 4: * 输入: "([)]" * 输出: false * * 示例 5: * 输入: "{[]}" * 输出: true */ 解题思路 /* * 1. 有效括号肯定都是成对出现的,如果一个字符串是有效的 * 那么最外侧的括号括起来的子字符串一定也是有效的 * 即原问题可分解为子问题 * 2. 如果反过来想,那么最内层的一定也是有效的,而且是紧挨着的 * 例如 {[()]}, 如果把这个字符串逐个压入栈中,那么我们先 * 接收到的是开括号,后接收到的是闭括号,这就是为什么程序中 * open_close