数论、几何
Ziiyan
这个作者很懒,什么都没留下…
展开
-
UVA - 575 Skew Binary
题目大意:根据题目给出的特殊进制转化。解题思路:第 K 位上的数乘以(2 ^ k - 1),所有相加。#include<iostream> #include<cstdio>#include<string.h>#include<stdlib.h>#include<cmath>using namespace std;char str[100];int main() { while(原创 2016-07-10 22:37:37 · 166 阅读 · 0 评论 -
UVA - 10392 Factoring Large Numbers
题目大意:分解质因数,题目保证只有一个大于 1000000 的因子,即自身。解题思路:素数打表判断是因数则输出,未除尽就输出原数。#include<iostream> #include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>using namespace std;int prime[1000000];int is原创 2016-07-13 23:04:10 · 215 阅读 · 0 评论 -
UVA - 10112 Myacm Triangles
题目大意:给出一些点,求构成三角形面积最大且三角形内不含别的点的三个点。解题思路:比较面积后判断三角形内部是否有点,若内部有点则该点与三角形的三点中任意两点构成的三角形的面积相加正好等于这个三角形。#include<iostream> #include<cstdio>#include<string.h>#include<stdlib.h>#include<cmath>using names原创 2016-07-14 15:38:00 · 237 阅读 · 0 评论 -
UVA - 10387 Billiard
题目大意:球在桌中心与水平线成一个角度发射,最后返回出发点,给出时间、碰撞水平边和垂直边的次数,求发射角度和速度。解题思路:根据反射的对称性,水平方向总路程为 a*m,竖直方向 b*n,速度根据勾股定理求得总路程除以时间得到,弧度 atan(b*n/a*m) 再 * 180 / PI 化为角度。#include<iostream> #include<cstdio>#include<string.原创 2016-07-14 15:37:35 · 192 阅读 · 0 评论 -
UVA - 10061 How many zero's and how many digits ?
题目大意:给出一个十进制数 N 和一个进制 B,求 N! 在 B 进制下末尾有几个 0 和 N! 的位数。解题思路:根据十进制求尾随零的办法,求质因数 2 和 5的对数即是尾随 0 的个数,求 N! 的质因数,算一下这些质因数相乘能凑出几个 B,即末尾有几个 0。 位数据百度用斯特林公式,对所有 i 取 logB 的和取整后 +1,注意加上 1e-9 调节精度。#include<iostream>原创 2016-07-13 23:05:34 · 374 阅读 · 0 评论 -
UVA - 375 Inscribed Circles and Isosceles Triangles
题目大意:在等要三角形底边的高上堆圆,输出所有半径不小于 0.000001 的圆周长总和。解题思路:三角形相似。 一般三角形内接圆半径 r=2S/(a+b+c),其中S是三角形面积,a、b、c 是三角形三边。 注意先判断半径再计算面积。#include<iostream> #include<cstdio>#include<cstring>#include<cstdlib>#include原创 2016-07-13 23:05:14 · 237 阅读 · 0 评论 -
UVA - 579 Clock Hands
题目大意:给一个时间,计算该时刻时针与分针的夹角,0 ~ 180。解题思路:各指针每格表示的度数计算好,相减再控制范围即可。#include<iostream> #include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>using namespace std;int main() { int H, M;原创 2016-07-13 23:04:39 · 215 阅读 · 0 评论 -
UVA - 408 Uniform Generator
题目大意:给出 step 和 mod,根据 seed(x+1)=[seed(x)+step]%10mod,问产生的随机数是否均匀分布于 0 到 mod-1。解题思路:产生随机数存入数组,排序比较。 可以通过判断 gcd(step, mod) 是否等于 1,然而并不能够理解。#include<iostream> #include<cstdio>#include<string.h>#includ原创 2016-07-11 16:39:03 · 296 阅读 · 0 评论 -
UVA - 10879 Code Refactoring
题目大意:找出一个数的任意两对因子。不一定要与样例相同解题思路:枚举能整除的输出两对,注意格式,难得的水题……#include<iostream> #include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>using namespace std;int count = 0;int main() { int原创 2016-07-12 18:16:01 · 202 阅读 · 0 评论 -
UVA - 350 Pseudo-Random Numbers
题目大意:给出 Z,I,M,L,根据 L=(Z*L+I)modM 计算每一轮 L,输出循环的 L 的个数,注意循环不一定从所给的 L 开始。解题思路:用一个数组记录 L 是否出现过,未出现循环长度 +1 并标记出现,直至重复出现时跳出,输出长度。#include<iostream> #include<cstdio>#include<string.h>#include<stdlib.h>#in原创 2016-07-12 18:15:04 · 221 阅读 · 0 评论 -
UVA - 568 Just the Facts
题目大意:求阶乘的最后一位非零数字。解题思路:一开始想保留最后一位非零数字往下乘,发现因为进位后来会出错。总之想办法降低数据大小,因为要抛弃末尾的 0,即因子中含一对 2 和 5 (2×5=10)可以相互抵消,显然 2 比 5 多,最后乘上多出的个数的 2 就行。#include<iostream> #include<cstdio>#include<string.h>#include<stdl原创 2016-07-11 16:38:27 · 165 阅读 · 0 评论 -
UVA - 550 Multiplying by Rotation
题目大意:给出三个数 a,b,c,a 是进制,b 是第一个乘数的最后一位,c 是第二个乘数。求 c 要乘以多少位数后,积的第一位是 b (a 进制下)。解题思路:百度…强行理解,还是找规律吧= =#include<iostream> #include<cstdio>#include<string.h>#include<stdlib.h>#include<cmath>using namesp原创 2016-07-11 16:37:54 · 191 阅读 · 0 评论 -
UVA - 10110 Light, more light
题目大意:给 n 盏灯,走 n 趟,第 i 趟只能改变能够整除 i 的灯的状态,问 n 趟后第 n 盏灯是否是亮的。解题思路:只要考虑第 n 盏灯的改变就行,被改变的次数就是它的因子的个数,因为一开始灯是关闭的,所以一共要改变奇数次才能最终亮起来,即题意为:求一个数的因子是否是奇数个。因子都是成对出现的,既然要奇数个说明有一对因子相等,只算一次,所以化为判断这个数是否是完全平方数。int 太小会 W原创 2016-07-10 22:38:00 · 179 阅读 · 0 评论 -
UVA - 10250 The Other Two Trees
题目大意:给出两棵树的位置找到另外两棵,四点构成正方形。 构成正方形证明:侵删。UVa 10250 The Other Two Trees by 我叫空格_解题思路:求出中点,把所给的两棵树的坐标绕中点旋转 90 度得到的坐标就是另外两棵。 (x, y) 绕 (0, 0) 顺时针转90度后坐标为 (y, -x) (x, y) 绕 (p, q) 顺时针转90度: 先把 (p, q) 移到原创 2016-07-12 18:16:16 · 175 阅读 · 0 评论