ACM_UVa
JayYe
这个作者很懒,什么都没留下…
展开
-
uva 10061 - How many zero's and how many digits ?
题意:给你一个N和一个进制B,求N!在B进制下末尾0的个数和总的位数。第一个问题很容易转化为求N!能整除几个B,这里可以处理出所有B的素因子和素因子的个数a[i],然后同样对N!处理出所有整除B的各个素因子的个数pnum[i],对于所有的pnum[i] / a[i]取最小值即可。求总的位数有两种求法,一种是直接用double的 cal来保存N!当前的值,枚举过程中只要cal >=B就除一次原创 2013-07-22 12:31:06 · 961 阅读 · 0 评论 -
UVa 10413 Crazy Savages(扩展欧几里得)
题意:有m个洞穴成一个环状,现在有n个野蛮人,给你每个野蛮人的初始位置c[i],每个野蛮人下一天要去顺时针的第p[i]个洞穴,每个野蛮人存活天数为l[i],如果某一天两个野蛮人来到同一个洞穴,就会打架了~必须要死一个了~现在给你所有的条件除了m,问m至少为多少才能保证没有野蛮人打架死亡的。解题思路:枚举m,初始的m由输入数据决定,如果第i个人和第j个人在某一天碰到一起了,可以这原创 2013-10-01 17:06:05 · 1298 阅读 · 1 评论 -
UVa 11294 Wedding (two SAT 输出解)
题意:有n对夫妻,要坐在一张长桌子的两侧,夫妻不能坐在同一侧,其中有一个是公主,她不希望看到她对面一侧的人中有奸夫淫妇。。。题中给出若干对有奸情的两个人,可以是异性也可以是同性。。。问你是否存在满足条件的情况,如果存在,则输出和公主同一侧的人。解题思路:two SAT搞起,我用的是刘汝佳的犀利的模板,直接搜环,不用强联通~这个好处就是输出解特方便,不需要强联通缩点加拓扑,好东西原创 2013-10-27 14:29:02 · 1808 阅读 · 0 评论 -
UVa 1357 Cells (栈模拟dfs LCA)
题意:根据题意描述构建一棵树,树的节点可能达到20000000个,不过只有n (n 解题思路:因为只有n个节点有儿子,所以每次询问x、y时,x必须是有儿子的也就是说x 模拟栈,每次取出栈头元素,但是先不要删掉,遍历该元素的儿子,如果儿子都被访问过了则删除栈头元素,否则加入一个儿子跳出,因为有回溯,其实再一次访问到这个元素就相当于回溯。注意每次加入一个儿子。具体见代码~原创 2013-10-27 17:19:40 · 1294 阅读 · 0 评论 -
UVa 11317 GCD+LCM 欧拉函数log求位数
UVa 11317 GCD+LCM 欧拉函数log求位数原创 2013-09-25 20:27:35 · 1430 阅读 · 0 评论 -
UVa 10837 A Research Problem 欧拉函数
题意:给你一个欧拉函数值 phi(n),问最小的n是多少。 phi(n) 解题思路:对于欧拉函数值可以写成原创 2013-09-25 14:13:12 · 1437 阅读 · 0 评论 -
UVa 515 King (差分约束系统)
差分约束系统:如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi 差分约束可以转化话单源最短路求解。因为单源最短路径满足三角不等式d[v] = 只要改变一下初始化条件即可。 差分约束题目有两种,一种求最大值,另外一种求最小值。 (1)当题目是求满足给定不等式的最小值时,就是求图的最长路。原创 2013-10-07 17:03:21 · 1621 阅读 · 2 评论 -
UVa 11256 Repetitive Multiple
题意:给你一个n,问n的倍数中最小的循环整数是多少。循环整数的定义是一个没有前导0的整数有某一部分重复x次构成。比如 11,123123,454454,像101不能写成0101而被看成循环整数。解题思路:对于一个长度为q的整数,循环节长度肯定是q的约数,比如长度为6的整数,循环节可以是1,2,3,不能是它本身,如果循环节长度是3的,必然可以写成1001*x,其中99 知原创 2013-10-03 19:55:47 · 1148 阅读 · 0 评论 -
UVa 1423 Guess (拓扑排序)
题意:给你一个数n和一个字符矩阵,矩阵中S(i, j)表示ai + a(i+1) +...aj的正负号,要你还原a序列,其中a序列中每个数的绝对值不大于10.解题思路:把题目转化成已知各个前缀和的大小关系,求每个前缀和的值。s(i, j) 符号为正的话,表示a[i]+a[i+1] +.. a[j] > 0,即前缀和sum[j] - sum[i-1] > 0,即sum[j] >原创 2013-10-01 10:57:34 · 1132 阅读 · 0 评论 -
UVa 二分图匹配 Examples
UVa 二分图匹配 Examples原创 2013-08-18 15:23:08 · 952 阅读 · 0 评论 -
UVa 二分图匹配 Biginners
UVa 二分图匹配 Biginners原创 2013-08-18 19:57:41 · 1579 阅读 · 0 评论 -
uva 11426 - GCD - Extreme (II) 欧拉函数
题意:要你求出gcd(1,2) + gcd(1, 3) + gcd(2, 3) + gcd(1, 4) + gcd(2, 4) + ... + gcd(n-1, n)现在假设 d[n] = gcd(1, n) + gcd(2, n) + .. + gcd(n-1, n)题目要求的ans[n] = ans[n-1] + d[n]求d[n] 可以枚举n的因子,然后利用欧拉函数求出所有原创 2013-08-02 15:42:07 · 1028 阅读 · 0 评论 -
uva 10692 - Huge Mods 指数循环节
这题也是求多重指数解取模,和hdu 的2837 有点像公式 A^x % m = A^(x%phi(m)+phi(m)) % m (x >= phi(m))这里的A和m不一定互质,这样问题就很简单了,附上代码。#include #define LL long longconst int maxn = 1000;bool vis[maxn];int pri[maxn]原创 2013-07-31 11:19:50 · 1730 阅读 · 0 评论 -
uva 11490 - Just Another Problem
题意:这题题目有点长,不过很清楚,看懂后就可以推出一个公式 S = y(6y + 7x) ,即 S = 6y^2 + 7xy,所以S #include #include #include using namespace std;#define LL long longconst int mod = 100000007;LL ans[1111111];bool cmp(con原创 2013-07-22 12:01:54 · 1154 阅读 · 0 评论 -
uva 10140 - Prime Distance
题意:给你一个L,U,求L到U中相邻最近的两个素数和相邻最远的两个素数,(1<=L<U<=2147483647) 即maxn =2147483647 素数筛选法预处理出sqrt(maxn)的素数表,对于给定的L,U,也是相当于筛选法,只需要把L,U范围内素数的倍数筛选掉就行#include #define LL long longbool vis[111111],原创 2013-07-22 13:47:36 · 1824 阅读 · 0 评论 -
uva 10090 - Marbles 扩展欧几里得
题意:给你一个n,c1, n1, c2, n2 ,要保证x*n1 + y*n2 = n 且 要 x*c1 + y*c2最小首先来复习下扩展欧几里得,对于一元二次方程 ax + by = n , 扩展欧几里得求出 ax + by = gcd(a,b)的一组x0, y0 , 令d = gcd(a,b) ,如果 d|n ,方程有解 。ax + by = d方程通解为 x = x0 + b*t原创 2013-07-22 13:42:27 · 969 阅读 · 0 评论