
九度Online Judge
文章平均质量分 67
堕落的蚂蚁
IT码农
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
题目1100:最短路径
题目源地址:http://ac.jobdu.com/problem.php?pid=1100C++代码:#include#define maxsize 110#define M 100000int T[maxsize];int E[maxsize][maxsize];int visited[maxsize];int findroot(int x){ int temp; if(原创 2013-08-12 15:06:41 · 1356 阅读 · 2 评论 -
题目1345:XXX定律之画X
C++代码:#include bool buf[7][729+10][729+10]={false};int off[5][2]={0,0,2,0,1,1,0,2,2,2};int main(){ int n; buf[0][0][0]=true; int len=1; int offx,offy; for(int i=1;i<7;i++) { for(int m=0;原创 2014-02-06 19:39:00 · 487 阅读 · 0 评论 -
题目1139:最大子矩阵
题目描述:已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。比如,如下4 * 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8这个子矩阵的大小是15。输入:输入是一个N * N的矩阵。输入的原创 2014-02-21 14:46:00 · 521 阅读 · 0 评论 -
题目1369:字符串的排列
题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入:每个测试案例包括1行。输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。输出:对应每组数据,按字典序输出所有排列。样例输入:abcBCA原创 2014-02-20 21:25:48 · 472 阅读 · 0 评论 -
题目1082:代理服务器
题目描述: 使用代理服务器能够在一定程度上隐藏客户端信息,从而保护用户在互联网上的隐私。我们知道n个代理服务器的IP地址,现在要用它们去访问m个服务器。这 m 个服务器的 IP 地址和访问顺序也已经给出。系统在同一时刻只能使用一个代理服务器,并要求不能用代理服务器去访问和它 IP地址相同的服务器(不然客户端信息很有可能就会被泄露)。在这样的条件下,找到一种使用代理服务器的方案,使得代原创 2014-02-21 10:05:00 · 476 阅读 · 0 评论 -
题目1130:日志排序
题目描述:有一个网络日志,记录了网络中计算任务的执行情况,每个计算任务对应一条如下形式的日志记录:“hs_10000_p”是计算任务的名称,“2007-01-17 19:22:53,315”是计算任务开始执行的时间“年-月-日 时:分:秒,毫秒”, “253.035(s)”是计算任务消耗的时间(以秒计)hs_10000_p 2007-01-17 19:22:53,315 2原创 2014-02-21 11:26:59 · 610 阅读 · 0 评论 -
题目1335:闯迷宫
题目描述:sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫。sun的室友在帮电脑节设计迷宫,所以室友就请sun帮忙计算下走出迷宫的最少步数。知道了最少步数就可以辅助控制比赛难度以及去掉一些没有路径到达终点的map。比赛规则是:从原点(0,0)开始走到终点(n-1,n-1),只能上下左右4个方向走,只能在给定的矩阵里走。输入:输入有原创 2014-02-18 12:14:19 · 761 阅读 · 0 评论 -
题目1479:移位和旋转
题目描述: 对于一副扑克牌,我们有多种不同的洗牌方式。一种方法是从中间某个位置分成两半,然后相交换,我们称之为移位(shift)。比如原来的次序是123456,从第4个位置交换,结果就是561234。这个方式其实就是数组的循环移位,为了多次进行这个操作,必须使用一种尽可能快的方法来编程实现。在本题目中,还引入另外一种洗牌方式,就是把前一半(如果总数是奇数,就是(n-1)/2)原创 2014-02-19 16:53:26 · 734 阅读 · 0 评论 -
题目1480:最大上升子序列和
题目描述:一个数的序列bi,当b1 你的任务,就是对于给定的序列,求出最大上升子序列和。注意,最长的上升子序列的和不一定是最大的,比如序列(100, 1, 2, 3)的最大上升子序列和为100,而最长上升子序列为(1, 2, 3)。输入:输入包含多组测试数据。每组测试数据由两行组成。第一行是序列的长度N (1 输出:对于每组测试数据,输出原创 2014-02-19 17:10:42 · 472 阅读 · 0 评论 -
题目1512:用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。输入:每个输入文件包含一个测试样例。对于每个测试样例,第一行输入一个n(1接下来的n行,每行输入一个队列操作:1. PUSH X 向队列中push一个整数x(x>=0)2. POP 从队列中pop一个数。输出:对应每个测试案原创 2014-02-20 10:13:54 · 343 阅读 · 0 评论 -
题目1533:最长上升子序列
题目描述:给定一个整型数组, 求这个数组的最长严格递增子序列的长度。 譬如序列1 2 2 4 3 的最长严格递增子序列为1,2,4或1,2,3.他们的长度为3。输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为一个整数n(1输入的第二行包括n个整数,代表这个数组中的数字。整数均在int范围内。输出:对于每个测试案原创 2014-02-20 15:00:28 · 483 阅读 · 0 评论 -
题目1491:求1和2的个数
题目描述:给定正整数N,函数F(N)表示小于等于N的自然数中1和2的个数之和,例如:1,2,3,4,5,6,7,8,9,10序列中1和2的个数之和为3,因此F(10)=3。输入N,求F(N)的值,1=输入:输入包含多组测试数据,每组仅输入一个整数N。输出:对于每组测试数据,输出小于等于N的自然数中1和2的个数之和,且对20123取模。样例原创 2014-02-20 15:44:48 · 2020 阅读 · 0 评论 -
九度OJ 1532:棋盘寻宝扩展
题目描述:现在有一个8*8的棋盘,上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于100),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角。从棋盘的左上角移动到右下角的时候的,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,但是拿到的所有的礼物的价值之和不大于一个限定值limit,请设计一个算原创 2014-04-29 20:48:28 · 534 阅读 · 0 评论 -
题目1370:数组中出校次数超过一半的数字
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。输入:每个测试案例包括2行:第一行输入一个整数n(1第二行输入n个整数,表示数组中的每个元素,这n个整数的范围是[1,1000000000]。输出:对应每个测试案例原创 2014-03-29 16:17:01 · 500 阅读 · 0 评论 -
九度OJ 1529:棋盘寻宝
题目描述:现在有一个8*8的棋盘,上面放着64个价值不等的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于1000),一个人的初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角,请设计一个算法使其能够获得最大价值的礼物。输入:输入包含多个测试用例,每个测试用例共有8行8列,第i行的第j列的数字代表了该处棋原创 2014-04-26 19:36:42 · 457 阅读 · 0 评论 -
九度OJ 1531:货币面值
题目描述:小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在游戏中购买各种装备来提升自己。有一天,他突然很想知道这些纸币的组合不能表示的最小面额是多少,请聪明的你来帮助小虎来解决这个财政问题吧。输入:输入包含多个测试用例,每组测试用例的第一行输入一个整数N(N输出:对于每组测试用例,输出一原创 2014-04-27 09:25:36 · 557 阅读 · 0 评论 -
九度OJ 题目1526:朋友圈(并查集)
题目描述:假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个朋友圈,4、5属于另一个原创 2014-04-26 19:10:01 · 792 阅读 · 0 评论 -
题目1262:Sequence Construction puzzles(I)_构造全递增序列
题目描述:给定一个整数序列,请问如何去掉最少的元素使得原序列变成一个全递增的序列。输入:输入的第一行包括一个整数N(1接下来的一行是N个满足题目描述条件的整数。输出:可能有多组测试数据,对于每组数据,输出去掉最少的元素后的全递增序列。样例输入:8186 186 150 200 160 130 197 220样例输原创 2014-02-03 22:52:45 · 514 阅读 · 0 评论 -
题目1255:骰子点数概率
题目描述:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。输入:输入包括一个整数N(1输出:可能有多组测试数据,对于每组数据,按照Sample Output的格式输出每一个可能出现的和S的概率。样例输入:12样例输出:1: 0.1672: 0.1673: 0.16原创 2014-02-03 20:10:55 · 600 阅读 · 0 评论 -
题目1351:数组中只出现一次的数字
题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。输入:每个测试案例包括两行:第一行包含一个整数n,表示数组大小。2第二行包含n个整数,表示数组元素,元素均为int。输出:对应每个测试案例,输出数组中只出现一次的两个数。输出的数字从小到大的顺序。样例输入:82 4 3 6 3 2 5 5样原创 2014-02-03 19:52:53 · 536 阅读 · 0 评论 -
题目1102:最小面积子矩阵
题目源地址:http://ac.jobdu.com/problem.php?pid=1102C++代码:#include #define MAXN 110#define INF 1000000000int mat[MAXN][MAXN];int n,m,k;int bc(int a,int b,int c){ int ret=0,i; for(i=a;i<=b;i++)原创 2013-08-12 15:12:02 · 962 阅读 · 1 评论 -
题目1117:整数奇偶排序
题目源地址:http://ac.jobdu.com/problem.php?pid=1117C++代码:#include#includeusing namespace std;bool cmp(int a,int b){ if(a%2==1&&b%2==1) { return a>=b; } else if(a%2==0&&b%2==0) return a<=b;原创 2013-08-12 16:17:48 · 538 阅读 · 0 评论 -
题目1090:路径打印
题目的源地址:http://ac.jobdu.com/problem.php?pid=1090C++代码:#include#include#include#includeusing namespace std;vector v;bool cmp(string a,string b){ int len=a.length()>b.length()?b.length():a.le原创 2013-08-12 15:04:28 · 828 阅读 · 0 评论 -
题目1116:加减乘除
题目源地址:http://ac.jobdu.com/problem.php?pid=1116C++代码:#include#includeint f(int n){ if(n==0||n==1) return 1; else return n*f(n-1);}int GetResult(int a,int b,char o,int &r){ if(o=='+') r原创 2013-08-12 16:01:31 · 521 阅读 · 0 评论 -
题目1037:Powerful Calculator
#include#include#define N 1000struct bigint{ int digit[N]; int size; int symbol; void Init() { for(int i=0;i<N;i++) digit[i]=0; size=0; } void Set(char ch[],int n) { Init(); if(原创 2013-08-12 14:50:04 · 370 阅读 · 0 评论 -
题目1114:神奇的口袋
题目源地址:http://ac.jobdu.com/problem.php?pid=1114C++代码:#includeint buf[21];int ans;bool mark[21];int n;void dfs(int i,int sum){ if(sum==0) { ans++; return ; } if(i>=n||sum>40) return;原创 2013-08-12 15:10:18 · 854 阅读 · 0 评论 -
题目1033:继续xxx定律
题目链接地址:http://ac.jobdu.com/problem.php?pid=1033题目的主要思路:先定义一个大小为1001的数组mark,然后将每一个输入数字所产生的覆盖数字(小于1001,大于1001的不需要标记)都标记为1,例如如果输入数字是3,则mark[5]=1,mark[8]=1,mark[4]=1,mark[2]=1,mark[1]=1。最后对于每一个输入的数字a[i]原创 2014-01-05 22:03:33 · 668 阅读 · 0 评论 -
题目1159:坠落的蚂蚁
题目链接地址:http://ac.jobdu.com/problem.php?pid=1159题目看起来很复杂而且要模拟的话也比较麻烦,但是如果仔细观察的话就会发现这样一个事实:两只非A(A蚂蚁是刚开始静止的那只蚂蚁)蚂蚁相碰的时候交换各自的速度其实相当于两只蚂蚁还是各走各的路,没有碰头,速度不变。然后假设蚂蚁A的位置是pos基于上面的结论那么在pos左边并且初速度向左-1的蚂蚁原创 2014-01-11 11:02:12 · 1870 阅读 · 0 评论 -
题目1162:I Wanna Go Home
这个题目的大致思想是:先按照阵营将图分为A,B两个子图,然后分别计算1到A途中各点的最短距离和2到B途中各点的最短距离,然后在A和B两个子图中分别取一个城市使得,1到2的距离最短。C++代码如下:#includeusing namespace std;const int MAX=1047483647;int m[610][610];int m1[610][610];int m原创 2014-01-12 19:54:35 · 879 阅读 · 0 评论 -
题目1178:复数集合
题目链接地址:http://ac.jobdu.com/problem.php?pid=1178#include#include#include#includeusing namespace std;struct complex{ int a; int b; int m;};vector V;complex Pop(){ complex tmp=V[0]; vector原创 2014-01-13 19:01:22 · 575 阅读 · 0 评论 -
题目1510:替换空格
比较无聊的一个题目,最后一个用例字符很多,需要开比较大的内存。C++代码:#include#include#includeusing namespace std;int main(){ char ch[1000000]; char res[4000000]; memset(res,0,sizeof(res)); cin.getline(ch,1000000); int l原创 2014-01-15 16:29:17 · 408 阅读 · 0 评论 -
题目1466:排列与二进制
解题思想:分别计算n和(n-m)的因子中2的个数s1,s2,然后用s1减去s2就可以了。判断一个数的二进制后面都多少个0其实就是判断该数分解质因数中2的个数。C++代码:#includeusing namespace std;int getZeros(int n){ int base=2,sum=0; while(n){ sum+=n/base; n=n/base; }原创 2014-01-15 17:16:07 · 424 阅读 · 0 评论 -
题目1513:二进制中1的个数
题目要求任何一个整数的二进制表示中1的个数,大致思想就是每次判断最高位是否是1,因为是int型,所以(n&0x80000000)不为0则表示最高位为1,为0则表示最高位为0,如果为1则计数加1,每次判断之后将n向右移动一位,直至n为0。之所以选择向右移位是因为负数向左移位的话系统会在最高位上补1,不利于统计1的个数。如果要统计0的个数则应该向左移位。C++代码如下:#include#in原创 2014-01-15 16:02:58 · 591 阅读 · 0 评论 -
题目1250:矩阵变换
题目描述:对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一,现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。输入:输出:如果可以变换得到输出"Yes",否则"No"。存在多组数据,每组数据第一行一个正整数n(n样例输入:31 10 91 1 21 0 1原创 2014-01-23 20:29:19 · 614 阅读 · 0 评论 -
题目1209:最小邮票数
动态规划问题,递推公式dp[i][j]=min(dp[i-1][j],dp[i-1][j-s[i]]+1)。需要注意的是数组从大到小排序,然后要注意dp[i][s[i]]=1 。C++代码:#include#include#include#includeusing namespace std;int dp[21][101];bool cmp(int a,int b){ ret原创 2014-01-16 10:07:11 · 637 阅读 · 0 评论 -
题目1214:丑数
这个算法是从别人那里学到的,链接地址:http://blog.163.com/xie_wenbin613/blog/static/17548909520124280049635/题目:把只包含质因子2、3和5的数称作丑数(Ugly Number),例如:2,3,4,5,6,8,9,10,12,15,等,习惯上我们把1当做是第一个丑数。 写一个高效算法,返回第n个丑数。 最普通(也最耗原创 2014-01-16 11:00:05 · 369 阅读 · 0 评论