代码笔记
文章平均质量分 73
lupk
这个作者很懒,什么都没留下…
展开
-
radar
Radar 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the原创 2013-11-19 16:03:54 · 638 阅读 · 0 评论 -
独木舟上的旅行
独木舟上的旅行 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别。一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量。我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数。现在请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。根据给出的原创 2013-12-04 20:03:07 · 573 阅读 · 0 评论 -
幸运三角形
幸运三角形 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 话说有这么一个图形,只有两种符号组成(‘+’或者‘-’),图形的最上层有n个符号,往下个数依次减一,形成倒置的金字塔形状,除第一层外(第一层为所有可能情况),每层形状都由上层决定,相邻的符号相同,则下层的符号为‘+’,反之,为‘-’;如下图所示(n = 3 时的原创 2013-12-11 18:31:39 · 486 阅读 · 0 评论 -
阶乘因式分解
阶乘因式分解(二) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 给定两个数n,m,其中m是一个素数。 将n(0 注:^为求幂符号。 输入第一行是一个整数s(0 随后的s行, 每行有两个整数n,m。 输出输出m的个数 样例输入 3 100 5 16 2 1000000000原创 2013-12-11 20:25:41 · 468 阅读 · 0 评论 -
阶乘之和
阶乘之和 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No; 输入第一行有一个整数0 每组测试数据有一个正整数n输出如果符合条件,输出Yes,否则输出No;样例输入 2 9 10 样例输出 Y原创 2013-12-06 19:58:55 · 782 阅读 · 0 评论 -
最小步数nyoj--92
最少步数 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,1,0,1,0,0,1原创 2013-11-13 21:25:54 · 621 阅读 · 0 评论 -
Piggy-Bank
Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10474 Accepted Submission(s): 5274 Problem Description Before ACM can原创 2014-05-15 21:37:58 · 381 阅读 · 0 评论 -
Bone Collector
Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 26806 Accepted Submission(s): 10847 Problem Description Many year原创 2014-05-15 21:41:51 · 357 阅读 · 0 评论 -
完全背包 nyoj 311
完全背包 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。本题要求是背包恰好装满背包时,求出最大价值总和是多少。如果不能恰好装满背包,输出NO 输入原创 2014-05-18 16:32:52 · 360 阅读 · 0 评论 -
zipper
Zipper Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6290 Accepted Submission(s): 2253 Problem Description Given three strings原创 2014-05-18 12:08:51 · 447 阅读 · 0 评论 -
背包问题 nyoj106
背包问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。 输入第一行输入一个正整数n(1 随后有n测试数原创 2014-05-18 18:10:21 · 372 阅读 · 0 评论 -
又见01背包
又见01背包 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W 的物品,求所有挑选方案中物品价值总和的最大值。 1 1 1 1 输入多组测试数据。 每组测试数据第一行输入,n 和 W ,接下来有n行,每行输原创 2014-05-19 22:08:18 · 368 阅读 · 0 评论 -
最长公共子序列
最长公共子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合原创 2014-05-21 15:52:48 · 426 阅读 · 0 评论 -
leeetcode 400 Nth Digit
思路参考:https://discuss.leetcode.com/topic/59322/sharing-my-thinking-process 代码参考:https://discuss.leetcode.com/topic/59314/java-solution/14 Find the nth digit of the infinite integer sequence 1, 2,原创 2017-12-08 21:24:43 · 154 阅读 · 0 评论 -
Java 位操作
转自:http://www.jianshu.com/p/b677858bc085 // 1. 获得int型最大值 System.out.println((1 << 31) - 1);// 2147483647, 由于优先级关系,括号不可省略 System.out.println(~(1 << 31));// 2147483647 // 2. 获得int型最小值 System.out.pri转载 2017-12-11 22:10:54 · 151 阅读 · 0 评论 -
leetcode 231. Power of Two & 326. Power of Three & 342. Power of Four
转载自 http://blog.csdn.net/hackbuteer1/article/details/6681157 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转化为判断1后面是否跟了n个0就可以了。 如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1;因此将原来的数与去减转载 2017-12-07 18:56:26 · 156 阅读 · 0 评论 -
leetcode 204 Count Primes
本题使用传统方法,时间复杂度过高,会超时。从discuss学习了两种新的方法。第一种方法: Sieve of Eratosthenes youtube视频讲解 class Solution { public int countPrimes(int n) { //Java对布尔数组初始化为false boolean[] nf = new bo原创 2017-12-06 21:05:13 · 140 阅读 · 0 评论 -
小猴子下落
小猴子下落 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状态都会改变,当到达一个内结点时,如果开关原创 2013-11-22 15:09:30 · 465 阅读 · 0 评论 -
N皇后
对于N皇后问题, 用回溯的方法很容易理解, 但是在判重的时候容易超时,因此判重的的方法很重要,下面是我写的三段关于N皇后的代码,只有最后一段在QDUOJ上过了。 第一段:判重方法很蹩脚 #include #define M 10000000 int n = 0, num = 0, a[M], array[20][20], count; void find(int m); int原创 2013-11-06 20:31:46 · 574 阅读 · 0 评论 -
表达式求值(二)
表达式求值 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器吧。 比如输入:“1+2/4=”,程序就输出1.50(结果保留两位小数) 输入第一行输入一个整数n,共有n组测试数原创 2013-11-19 16:59:14 · 790 阅读 · 0 评论 -
三个水杯
三个水杯 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一个程序,使其输出使初始状态到达目标状态的最少次数。 输入第一行一个整数N(0 接下来每组测试数据有两行,第一行给出三原创 2013-11-19 15:32:29 · 730 阅读 · 0 评论 -
作业调度方案
我们现在要利用m台机器加工n个工件,每个工件都有m道工序,每道工序都在不同的指定的机器上完成。每个工件的每道工序都有指定的加工时间。 每个工件的每个工序称为一个操作,我们用记号j-k表示一个操作,其中j为1到n中的某个数字,为工件号;k为1到m中的某个数字,为工序号,例如2-4表示第2个工件第4道工序的这个操作。在本题中,我们还给定对于各操作的一个安排顺序。 例如,当n=3,m=2时,“1原创 2013-11-02 21:12:00 · 1531 阅读 · 0 评论 -
素数环
素数环 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环。 为了简便起见,我们规定每个素数环都从1开始。例如,下图就是6的一个素数环。 输入有多组测试数据,每组输入一个n(0 输出每组第一行输出对应的Case序号原创 2013-11-19 16:39:31 · 749 阅读 · 0 评论 -
zb的生日
zb的生日 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述今天是阴历七月初五,acm队员zb的生日。zb正在和C小加、never在武汉集训。他想给这两位兄弟买点什么庆祝生日,经过调查,zb发现C小加和never都很喜欢吃西瓜,而且一吃就是一堆的那种,zb立刻下定决心买了一堆西瓜。当他准备把西瓜送给C小加和never的时候,遇到了一个难题,ne原创 2013-11-19 15:41:57 · 634 阅读 · 0 评论 -
开灯问题
开灯问题 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k≤n≤1000 输入输入一组数据:原创 2013-11-19 15:48:02 · 590 阅读 · 0 评论 -
一种排序
一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大); 1.按照编号从小到大排序 2.对于编号相等的长方形,按照长方形的长排序; 3.如果编号和长都相同,按照长原创 2013-11-19 16:16:57 · 637 阅读 · 0 评论 -
前缀表达式
前缀式计算 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中缀式。 而把中缀式按运算顺序加上括号就是:(2+((3+4)*5)) 然后把运算符写到括号前面就是+(2 *( +(3 4) 5) ) 把括号去掉就是:+ 2 * + 3 4 5原创 2013-11-19 16:22:20 · 611 阅读 · 0 评论 -
水池数目
一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大); 1.按照编号从小到大排序 2.对于编号相等的长方形,按照长方形的长排序; 3.如果编号和长都相同,按照长原创 2013-11-19 16:31:12 · 587 阅读 · 0 评论 -
组合数
组合数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述找出从自然数1、2、... 、n(0<n<10)中任取r(0<r<=n)个数的所有组合。 输入输入n、r。 输出按特定顺序输出所有组合。 特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。 样例输入 5 3 样例输出 543 542 541 532原创 2013-11-19 16:43:05 · 674 阅读 · 0 评论 -
表达式求值(一)
表达式求值 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等。经过训练,Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式。 假设表达式可以简单定原创 2013-11-19 16:52:58 · 732 阅读 · 0 评论 -
图像有用区域
图像有用区域 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 “ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色。 图1原创 2013-11-20 21:39:17 · 612 阅读 · 0 评论 -
火车进栈
Description 有n列火车按1到n的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长, 只可惜是一个死胡同,而且站台只有一条轨道, 火车只能倒着从西方出去,而且每列火车必须进站,先进后出。 (某生:不就是个栈吗?每次可以让右侧头火车进栈,或者让栈顶火车出站? 占卜哥:闭嘴!) 就像这样: 出站 |车| |站| |__| 现在请你按《字典序》输出前20种可能的原创 2013-11-20 18:34:53 · 809 阅读 · 0 评论 -
素数距离问题
素数距离问题 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。 如果输入的整数本身就是素数,则输出该素数本身,距离输出0 输入第一行给出测试数据组数N(0 接下来的N行每行有一个整数M(0 输出原创 2013-11-21 11:05:38 · 576 阅读 · 0 评论 -
钱币兑换问题
Description 在一个国家仅有1分,2分,3分硬币,将钱N分兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。 Input 每行只有一个正整数N,N小于32768。(有多组测试数据,以EOF结束) Output 对应每个输入,输出兑换方法数。 Sample Input 20 2934 Sample Output原创 2013-11-21 18:29:47 · 831 阅读 · 0 评论 -
生理周期
Description 人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同一天。对于每个周期,我们会给出从当前年份的第一天开始,到出原创 2013-11-21 18:35:03 · 749 阅读 · 0 评论 -
Leetcode 255. Add Digits
最开始的思路: class Solution { public int addDigits(int num) { int tmp = num; while (tmp >= 10){ num = tmp; tmp = 0; while (num > 0){转载 2017-12-07 19:40:42 · 154 阅读 · 0 评论