nnn

洛谷P1012 拼数

怎甘沉沦 提交于 2021-02-13 02:12:10
题目描述 设有 nn n 个正整数 (n≤20)(n≤20) ( n ≤ 2 0 ) ,将它们联接成一排, 组成一个最大的多位整数。 例如: n=3 时, 3 个整数 13 , 312 , 343 联接成的最大整数为: 34331213 又如: n=4 时, 4 个整数 7 , 13 , 4 , 246 联接成的最大整数为: 7424613 输入输出格式 输入格式: 第一行,一个正整数 n 。 第二行, n 个正整数。 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: 复制 3 13 312 343 输出样例#1: 复制 34331213 快排或者冒泡 冒泡的原理是每次将一个无论和谁组合 都是将它放在后面最优的选出来,选n-1次最小的就可以了。 #include<iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n; string s[ 22 ]; bool cmp( string a, string b){ return a+b>b+ a; } int main(){ scanf( " %d " ,& n); for ( int i= 1 ;i<=n;i++)cin>> s[i]; sort(s + 1 ,s+n+ 1

C# 词法分析器(三)正则表达式

回眸只為那壹抹淺笑 提交于 2021-02-04 06:51:12
系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 正则表达式是一种描述词素的重要表示方法。虽然正则表达式并不能表达出所有可能的模式(例如“由等数量的 a 和 b 组成的字符串”),但是它可以非常高效的描述处理词法单元时要用到的模式类型。 一、正则表达式的定义 正则表达式可以由较小的正则表达式按照规则递归地构建。每个正则表达式 r r 表示一个语言 L ( r ) L(r),而语言可以认为是一个字符串的集合。正则表达式有以下两个基本要素: ϵ ϵ 是一个正则表达式, L ( ϵ ) = ϵ L(ϵ)=ϵ,即该语言只包含空串(长度为 0 的字符串)。 如果 a a 是一个字符,那么 a a 是一个正则表达式,并且 L ( a ) = { a } L(a)={a},即该语言只包含一个长度为 1 1 的字符串 a a。 由小的正则表达式构造较大的正则表达式的步骤有以下四个部分。假定 r r 和 s s 都是正则表达式,分别表示语言 L ( r ) L(r) 和 L ( s ) L(s),那么: ( r ) | ( s ) (r)|(s) 是一个正则表达式,表示语言 L ( r ) ∪ L ( s ) L(r)∪L(s),即属于 L ( r ) L(r) 的字符串和属于 L ( s ) L(s)

批量创建用户和删除用户

邮差的信 提交于 2021-01-19 07:24:50
批量创建10个系统账号(gota01-gota10),并设置密码(密码为随机数,要求是字符和数字的混合) ###不用for循环的实现思路可参见https://user.qzone.qq.com/49000448/blog/1422183723 #!/bin/ bash . /etc/init.d/ functions user = " gota " passfile = " /tmp/user.log " for num in ` seq - w 10 ` #从1至10 - w等位补全,宽度相等,不足的前面补0 do pass = " `echo " test$RANDOM " |md5sum|cut -c 3-11` " #RANDOM的随机数范围:0~32767 useradd $user$num &> /dev/ null && echo -e " $user${num}:$pass " >> $passfile if [ $? -eq 0 ]; then action " $user$num is ok " /bin/ true else action " $user$num is fail " /bin/ false fi done chpasswd < $passfile #给多个用户设置密码的命令 密码文件格式: 用户名1:口令1 cat $passfile 批量删除

Map映射模拟队列(南昌理工学院ACM集训队)

倖福魔咒の 提交于 2021-01-18 14:22:35
Map映射模拟队列(南昌理工学院ACM集训队) Map是由key到value组成的映射,每一个key对应一个唯一的value,因此在数据量非常大的时候能用Map映射快速检索到相应的元素。 ①Map包含在头文件 #include<map> 中 ②定义map<key,value>name; key为被映射的数据类型,value表示key映射到的数据类型,map的key和value可以是int、long long、struct 等等任意的数据类型,name为映射的名字 因为Map可以直接快速搜索到key对应的value,所以当数据非常大的时候我们可以用Map模拟队列用BFS的方式解决问题 例题 洛谷U129453 「EZEC-4.5」占座位 题目描述 图书馆内有 nnn 个座位围成一个圈,编号依次为 1∼n,若干人依次进入图书馆占座位。 但是他们不想与他人靠得太近,因此他们占座位有 3个原则: ①第一个人选择 1号座位。 ②设 d(x) 为 x 号座位与其旁边最近的人之间的空座位数(即不包括这两个座位)。 从第二个人开始,每个人都会坐在使 d(x) 最大的座位 x 上,若有多个座位满足条件,坐在编号最小的座位上。 ③若没有任何空座位 x 满足 d(x)≥k ,则无法再坐人。 例 若n = 7,k = 1 因为这是一个圆桌,每一个人去坐都会尽量使周围两边的空位最多

TCP三次握手与四次挥手

馋奶兔 提交于 2021-01-13 22:13:31
TCP是什么 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。 TCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急) TCP的三次握手 第一次握手:客户端向服务器发送请求报文,这时报文首部中的同部位SYN=1,并生成一个随机序列值seq=n。客户端进入syn-sent(同步已发送)状态,等待服务器确认 第二次握手:TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号ACK=n+1,同时自己也随机生成一个seq=m,此时服务器进入SYN-RCVD(同步收到)状态。 第三次握手:TCP客户端进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=m+1, TCP的三次握手抓包 使用nc -l localhost 8088 监听8088端口 客户端使用nc -v localhost 8088 连接8088端口 再开个终端使用 tcpdump -i lo -vv -nnn tcp port 8088 抓包8088 端口tcp连接 抓包数据 为什么需要三次握手 端口 client发送了一个请求连接的报文,但是网络不好,这个请求没有立即达到服务端

干货-ANR问题处理套路

冷暖自知 提交于 2021-01-09 11:03:53
anr问题的处理技巧 hi, 大家好,我是爱吃香蕉的猴子,今天记录一下ANR问题的处理套路吧,这也是自己分析ANR问题一般的思路; 根据测试的描述,区分是Monkey测试偶现的 ,还是可以手动复现,一般情况前者多一些,我也是根据前者写这个记录; 首先,要会区分ANR类型 ,是什么类型的ANR ?? 用户输入事件处理超时: KeyDispatchTimeout-主要类型按键或触摸事件,input事件在 5S 内没有处理完成发生ANR 关键字:Reason: Input dispatching timed out xxxx Broadcast超时: BroadcastReceiver onReceiver处理事务时前台广播在10S内,后台广播在60s内没有处理完成发生ANR 关键字:Timeout of broadcast XXX/Receiver during timeout:XXX/Broadcast of XXX Service超时:ServiceTimeout-bind,create,start,unbind等在主线程处理耗时,前台Service在20s内,后台Service在200s内没有处理完成发生ANR 关键字:Timeout executing service:/executing service XXX ContentProvider超时:

linux umask使用方法

孤街醉人 提交于 2021-01-06 15:50:02
  A 什么是umask?   当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。   你的系统管理员必须要为你设置一个合理的 umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用umask命 令来改变文件创建的缺省权限。相应的改变直到退出该shell或使用另外的umask命令之前一直有效。一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中。   B 如何计算umask值   umask 命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最 大值分别是6

Java 14 Hotspot 虚拟机垃圾回收调优指南!

人走茶凉 提交于 2021-01-05 00:24:33
作者:大鹏123 www.cnblogs.com/sxpujs/p/12638114.html 优化目标与策略(Ergonomics) 垃圾收集器、堆和运行时编译器默认选择 G1(Garbage First)收集器 GC线程的最大值受限于堆大小和可用的CPU资源 初始堆空间为物理内存的1/64 最大堆空间为物理内存的1/4 分层编译器,同时使用C1和C2 可以将 Java HotSpot VM 垃圾收集器配置为优先满足两个目标之一:最大暂停时间和应用吞吐量。如果首选目标得到满足,收集器将尝试最大化其他目标。 最大暂停时间目标(Maximum Pause-Time Goal) 暂停时间是垃圾收集器停止应用程序并恢复不再使用的空间的持续时间。最大暂停时间目标的意图是限制这些暂停的最长时间。 使用命令行选项 -XX:MaxGCPauseMillis=指定最大暂停时间目标。这被解释为向垃圾回收器提示,需要的暂停时间为 nnn 毫秒或更短。垃圾收集器调整 Java 堆大小和其他与垃圾收集相关的参数,以使垃圾收集暂停时间小于 nnn 毫秒。最大暂停时间目标的缺省值随收集器的不同而变化。这些调整可能会导致垃圾收集更频繁地发生,从而降低应用程序的总吞吐量。但是,在某些情况下,暂停时间的预期目标无法实现。 吞吐量目标(Throughput Goal) 吞吐量目标是根据收集垃圾所花费的时间来度量的

Java 14 Hotspot 虚拟机垃圾回收调优指南!

杀马特。学长 韩版系。学妹 提交于 2021-01-05 00:24:18
Java技术栈 www.javastack.cn 打开网站看更多优质文章 作者:大鹏123 出处:www.cnblogs.com/sxpujs/p/12638114.html 优化目标与策略(Ergonomics) 垃圾收集器、堆和运行时编译器默认选择 G1(Garbage First)收集器 GC线程的最大值受限于堆大小和可用的CPU资源 初始堆空间为物理内存的1/64 最大堆空间为物理内存的1/4 分层编译器,同时使用C1和C2 可以将 Java HotSpot VM 垃圾收集器配置为优先满足两个目标之一:最大暂停时间和应用吞吐量。如果首选目标得到满足,收集器将尝试最大化其他目标。 最大暂停时间目标(Maximum Pause-Time Goal) 暂停时间是垃圾收集器停止应用程序并恢复不再使用的空间的持续时间。最大暂停时间目标的意图是限制这些暂停的最长时间。 使用命令行选项 -XX:MaxGCPauseMillis=指定最大暂停时间目标。这被解释为向垃圾回收器提示,需要的暂停时间为 nnn 毫秒或更短。垃圾收集器调整 Java 堆大小和其他与垃圾收集相关的参数,以使垃圾收集暂停时间小于 nnn 毫秒。最大暂停时间目标的缺省值随收集器的不同而变化。这些调整可能会导致垃圾收集更频繁地发生,从而降低应用程序的总吞吐量。但是,在某些情况下,暂停时间的预期目标无法实现。 吞吐量目标

【译】Java 14 Hotspot 虚拟机垃圾回收调优指南

梦想与她 提交于 2021-01-04 22:14:50
本文主要包括以下内容: 优化目标与策略(Ergonomics) 垃圾收集器实现(Garbage Collector Implementation) 影响垃圾收集性能的因素 总堆(Total Heap) 年轻代 可用的收集器(Available Collectors) 串行收集器(Serial Collector) 并行收集器(Parallel Collector) G1收集器(Garbage-First Garbage Collector) Z收集器(The Z Garbage Collector) 选择收集器选择收集器 并行收集器 G1垃圾收集器 启用G1 基本概念 G1内部细节 G1 GC的默认选项 与其它收集器的比较 Z垃圾收集器 其它考虑因素 显式垃圾回收 类元数据(Class Metadata) 优化目标与策略(Ergonomics) 垃圾收集器、堆和运行时编译器默认选择 G1(Garbage First)收集器 GC线程的最大值受限于堆大小和可用的CPU资源 初始堆空间为物理内存的1/64 最大堆空间为物理内存的1/4 分层编译器,同时使用C1和C2 可以将 Java HotSpot VM 垃圾收集器配置为优先满足两个目标之一:最大暂停时间和应用吞吐量。 如果首选目标得到满足,收集器将尝试最大化其他目标。 最大暂停时间目标(Maximum Pause-Time Goal