摘要: 解题报告:求两个点之间的最安全的路线的安全值是多少。就是一个最短路的题,要注意的是这题用弗洛伊德过不了,一定要用地杰斯特拉,但是我还有一个不懂的地方,为什么按照我的做法,如果不把每次走过的点标记掉的话,总会选到重复的点,而且如果只标记上一次走过的和起点不重复走的话,还是TLE,求大神。 1 #inc... 阅读全文
posted @ 2013-08-14 23:16 xiaxiaosheng 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 解题报告:给一个班的学生的分数排序,然后判断Jack在他们班级的排名是多少,并且有如下规定,若多个人的分数相同,则他们的排名也 是相同的。说白了就是问这个班上分数比Jack高的人数有多少个,如果有n个,则输出n+1。由于分数的范围只有0到100,我们可以定义一个数组Mark[105],然后Mark[i]存的是分数为i的人数,这样就可以了,输入结束之后,从100到0扫一遍,就是了。 1 #include 2 #include 3 int M[105]; 4 int main() { 5 int num1,num,mark,x; 6 while(scanf("%d",& 阅读全文
posted @ 2013-08-14 22:06 xiaxiaosheng 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 解题报告:输入一个n,后面紧跟着输入n个数,输入的这n个数中,除了有一个数的个数为奇数外,其它的数的个数都是偶数个,现在要你找出这个个数为奇数的这个数。看起来好像很简单的样子,不过,这题的重点不在这里,看下内存限制就知道了,只有1024KB,也就是1M,而n的范围是1000000,输入的数的范围更是在int以内,所以这题其实考的就是一个内存优化的问题。当然,这让我们很自然的联想到中数据结构-动态链表,要多少分配多少,这样就可以最大限度的减少不必要的内存消耗。很久没写动态链表了,竟然调试了很久。不过在discuss里面看到有位神牛的做法,顿时就感觉弱爆了,他的代码只有几行,原理就是利用C语言里面 阅读全文
posted @ 2013-08-14 21:32 xiaxiaosheng 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 解题报告:输入一个小于1的小数,让你把这个数转化成分数,但注意,输入的数据还有无限循环的小数,循环节用一对括号包含起来。之前还没有写过小数转分数的题,当然如果没有循环小数的话,应该比较简单,但是这题要求有循环小数。其实这里要用到一个很巧妙的方法,这里以0.4444444....这个无限循环小数来作为例子,0.444...*10 - 0.444.... = 4,又有左边的0.444...可以提出来,所以得到:0.444....(10-1) = 4;即0.444....*9 = 4,所以无限循环小数就可以表示为4/9,如果循环节前还有数字的话,只要把前面的那部分分离出来,分别转化,然后把两个分数加 阅读全文
posted @ 2013-08-14 17:47 xiaxiaosheng 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 解题报告:规定数字1和数字2是Friend number,然后规定,若a和b是Friend number,那么a*b+a+b也是Friend number,输入一个数,让你判断这个数是否是Friend number。Friend number = (2^x)*(3^y)-1;如果判断出某个数能满足这个关系,则这个数就是Friend number。 1 #include 2 const int MAX = 2 MAX || f)14 break;15 for(int j = 0;j= MAX || c1*c2 >= MAX)17 ... 阅读全文
posted @ 2013-08-14 16:25 xiaxiaosheng 阅读(213) 评论(0) 推荐(0) 编辑