数学
文章平均质量分 74
LYoGa
这个作者很懒,什么都没留下…
展开
-
UVA10161Ant on a Chessboard
题意:找出所给数字的坐标 思路:对角线上的数符合a = n * (n - 1) + 1,然后从奇偶行的数与对角线上的数的大小关系,推出坐标原创 2013-07-21 09:46:48 · 573 阅读 · 0 评论 -
UVA11889 - Benefit
题目链接 题意:输入两个整数A和C,求最小的整数B使得lcm(A, B) = C,如果无解,输出“NO SULUTION”。 思路:lcm(A, B) * gcd(A, B) = A * B转化为C / A = B / gcd(A, B),所以可以枚举B的倍数。 代码: #include #include #include #include using n原创 2014-09-06 18:05:04 · 992 阅读 · 0 评论 -
UVA11044 - Searching for Nessy
题意:求所给的图表中,九宫格数量最少 盲写着。。就过了。。。 #include int main() { int cas; scanf("%d", &cas); while (cas--) { int n, m; scanf("%d %d", &n, &m); printf("%d\n", (n / 3) * (m / 3)); } return 0; }原创 2013-08-16 19:50:53 · 648 阅读 · 0 评论 -
UVA10790- How Many Points of Intersection?
推公式。。。a * (a - 1) * b * (b - 1) / 4; #include int main() { long long a, b, t = 0; while (scanf("%lld%lld", &a, &b) && a && b) { long long cnt = 0; cnt = a * (a - 1) * b * (b - 1) / 4; pr原创 2013-08-16 19:48:36 · 663 阅读 · 0 评论 -
UVA10387
思路:小球所走的长为a * m, 宽为b * n,所有所走的路程就可以根据勾股定理求s,之后取出v与 A #include #include #include using namespace std; const double pi = acos(-1.0); int main() { double a, b, s, m, n; double A, v; while (scanf("%原创 2013-08-16 20:23:37 · 647 阅读 · 0 评论 -
UVA10970
题意:有一个n * m 的巧克力,求最少刀数把其切成n * m份 思路:先处理n ,将其切成n行,然后再处理每行 #include int main(){ int n, m; while (scanf("%d %d", &n, &m) != EOF){ int cnt; cnt = (n - 1) + n * (m - 1); printf("%d\n", cnt);原创 2013-08-16 20:04:20 · 770 阅读 · 0 评论 -
UVA10719- Quotient Polynomial
思路:还是推公式,可以得到a[i + 1] -= b[i] * (-k); #include #include #include int main() { int k = 0, r; int a[10005], b[10005]; while (scanf("%d", &k) != EOF) { int cnt = 0; char ch; memset(a, 0, s原创 2013-08-16 19:53:09 · 738 阅读 · 0 评论 -
UVA10499- The Land of Justice
题意:一个球体,将其分为n等分,求分完之后比原先的表面积增加多少百分比 思路:球体表面及为4*pi*r*r,每多分一等分就多增加pi * r * r,所以最后的公式是25 * n; #include int main() { double n; while (scanf("%lf", &n) && (n > 0)) { if (n == 1) printf("0%\n");原创 2013-08-16 19:46:53 · 729 阅读 · 0 评论 -
UVA621 - Secret Research
水题。。。 #include #include int main(){ char s[1000]; int n; scanf("%d", &n); getchar(); while (n--){ gets(s); int len = strlen(s); if (len <= 2){ printf("+\n"); continue; } if原创 2013-08-16 19:15:38 · 721 阅读 · 0 评论 -
UVA10250-The Other Two Trees
题意:有两个树,求两棵树连线上是否存在垂线,求垂线两个端点的左边。 思路:其实题目的意思,就好比是四个点构成一个正方形,类似的,就是要求其他两个端点的坐标,我用的是向量旋转,求另外两点。 公式就是(xcost - ysint,xsint + ysint),这里正好t为直角,所以就是旋转之后的向量是(-y, x) #include int main(){ doubl原创 2013-08-16 20:18:52 · 629 阅读 · 0 评论 -
UVA10916- Factstone Benchmark
计算 n的最大值,2^n>n!,如果一直整数相乘的话,会越界,所以要取对数。 #include #include #include using namespace std; int main(){ int n, i; double m, sum; while (scanf("%d", &n) && n){ m = pow(2, (n - 1940) / 10) * log(2);原创 2013-08-16 19:59:04 · 639 阅读 · 0 评论 -
UVA846- Steps
题意:上n个台阶,每走一次,所走的台阶只能比少一次所走的多一个,或少一个,或者相等,而且,第一次和最后一次必须为1,求所走次数最少 思路:根据题目要求,每次所走的台阶数,一定要对称,我们可以假设有n阶台阶,那么我们从第一个和最后一个一直向中间靠拢,及第一次为n - 2 * 1,第二次为n - 2 * 2, 第i次为n - 2 * i,一直到n #include i原创 2013-08-16 19:37:52 · 701 阅读 · 0 评论 -
UVA591- Box of Bricks
题意:移动最少的砖,使所有堆的转数量相同 思路:其实不管怎么样肯定是要把高出平均值的砖堆拿出给低于平均值的转堆,所有只要记录要移动高出平均值的砖堆的砖头就可以了 #include int main(){ int n, sum, average, cnt, t = 0; int arr[55]; while (scanf("%d", &n) && n){ sum = 0; cnt原创 2013-08-16 19:30:42 · 652 阅读 · 0 评论 -
UVA10025
题意:1到n,前面填的符号为正号或负号,求当n最小时,等于K 思路:先将所有k当成是正数 从1+2+3.....+n = sum,当sum - k = 偶数时,n就为最小。因为当为偶数时,sum与k中对应的正数相互减去,而剩余的是k中负数的两倍,(sum中的数与k中的是相应的。) 例如题中的例子:- 1 + 2 + 3 + 4 + 5 +原创 2013-08-16 19:27:27 · 758 阅读 · 0 评论 -
HDU4510
水题。。。。 不过记得一圈是12小时,也就是大于12之后要mod掉12 #include int main(){ int n; scanf("%d", &n); while (n--){ int a, b, c, d, e, f; char ch1, ch2; scanf("%d%c%d%c%d %d%c%d%c%d", &a, &ch1, &b, &ch1, &c,原创 2013-08-14 21:32:41 · 610 阅读 · 0 评论 -
math.h中的函数
数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有: 1、 三角函数 double sin (double);正弦 double cos (double);余弦 double tan (double);正切 、反三角函数 double asin (double); 结果介于[-PI/2, PI/2] double acos (double); 结果介于[0转载 2013-08-12 14:47:06 · 933 阅读 · 0 评论 -
POJ1269- Intersecting Lines
题意:给出四个点,判断两条线段是否,相交(求交点),同一条直线,平行 思路:首先判断是否为同一条直线,利用三点共线,求p1 p2 p3 与p1 p2 p4是否同时共线 其次判断是否平行,利用(x1 - x2) * (y3 - y4) = (x3 - x4) * (y1 - y2) 最后判断就是求交点,假设相交的点p(x, y) 那个交点与另外两条线段的端点一定共线,所以可以得到两个方程:(原创 2013-08-22 21:37:35 · 712 阅读 · 0 评论 -
UVA579 ClockHands
思路:角度问题,时针和分针的角度,不能大于180度 #include #include int main(){ int h, m; char c; double n; while (scanf("%d%c%d", &h, &c, &m) != EOF){ n = 0; if (h == 0 && m == 0) break; n = fabs(原创 2013-07-21 09:50:47 · 549 阅读 · 0 评论 -
HDU4994-Revenge of Nim(博弈)
题目链接 题意:有n堆石子,每个堆有Ai个石头,求先手是否能取得最后一个石头。 思路:这题主要在于前置1的多少能改变谁能成为先手,当前置1为偶数时,先手还是原来的先手,当为奇数时,先手就变成后手,后手变成先手。记得考虑当所有石堆都只有一个石头的情况。 代码: #include #include #include #include using namespa原创 2014-09-12 21:29:55 · 980 阅读 · 0 评论