NOJ
szjezoimzy
这个作者很懒,什么都没留下…
展开
-
NOJ 1561 算24
2016.10.13【题目描述】 1561.算24(中间结果出现分数)时限:1000ms 内存限制:10000K 总时限:3000ms描述 算24的一个经典例子是5 5 5 1,在中间结果可以出现分数的情况下是有解的。(5-1/5)*5 在允许中间结果是分数的情况下,如何编写一个算24的程序。输入 4个1~13之间的整数。 输出 在允许中间结果是分数的情况下,能得到24输出“Yes”,原创 2016-10-21 22:46:20 · 405 阅读 · 0 评论 -
NOJ 1330/1331 不重复的数
2016.10.19【题目描述】 描述: 有N个整数(N = 2n+1),n小于等于10000, 其中n个数出现并且仅出现了两次,而只有一个数字只出现了一次。找出这个数。输入: 整数N N个整数 用空格隔开 输出: 一个整数输入样例: 7 1 1 2 2 3 3 4 输出样例: 4【解题思路】 开始想用数组模拟,每当读入数据的时候就在数组中加1,后来发现有两个问题,一个是负数的原创 2016-10-20 13:02:31 · 216 阅读 · 0 评论 -
NOJ 1324 穷举所有排列
2016.10.19【题目描述】 穷举所有排列时限:100ms 内存限制:10000K 总时限:300ms描述: 输入一个小于10的正整数n,按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。输入: 输入一个小于10的正整数n。 输出: 按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。输入样例: 3 输出样例: abcacbbacbcacbaca原创 2016-10-20 00:00:06 · 2226 阅读 · 0 评论 -
二分插入排序
2016.10.30【算法思想】 核心是插入排序,找合适的位置的时候使用了二分算法【代码实现】# include <stdio.h>int n = 5;int a[10005];void binary_insertion_sort(void);int binary_search(int , int );int main(void){ int i; scanf("%d", &n)原创 2016-10-30 22:15:04 · 289 阅读 · 0 评论 -
NOJ 1133 百钱百鸡问题
2016.10.10【题目描述】 1133.百钱百鸡问题时限:1000ms 内存限制:10000K 总时限:4000ms描述 经典问题的描述如下:在市场上,鸡的售价分别是:公鸡3文钱1只,母鸡2文1只,小鸡1文3只。问拿100文钱想买100只鸡,则公鸡、母鸡和小鸡应各买多少只?输入 本题无输入。 输出 输出所有解,每个解占一行,包含三个整数分别表示要买的公鸡、母鸡和小鸡的数量,用空格分隔原创 2016-10-20 22:17:54 · 656 阅读 · 0 评论 -
NOJ 1043 跳马
2016.11.11【题目描述】 1043.跳马时限:1000ms 内存限制:10000K 总时限:3000ms描述 现有一200*200大小的国际象棋棋盘,棋盘中仅有一个马,给定马的当前位置(S)和目标位置(T),求出马最少需要多少跳才能从当前位置到达目标位置。输入 本题包含多个测例。输入数据的第一行有一个整数N(1<=N<=1000),表示测例的个数,接下来的每一行有四个以空格分隔的整数原创 2016-11-11 23:25:07 · 761 阅读 · 1 评论 -
NOJ 1033 约瑟夫问题
2016.12.27【问题描述】 描述 设有N名同学手拉手围成一圈,自1、2、3、……开始编号,现从1号开始连续数数,每数到M将此同学从圈中拉走, 求最后被拉走的同学的编号输入 两个正整数,分别为N和M,0 < N <= 100, 0 < M < 65535 输出 一个正整数,为最后被拉走的同学的编号,最后输出回车输入样例 5 3 输出样例 4【解题思路】 链表实现【代码实现】#原创 2016-12-27 09:48:24 · 357 阅读 · 0 评论 -
NOJ 1018 选太子
2016.12.27【问题描述】 描述 某皇帝有2m个儿子,现在要从中选出一个做太子,皇帝不知道该把那一个皇子立为太子,于是决定用下面的方法来选出太子,设每个太子的编号分别1、2、3、…、2m,按顺时针方向站成一个圆圈,现在从1号太子开始按顺时针方向数,数到第n个人,把他淘汰出局,然后从他的下一个人开始上述过程,当第m个人被淘汰时,转变方向继续从1开始数,重复上述过程,最后剩下的皇子将被立为太子原创 2016-12-27 09:50:14 · 487 阅读 · 0 评论 -
NOJ 1004 0-1背包问题
2016.10.19【题目描述】 穷举所有排列时限:100ms 内存限制:10000K 总时限:300ms描述: 输入一个小于10的正整数n,按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。输入: 输入一个小于10的正整数n。 输出: 按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。输入样例: 3 输出样例: abcacbbacbcacbaca原创 2016-10-20 12:54:02 · 688 阅读 · 0 评论 -
选择排序
2016.10.29【算法思想】 选择排序算法很简单,每次找到当前无序序列中最大的一项,安排到有序序列的最后。【算法分析】 时间复杂度O(n2),是不稳定排序【代码实现】# include <stdio.h>int n;int a[10005];void selection_sort(void);void swap(int ,int );int main(void){ int i;原创 2016-10-29 18:10:06 · 217 阅读 · 0 评论 -
NOJ 1543 冒泡排序
2016.10.10【题目描述】 冒泡排序时限:1000ms 内存限制:10000K 总时限:3000ms描述 写一个冒泡排序的程序。输入 先输入一个小于等于10000的正整数n,再输入n个整数, 输出 把输入数据按从小到大的顺序排序后输出,每个数字占一行。输入样例 5 2 6 9 4 123 输出样例 2 4 6 9 123【解题思路】 假设有n个元素,冒泡排原创 2016-10-21 22:28:07 · 619 阅读 · 0 评论 -
NOJ 1323 穷举n位二进制数
2016.10.14【题目描述】 穷举n位二进制数时限:100ms 内存限制:10000K 总时限:300ms描述: 输入一个小于20的正整数n,要求按从小到大的顺序输出所有的n位二进制数,每个数占一行。输入: 输入一个小于20的正整数n。 输出: 按从小到大的顺序输出所有的n位二进制数,每个数占一行。输入样例: 3 输出样例: 000 001 010 011 100 10原创 2016-10-21 22:51:12 · 457 阅读 · 0 评论 -
NOJ 1030 求最大公约数
2016.10.14【题目描述】 1030.求最大公约数时限:1000ms 内存限制:10000K 总时限:3000ms描述 给你两个正整数a、b,请你编写程序求出它们最大公约数,并输出这个数 输入 两个正整数a、b输出 输出最大公约数(以回车结束)输入样例 24 36 输出样例 12【解题思路】 欧几里得算法求gcd(greatest common divisor)基于这个定理:原创 2016-10-21 23:52:00 · 283 阅读 · 0 评论 -
NOJ 1214 Catalan数
2016.10.14【题目描述】 1214.Catalan数时限:100ms 内存限制:10000K 总时限:1000ms描述 令h(0)=1,h(1)=1,Catalan数满足递归式:h(n)= h(0)*h(n-1) + h(1)*h(n-2) + … + h(n-1)h(0) (其中n≥2),这是n阶递推关系。 输入 一个整数N,0≤N<20 输出 给出Catalan数列中第N个数原创 2016-10-23 19:06:14 · 291 阅读 · 0 评论 -
NOJ 1033 约瑟夫问题
2016.10.14【题目描述】 1033.约瑟夫问题(Joseph)时限:100ms 内存限制:10000K 总时限:1000ms描述 设有N名同学手拉手围成一圈,自1、2、3、……开始编号,现从1号开始连续数数,每数到M将此同学从圈中拉走, 求最后被拉走的同学的编号输入 两个正整数M和N 输出 一个正整数,为最后被拉走的同学的编号,最后输出回车输入样例 5 3 输出样例 4【解原创 2016-10-23 20:31:12 · 344 阅读 · 0 评论 -
NOJ 1453 筛法
2016.10.10【题目描述】 1453.筛法(Sieve Method)时限:1000ms 内存限制:10000K 总时限:3000ms描述 用筛法求[a,b]中的素数。输入 2个正整数:a b。 a、b均在1000以内,且a小于等于b。 输出 [a b]区间内的所有素数,每个单独一行。输入样例 2 5输出样例 2 3 5【解题思路】 判素数,常规题。 最普通的做法就是原创 2016-10-23 21:19:33 · 302 阅读 · 0 评论 -
NOJ 1007 8皇后问题
2016.10.19【题目描述】 8皇后问题时限:1000ms 内存限制:10000K 总时限:3000ms描述: 输出8皇后问题所有结果。输出: 每个结果第一行是No n:的形式,n表示输出的是第几个结果;下面8行,每行8个字符,‘A’表示皇后,‘.’表示空格。不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前的结果;依次类推。【解题思路】 8皇后是原创 2016-10-23 21:33:55 · 1098 阅读 · 0 评论 -
NOJ 1042 电子老鼠闯迷宫
2016.11.3【题目描述】 1042.电子老鼠闯迷宫时限:1000ms 内存限制:10000K 总时限:3000ms描述 有一只电子老鼠被困在如下图所示的迷宫中。这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。现给定一个起点S和一个终点T,求出电子老鼠最少要几步从起点走到终点。输入 本题包含一个测例。在测例的原创 2016-11-05 12:58:35 · 996 阅读 · 0 评论 -
NOJ 1036 数字排序
2016.10.28【题目描述】 1036.数字排序时限:1000ms 内存限制:10000K 总时限:3000ms描述 给你N个数字,请用冒泡法对这N个数字进行降序排序,并输出结果输入 第一行为N,N<=20 ; 第二行为N个数字,这N个数字用一个空格隔开 所有数均可用int型表示 输出 把这些数字用降序输出,每行输出一个,最后输出一个回车输入样例 8 23 12 36 98原创 2016-10-28 20:46:58 · 665 阅读 · 0 评论 -
NOJ 1001 二分查找
2016.10.28【题目描述】 1001.二分查找时限:1000ms 内存限制:10000K 总时限:3000ms描述 给定一个单调递增的整数序列,问某个整数是否在序列中。输入 第一行为一个整数n,表示序列中整数的个数;第二行为n(n不超过10000)个整数;第三行为一个整数m(m不超过50000),表示查询的个数;接下来m行每行一个整数k。 输出 每个查询的输出占一行,如果k在序列中原创 2016-10-28 20:42:37 · 820 阅读 · 0 评论