- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 ACM_34_韩信点兵
描述 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入3个非负整数a,b,c ,表示每种队形排尾的人数(a < 3,b < 5, c < 7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。输入 输入3个非负整数a,b,c ,表示每种队形排尾的人数(a < 3
2020-06-15 14:43:18
862
原创 Linux下如何查询CPU相关信息
#总核数 = 物理CPU个数 X 每颗物理CPU的核数 #总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数#查看物理CPU个数cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l#查看每个物理CPU中core的个数(即核数)cat /proc/cpuinfo | grep "cpu cores" |
2017-12-26 16:51:36
1529
原创 ACM_20
描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路)。输入 第一行输入一个整数M表示测试数据共有M(1<=M<=5)组 每组测试数据的第一行输入一个正整数N(1<=N<=100000)和一个正整数S(1<=S<=10000
2017-08-01 23:57:00
413
原创 ACM_41
描述 现在要写一个程序,实现给三个数排序的功能输入 输入三个正整数输出 给输入的三个正整数排序看过一个老哥的帖子,原贴:http://blog.youkuaiyun.com/gukesdo/article/details/7439059 如果两个数比较大小a和b; 最小值公式:(b^(a^b)&-(a < b)) 解释下: 1.如果a < b; 为真则为1,为假则为0,所
2017-07-24 10:11:33
331
原创 ACM_08
描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大); 1.按照编号从小到大排序 2.对于编号相等的长方形,按照长方形的长排序; 3.如果编号和长都相同,按照长方形的宽排序; 4.如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形;最后排好
2017-07-22 02:15:42
637
原创 ACM_07
描述 一个街区有很多住户,街区的街道只能为东西、南北两种方向。住户只可以沿着街道行走。各个街道之间的间隔相等。用(x,y)来表示住户坐在的街区。例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。现在要建一个邮局,使得各个住户到邮局的距离之和最少。求现在这个邮局应该建在那个地方使得所有住户距离之和最小;输入 第一行一个整数n<20,表示有n组测试数据,下面是n组数据;每组
2017-07-21 15:25:09
278
原创 ACM_06
描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0
2017-07-19 11:20:47
272
原创 ACM_05
描述 Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For example, the text string B is ‘10011101
2017-07-18 20:45:52
275
原创 ACM_04
题目如下: 描述: 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。输入: 第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。输出: 对于每组输入数据,输出一行,字符中间用一个空格分开。#include <stdio.h>int main(int argc, char** argv
2017-07-07 23:57:50
278
原创 ACM_02
题目如下: 描述: 现在,有一行括号序列,请你检查这行括号是否配对。 输入: 第一行输入一个数N(0< N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有”[“,”]”,”(“,”)”四种字符输出: 每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则
2017-07-07 21:18:30
377
原创 ACM_03复习高中知识
回顾一下高中的知识: 向量:指具有大小和方向的量,对应的是标量(指只有大小,没有方向的量) 长度为0的向量叫零向量,记作长度等于1单位的向量叫单位向量。 平行向量:方向相同或相反的非零向量。 规定:零向量与任意向量都是平行向量。 向量的加减法的平行四边形法则和三角形法则。 向量的乘法:数乘
2017-07-07 18:38:44
476
原创 virtual表
//在头文件中#ifndef __CBASE_H__#define __CBASE_H__#include using std::cout;using std::endl;class CBase{public: virtual void f1() { cout<<"你妈妈喊你回家吃饭...."<<endl; } virtual void f
2017-06-15 18:15:30
327
转载 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
最近在研究Python和Erlang。反复提到动态类型语言、动态语言、解释型语言这些概念。这些概念很生涩,在这里做一个总结。编译型语言和解释型语言 1、编译型语言需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。优点:编译器一
2017-06-12 15:35:57
306
原创 Linux内核学习-Linux系统的初始化(二)
1.了解计算机开机加电到系统启动的过程。为了向前兼容,使得旧代码可以运行在新的芯片中,现有的计算机一般都是由实模式开始。然后转成保护模式。稍微带点历史信息:Intel处理器生产的8086CPU, 总线16位。地址总线20位。可寻址1M。 当初Intel本意是设计16位的处理器,但是正常寻址空间才2的16次方 = 64KB。 为了更大的寻址空间。 需要对16位的总线进行映射。 为了支持16位
2017-06-01 17:34:01
387
转载 “What's wrong with Object-Oriented Programming and Functional Programming”
http://www.vaikan.com/whats-wrong-with-oop-and-fp/https://news.ycombinator.com/item?id=6716399对语言片面的理解乃至对世界的理解。我不理解为什么人们会对面向对象编程和函数式编程做无休无止的争论。就好象这类问题已经超越了人类智力极限,所以你可以几个世纪的这样讨论下去。经过这些年对编程语言的研究,我已经
2017-05-09 11:33:27
1291
原创 CentOS6.8下Nodejs安装co框架
准备搞一下nodejs的简单后台模块;所以想安装express+co+sequelize;我环境是CentOS6.8 内核为4.8.4;gcc=6.3.0;额...升级了GCC,为了编译V8;我一开始用的yum安装的;curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -yum -y in
2017-01-05 18:23:55
2203
原创 CentOS6.8升级gcc;编译node.js的V8
1.我系统是centOS 6.8. gcc的版本是4.4.7;因为需要编译node.js的C++扩展插件,所以安装了V8引擎,可是编译时报错。gcc不支持C++11.所以手动升级gcc一下;2.获取安装包:网址是:http://ftp.gnu.org/gnu/gcc/我发布博客的当前时间来说,最新的是6.3.0wget http://ftp.gnu.org/gnu/gcc/gc
2017-01-05 00:35:19
3709
转载 GDB跟踪调试
GDB 调试要进行调试程序首先要生成一个含有调试信息的执行程序命令如下:gcc(g++) -g -o 文件名 源文件.c(源文件.cpp)gcc(g++) -ggdb3 -o 文件名 源文件.c(源文件.cpp)此时便会生成一个含有调试信息的可执行文件,然后便可以用 gdb 去调试这个程序了,进入调试程序命令,但是如果用 gdb 去调试一个未包含调试信息的可执行文件则会发生
2016-12-15 18:05:27
897
原创 Linux内核学习—基础知识(一)
一.存储程序计算机工作原理:冯诺依曼体系结构:即存储程序计算机; 从物理结构上来描述: CPU中的IP寄存器,通过总线获取内存中CS(代码段)的一条指令来执行;IP自增1;取下一条指令;ABI:程序二进制接口;程序指令与CPU的接口;在X86,32位计算机上,EIP总是指向一条即将执行的指令;EIP可以自增1;该1不是指字节或者32个字节;是指一条指令;每条指令占的存储空间可能不同
2016-11-23 17:30:45
831
原创 Ubuntu16.04+U盘启动+120G固态+1T硬盘安装
这篇文章没什么特别技术性的东西,主要是记录下遇到的问题,给其自己和其他朋友做个备忘或者提示;有遇到其他问题的朋友,或者描述不清楚,不对的地方可以留言,一起讨论;1.制作U盘启动方法随意;我是用的UltralISO; 网上一堆;PowerISO也行;都一样,没什么需要特别注意的地方;2.我老电脑是联想的Y400; EFI引导的1T硬盘;我自己又给加了个三星M口120G
2016-11-17 12:50:19
4123
转载 AT&T与INTER汇编格式解析
一、AT&T 格式Linux 汇编语法格式在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加前缀。例如:AT&T 格式Intel 格式pushl %eaxpush eax在 AT&T 汇编格式中,用 '$' 前缀表示一个立即操作数;
2016-11-01 17:41:27
934
转载 Linux性能分析的前60秒
在 Netflix 我们有一个庞大的 EC2 Linux 集群,还有非常多的性能分析工具来监控和调查它的性能。其中包括用于云监控的Atlas,用于实例按需分析的 Vector。即使这些工具帮助我们解决了大多数问题,我们有时还是得登入 Linux 实例,运行一些标准的 Linux 性能工具来解决问题。这篇文章里,Netflix Performance Engineering 团队将使用居家常
2016-02-04 17:52:41
400
原创 软件逆向分析有感
1.PE(Portable Executable),Win32环境自身的执行文件格式体。它的一些特性来自于UNIX的COFF(Common Object File Format)文件格式。 任何Win32平台上的PE装载器都能识别和使用该格式的文件。2.RVA(Relative Virual Address)相对虚拟地址 装载程序需要把PE格式文件装载到一个虚拟地址空间中。
2015-11-02 16:15:15
3318
转载 Linux:扩大文件句柄
centos5.3 中 ulimit -n 为1024, 当Nginx连接数超过1024时,error.log中就出现以下错误:[alert] 12766#0: accept() failed (24: Too many open files)使用 ulimit -n 655350 可以把打开文件数设置足够大, 同时修改nginx.conf , 添加 worker_rlimit_n
2015-08-18 11:01:42
870
转载 boost::algorithm学习
#include using namespace std;using namespace boost; 一:大小写转换1 to_upper() 将字符串转为大写 Example: string str1(" hello world! "); to_upper(str1); // str1 == " HELLO WORLD! " 2 to_upper_copy(
2013-03-18 22:59:43
734
转载 Python文件操作
python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r“c:\python”)检验给出的路径是否是一
2012-12-26 21:57:11
508
转载 面向对象设计原则
一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。测试驱动的开发实践常常会在设计出现臭味之前就迫使我们分离职责。二、开闭原则(OCP)软件实体(类、模块、函数)应该是可扩展的,但是不可修改的。也就是说:对于扩展是开放的,对于更改是封闭的。怎样可能在不改动模块源代码的情况下去更改它的行为呢
2012-11-04 21:41:40
497
原创 Virtual表
//在头文件中#ifndef __CBASE_H__#define __CBASE_H__#include using std::cout;using std::endl;class CBase{public: virtual void f1() { cout<<"你妈妈喊你回家吃饭...."<<endl; } virtual void f
2012-03-09 18:21:12
516
转载 反汇编
00401028 push edi 00401027 push esi 00401026 push ebx 00401029 lea edi,[ebp-40h]
2011-11-16 17:03:15
800
转载 C++ - _T含义 C++语言中“_T”是什么意思
_T("Hello")是一个宏,他的作用是让你的程序支持Unicode编码,因为Windows使用两种字符集ASCII和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。如果你编译一
2011-10-30 17:13:02
2161
转载 C语言中的volatile
一个定义为volatile的变量是说这个变量可能会被意想不到的改变,这样,编译器就不会去假设这个变量的值了。精确的说,就是优化器在用到这个变量时,必须每次都小心的重新从地址中读取这个变量的值,而不是使用保存在寄存器里的备份。 下面是volatile变量的几个例子: 1).
2011-09-28 10:51:42
438
原创 面向对象的基本概念
叙述之前先来做道题:如何不用第三变量来交换两个数的值。通过异或,我们可以得出 a=a^b^b, 所以假设a,b两个变量, 那么 1 a=a^b, 2 b=a^b, 3 a=a^b。如果只能用与或非的话,我们已知a^b=(a+b)*(!a+!b)。面向对象和面向过程的区别:
2011-09-24 16:04:58
468
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人