自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (16)
  • 收藏
  • 关注

原创 石子归并

N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。例如: 1 2 3 4,有不少合并方法1 2 3 4 => 3 3 4(3) => 6 4(9) => 10(19)1 2 3 4 => 1 5 4(5) => 1 9(14) => 10(24)1 2 3

2017-04-29 09:33:48 374

原创 最小正子段和

N个整数组成的序列a[1],a[2],a[3],…,a[n],从中选出一个子序列(a[i],a[i+1],…a[j]),使这个子序列的和>0,并且这个和是所有和>0的子序列中最小的。例如:4,-1,5,-2,-1,2,6,-2。-1,5,-2,-1,序列和为1,是最小的。Input第1行:整数序列的长度N(2 <= N <= 50000)第2 - N+1行:N个整数Outpu

2017-04-27 00:49:24 592

原创 换零钱

N元钱换为零钱,有多少不同的换法?币值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。例如:5分钱换为零钱,有以下4种换法:1、5个1分2、1个2分3个1分3、2个2分1个1分4、1个5分(由于结果可能会很大,输出Mod 10^9 + 7的结果)Input输入1个数N,N = 100表示1元钱。(1 Output输出Mod 10^9 

2017-04-25 02:44:54 606

原创 0和1相等串

给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等。Input一个字符串,只包含01,长度不超过1000000。Output一行一个整数,最长的0与1的个数相等的子串的长度。Input示例1011Output示例2#include #include #include using namespace std;struct Node{

2017-04-20 23:30:42 531

原创 最短的包含字符串

给出一个字符串,求该字符串的一个子串S,S包含A-Z中的全部字母,并且S是所有符合条件的子串中最短的,输出S的长度。如果给出的字符串中并不包括A-Z中的全部字母,则输出No Solution。Input第1行,1个字符串。字符串的长度 Output输出包含A-Z的最短子串长度。如果没有符合条件的子串,则输出No Solution。Input示例BVCABCDEFFGHIJK

2017-04-19 22:59:21 812

原创 51nod - 1402 最大值

一个N长的数组s[](注意这里的数组初始下标设为1,而不是0,即N个元素为s[1],s[2],...,s[N]),满足以下性质:1)每个元素都是非负的整数,且s[1]=0;2)任意两个相邻元素差值的绝对值不大于1,即| s[i]-s[i+1] |&lt;=1;3)对于部分特殊点xi,要求s[xi]&lt;=ti(这样的特殊点一共M个);问在以上约束下s[]中的最大值最大可能是多少?In...

2017-04-19 21:34:23 270

原创 活动安排问题

有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室? Input第一行一个正整数n (n <= 10000)代表活动的个数。第二行到第(n + 1)行包含n个开始时间和结束时间。开始时间严格小于结束时间,并且时间都是非负整数,小于1000000000Output一行包含一个整数表示最少教室的个数。

2017-04-17 01:56:27 425

原创 阶乘后面0的数量

n的阶乘后面有多少个0?6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。#include using namespace std;int main(){ int N; cin >> N; int result = 0; while (N) { result += N/5;

2017-04-15 22:09:45 1063

原创 两个数的平方和

给出一个整数N,将N表示为2个整数i j的平方和(i 例如:N = 130,130 = 3^2 + 11^2 = 7^2 + 9^2 (注:3 11同11 3算1种)#include #include using namespace std;int input[40000];int main(){ int N; cin >> N; i

2017-04-15 21:28:58 1225

原创 最小周长

一个矩形的面积为S,已知该矩形的边长都是整数,求所有满足条件的矩形中,周长的最小值。例如:S = 24,那么有{1 24} {2 12} {3 8} {4 6}这4种矩形,其中{4 6}的周长最小,为20。#include #include using namespace std;int main(){ long long int S; cin >> S; l

2017-04-15 19:52:10 982

原创 正整数分组

将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。#include #include #include using namespace std;int input[101];int fun(int N, int sum){ bool dp1[sum+1];

2017-04-15 13:41:42 618

原创 回文字符串

回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。每个字符串都可以通过向中间添加一些字符,使之变为回文字符串。例如:abbc 添加2个字符可以变为 acbbca,也可以添加3个变为 abbcbba。方案1只需要添加2个字符,是所有方案中添加字符数量最少的。#include using namespace std;int fun(string &input){

2017-04-13 08:19:52 553

原创 和为k的连续区间

一整数数列a1, a2, ... , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 #include #include #include using namespace std;struct Node{ long long int val; int index; Node(long long int v, int in) {

2017-04-12 20:03:21 560

原创 0和5

小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5。小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数。使得这个数尽可能大,而且可以被90整除。注意:1.这个数没有前导0,2.小K不需要使用所有的牌。思路:5的数量是9的倍数,则该数可被9整除。#include #include using namespace std;void fun(ve

2017-04-11 01:27:25 886

原创 还是01串

给定一个0-1串s,长度为n,下标从0开始,求一个位置k,满足0<=k<=n, 并且子串s[0..k - 1]中的0的个数与子串s[k..n - 1]中1的个数相等。 注意:(1) 如果k = 0, s[0..k - 1]视为空串(2) 如果k = n, s[k..n - 1]视为空串(3) 如果存在多个k值,输处任何一个都可以(4) 如果不存在这样的k值,请输出-1#in

2017-04-10 23:29:53 394

原创 数组的最大代价

数组A包含N个元素A1, A2......AN。数组B包含N个元素B1, B2......BN。并且数组A中的每一个元素Ai,都满足1   (公式表示所有两个相邻元素的差的绝对值之和)给出数组B,计算可能的最大代价S。#include #include #include using namespace std;int fun(vector

2017-04-08 11:57:41 315

原创 背包问题 V2

有N种物品,每种物品的数量为C1,C2......Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi为整数)。求背包能够容纳的最大价值。Input第1行,2个整数,N和W中间用空格隔开。N为物品的种类,W为背包的容量。(1<=N<=100,1<=W<=...

2017-04-07 00:54:42 303

原创 和为K的组合

给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"Yes",否则输出"No".Input第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1 <= K <= 10^9)第2 - N + 1行:每行1个数,对应数组的元素A[i] (1 Output如果可以,输出:"Yes",否则输出"No"。

2017-04-03 23:58:10 813

原创 不重叠的线段

X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。#include #include #include using namespace std;struct Node{ long long int sta

2017-04-02 23:37:29 666

原创 独木舟

n个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟?#include #include #include using namespace std;long long int fun(vector &input, int n, long long int m){

2017-04-02 00:16:31 936

原创 走格子

有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去。机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值。如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] 例如:n = 5。{1,-2,-1,3,4} 最少需要2个初始能量,才能从1号走到5号格子。途中的能量变化如下3 1 0 3 7。

2017-04-01 22:45:50 1035

原创 线段的重叠

X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。#include #include #include #include #include #include using name

2017-04-01 21:54:31 423

深度探索C++对象模型(清晰版)

向具备多年C++开发经验的行家推荐本书,如果你想深入理解C++底层机制。

2011-04-15

exceptional c++ style中文版 pdf 刘未鹏译

C++大师 Herb Scutter通过40个编程问题,使读者不仅知其然,更要知其所以然,帮助程序设计人员在软件中寻找恰到好处的折中。适合中高级C++程序员阅读。

2010-09-26

PHP技术内幕中文版 pdf--黑皮书系列

全面认识网站编程和PHP。编写WINDOWS和UNIX中可靠而高效的代码。

2010-09-20

设计模式中文版pdf

不错的设计模式教程。讲解清晰,而且很全面。

2010-09-20

数据结构C语言版pdf 清华严蔚敏著

数据结构 c语言版 清华大学 严蔚敏著 大部分高校采用的数据结构教材

2010-09-20

编译原理 陈火旺著

陈火旺主编 编译原理教材 高等学校电子信息类规划教材

2010-09-17

计算机程序的构造和解释原书第2版pdf

每一位严肃的计算机科学家都应该阅读这本书。适合所有希望深刻理解计算机科学的人们。

2010-08-26

C语言深度解剖 解开程序员面试笔试的秘密

一个资深软件工程师的作品,内容讲解较透彻,一定程度弥补了教材中未深入的内容。

2010-08-25

编程珠玑第二版pdf中文

近二十年来众多大师级程序员一致推崇的作品

2010-08-13

UML参考手册pdf中文版

UML参考手册,讲述UML基本概念,为UML的深入理解提供一个起点.

2010-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除