UVA 11256 - Repetitive Multiple
题目链接
题意:找出一个最小值满足: 是n的倍数, 是重复数字(根据题目中的定义)
思路:如果是重复数字,形式必然是100010001这类形式乘上一个对应位数的数字,所以可以枚举这样形式的数字,和n取gcd,如果剩下的数字位数满足小于位数,那么就乘上一个数字使得等于最小满足位数,这样不断记录最小值即可
代码:
...
分类:
其他好文 时间:
2014-09-05 18:16:10
阅读次数:
161
UVA 10542 - Hyper-drive
题目链接
题意:给定一些个d维的方块,给定两点,求穿过多少方块
思路:容斥原理,每次选出一些维度,如果gcd(a, b),就会穿过多少点,对应的就减少穿过多少方块,所以最后得到式子d1 + d2 + .. dn - gcd(d1, d2)..+gcd(d1, d2, d3)...
代码:
#include
#inclu...
分类:
其他好文 时间:
2014-09-05 12:57:41
阅读次数:
139
# include
# include
# include
using namespace std;
__int64 gcd(__int64 a,__int64 b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int main()
{
int n,k,i,j,vis[810],m,num[810],x;
...
分类:
其他好文 时间:
2014-09-03 11:23:25
阅读次数:
192
//问最少置换多少次变成有序序列
//每个位置都有个循环节 求全部位置循环节的最小公倍数
# include
# include
# include
using namespace std;
int gcd(int x,int y)
{
if(y==0)
return x;
return gcd(y,x%y);
}
int lcm(int x,int y)
{...
分类:
其他好文 时间:
2014-09-02 15:51:04
阅读次数:
223
题意:
给一串数,找出最长的区间使得这个区间里面有个数能被其他所有数整除(包括它自己),求满足这个条件的最长区间的个数及长度,以及这些区间的左端的位置
分析:
这个区间的要求其实就是GCD(ALL)=MIN(ALL),能被其他数整除,这个数肯定是最小的,然后又能被其他数整除(包括自己)这个数就是GCD了
可以二分枚举区间长度,然后验证答案的可靠性
对当前长度的所有区间,套用RMQ...
分类:
其他好文 时间:
2014-09-01 14:05:53
阅读次数:
248
必须MARK下:任何时候都要保持清醒头脑,不要被题目绕了。。其实就是求最小公倍数。#include #include #include using namespace std;__int64 v[20];__int64 gcd(__int64 a,__int64 b){ if(b==0) retur...
分类:
其他好文 时间:
2014-09-01 12:32:43
阅读次数:
204
懒癌发作的时候需要做做水题。
GCD+LCM 辗转相除求出GCD,然后再LCM。
int gcd(int a,int b)
{
int r=0;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
如例子 10 14
10%14=10;a=14,r=...
分类:
其他好文 时间:
2014-09-01 10:45:12
阅读次数:
238
GCD SUMTime Limit:8000/4000MS (Java/Others)Memory Limit:128000/64000KB (Java/Others)SubmitStatisticNext ProblemProblem Description给出N,M执行如下程序:long lon...
分类:
其他好文 时间:
2014-09-01 08:09:42
阅读次数:
201
题目链接:点击打开链接
题意:
给了一棵树
每个点有点权
操作1 : 1 u 表示询问 gcd(Valueof(u), Valueof(v) ) != 1 的所有v 点中深度最大的点
[ v是 path(u, root); && v!=u ]
操作2 : 2 u w 修改点权
因为操作2的个数不超过50个,所以每次更新点权后都把所有答案预处理一遍。这样回答是O(1...
分类:
其他好文 时间:
2014-08-30 21:49:00
阅读次数:
404
#include
#include
#include
#include
using namespace std;
typedef __int64 LL;
const int Times = 20;
LL factor[100], l;
LL gcd(LL a, LL b)
{
return b ? gcd(b, a%b):a;
}
LL add_mod(LL a, LL b, LL n)...
分类:
其他好文 时间:
2014-08-30 20:28:20
阅读次数:
285