上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页
摘要: 题意: 牧场主有一个三角形的牧场 他给牧场边缘拉上了电网.. 现在他想在牧场内放入很瘦很瘦的牛..(very very thin..) 问最多能放入多少头.. 求出三角形 (0, 0), (n, m), (p, 0) 内的整数点坐标思路: 有一个匹克定理:s = a+b/2-1 s表示多边形的面积 a 表示多边形内的点b表示边上的点 有两个方法求边上的点: ①. 底边就是p 两个斜边用 n/m = x/y --->(x, y)表示斜边上坐标 遍历x点..看y是否为整数 就可以算出边上的整数点的个数了 ②. 底边是p 斜边是gcd(n,m... 阅读全文
posted @ 2013-02-08 10:42 Griselda. 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出n个字母 问是否可以全部头尾相接,输出按字典序排列思路: 用套圈法求出欧拉回路 先把单词读入 排序保证最后结果是按字典序的 用并查集看是否连通 根据入度和出度看是否是欧拉路径,如果有必要也要找出起点 用套圈法求出欧拉路径 输出结果 Tips: ※不能用cin cout ※注意不能直接由 ansi == n 来判断是否有欧拉路径.. 而要由出度和入度的关系来判断.. 因为如果出现是出度-入度 = 1 且 入度-出度 = 1的时候要保证 出度-入度 = 1的点是起点~ 否则即使连通也不能证明存在欧拉路径.. ※用并查集检查是否连通... 阅读全文
posted @ 2013-02-01 13:16 Griselda. 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 前序:这题是2011年亚洲赛区的弱化版题目..原题(ZOJ 3544)是画三角形和圆形还有矩形题意:在一个屏幕上画q个带颜色的矩形问9种颜色各占了几个格子输入数据给出屏幕的长n(n <= 200) 宽m(m <= 50000) 和 q个矩形(q <= 50000)接下来q行给出每个矩形的起始位置和长、宽以及矩形的颜色最后输出9个颜色各占几个格子思路:先读入数据..然后从最后一个矩形开始处理..因为越后画的矩形肯定越靠前..即最后画的矩形肯定完全没有被覆盖..然后我们把最后一个矩形覆盖的地方标记出来..再处理倒数第2个矩形............................ 阅读全文
posted @ 2013-01-16 17:52 Griselda. 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题意:只有一组数据,数据量为20M根据单词出现顺序输出出现次数..思路:3种方法:① map ② BKDR求hash值<hash表的线性再散列方法或者是链表形式>map的方法因为数据量很大..容易超时Tips:※ BKDR求字符串hash值方法:View Code 1 unsigned int BKDRHash(char *str) 2 { 3 unsigned int seed = 131; // 31 131 1313 13131 131313 etc.. 4 unsigned int hash = 0; 5 6 while (*str) 7 { 8 ... 阅读全文
posted @ 2013-01-14 23:15 Griselda. 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 题意: 如果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. 阅读(449) 评论(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. 阅读(205) 评论(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. 阅读(188) 评论(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. 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个表达式..包含'+' '-' '*' '/' '.' 以及空格.. 求出表达式的值..思路: 栈的应用..Tips: ①. 指针引用那里..参数是字符串首地址不可以改变.. 而如果是指针..就可以改变..所以把字符串首地址作为参数传给change函数不可以..但是先传给函数calculate变成了指针再传给change就可以arr++了.. ②. 运算符优先级可以用一个二维数组来判断..Code:View Code 1 #include <stdio.h> 2 #include < 阅读全文
posted @ 2012-11-05 20:27 Griselda. 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一些集合和原来的集合进行多种运算,输出运算后的结果.. 输入: T a b 表示是原集合与该集合进行T操作~ 一开始集合为空.. 最后输出结果~如果是空集合就输出empty set思路: 这道题巧妙的地方是根据集合操作的特点把运算改成了成段的数据更新.. 线段树延迟标记延迟了更新的结果.. 根据集合操作的特点.. 可以看出: U:把区间[l,r]覆盖成1 I:把[-∞,l)(r,∞]覆盖成0 D:把区间[l,r]覆盖成0 C:把[-∞,l)(r,∞]覆盖成0 , 且[l,r]区间0/1互换 S:[l,r]区间0/1互换 其中如果... 阅读全文
posted @ 2012-10-28 20:46 Griselda. 阅读(197) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页