11 2012 档案

摘要:题意: 如果a的真因子之和 = b的真因子之和,则称a和b为亲合数,现在要找出100000以内的亲合数.. 要求不出现重复的数对..思路: 如果暴力找出100000以内所有数 (a) 的真因子和 (b) 然后看看这个和的真因子和(b)是否也等于这个数(a)..的话太暴力了..会tle.. 所以可以利用 num = p0^a0*p1^a1*p2^a2...pn^an..即任何一个数都可以看作是素数 pi的n次幂 乘以一个数.. 所以pi的0次幂到n次幂*pj的0~n次幂*..都是num的真因子.. 所以就是for循环找出所有的数的倍数加入到sum里面..Tips: 这个真真吃了me... 阅读全文
posted @ 2012-11-14 08:58 Griselda. 阅读(452) 评论(0) 推荐(0) 编辑
摘要:题意: Description 给出一个数x,让你计算级数: 1 + x - x^2/2! + x^3/3! - x^4/4! +... (-1)^(n+1) * x^n/n! 其中a^b表示a的b次方。 Input: 有多组测试数据,对于每组测试,仅包含一个数x。x可能为小数。(-20<=x<=20) 输入到文件结束。 Output: 对于每组测试数据,输出一行,包含一个小数,精确到10-8。 simple input: 1 2 simple output: 1.6321205... 阅读全文
posted @ 2012-11-12 21:47 Griselda. 阅读(215) 评论(0) 推荐(0) 编辑
摘要:题意: 给出一棵树..求出一条路..使得别的点到这条路径的距离最长的最短..输入: n 表示树上有n个点.. u v w 表示u和v这两个相连的点的边权值为w思路: 3次广搜.. 第一次从任意一个点找最长的路径~这个路径的终点就是要求的路的终点.. 第二次从终点开始找最长的路径..这时候找到的路径就是最后的路了.. 然后从这个队列往外遍历相连的路.. 这时候找出来的最长的距离就是要求的答案.. Tips: 因为加边的时候是双向边.. 所以边的数组应该开两倍大.. pre 数组要注意~~~~Code:View Code 1 #include... 阅读全文
posted @ 2012-11-06 21:48 Griselda. 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题意: 给出一些表达式..求出表达式的和.. 然后判断这些表达式是否可以组成一串首尾相连的数字串.. P.S. 如果有多组答案则按字典序给出..思路: 栈的应用求出表达式.. 深搜求欧拉路径.. Tips: 如果有可行解则在深搜过程到尾的时候就输出~ 否则的话因为是栈的应用~可能返回的过程中会导致答案的更改..Code:View Code 1 #include <stdio.h> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm> 5 #include <cty 阅读全文
posted @ 2012-11-05 20:32 Griselda. 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题意: 给出一个表达式..包含'+' '-' '*' '/' '.' 以及空格.. 求出表达式的值..思路: 栈的应用..Tips: ①. 指针引用那里..参数是字符串首地址不可以改变.. 而如果是指针..就可以改变..所以把字符串首地址作为参数传给change函数不可以..但是先传给函数calculate变成了指针再传给change就可以arr++了.. ②. 运算符优先级可以用一个二维数组来判断..Code:View Code 1 #include <stdio.h> 2 #include < 阅读全文
posted @ 2012-11-05 20:27 Griselda. 阅读(212) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示